2010-08-18 93 views
2

問題:我有看起來像這樣的數據,我想比較行與列值。 so(Table1.t1 = Table2.t1)?之類的事情。Excel行比較列函數/ vba

Table 1 
A B 
x t1 
x t2 
x t3 
x t4 

Table 2 

A B C D E 
x t1 t2 t3 t4 

我能做到這一點在Excel中使用函數或VBA

+0

我已經做了一些研究,並且由於VBA的一些弱點,沒有一個簡潔而有效的方法來做到這一點。在VBA中,你必須在某個時候比較每個單元格。 – 2010-08-18 21:17:22

回答

0

如果A1:B8,你有

x t1 
x t2 
x t3 
x t4 
y u1 
y u2 
y u3 
y u4 

,並在A11:E12,你有

x t1 t2 t3 t4 
y u1 u2 u3 u4 

然後把這個公式在C1中並填寫下去

=B1=OFFSET(INDEX($A$11:$A$12,MATCH(A1,$A$11:$A$12,FALSE),1),0,COUNTIF($A$1:A1,A1),1,1) 

它如果數據匹配則返回TRUE,否則返回FALSE。

1

如果我理解你的問題,有可能導致你在正確的方向上的一些想法:

  • 如果你只想「翻轉」兩個表中的一個表中的數據,以便您可以直接比較表格,只需執行Copy,Paste Special,然後選中「移調」按鈕。如果你想用VBA做到這一點,只需將其記錄爲宏並查看它記錄的內容即可。
  • 如果你想使用VBA,我認爲使用Cells(row#,col#)而不是Range()是關鍵。

因此,讓我們假設你的兩個表在B10:B20(垂直)和C2:L2(水平)。比較它們的循環可能看起來像:

Sub CompareFlippedTables 
    Dim i as integer 
    For i = 1 to 10 
     If Cells(i + 10,2).Value = Cells(2, i + 3).Value Then 
      'Do something useful' 
     End If 
    Next i 
End Sub 
+0

是的,你完全理解我的問題布拉德,事實上你的答案大部分都是正確的,但我並不清楚最終結果。所以最終,我想做一個查找,其中有一列t1 t2 t3 t4,另一列有相同的數據(理論上),但來自不同的來源。通過比較2列,我可以確認來自2個不同來源的數據是相同的。移調不會給我所有行1列,而是每行1列。我希望所有行都有1列,所以我可以將它們與另一列數據進行比較。謝謝! – EKet 2010-08-18 20:10:37