返回列表 上一主題 發帖

[發問] EXCEL兩筆資料的比對與轉置

回復 5# cosplay123

重點是資料的關聯如何判斷?
請上傳簡單範例說明
學海無涯_不恥下問

TOP

本帖最後由 Hsieh 於 2012-3-13 00:13 編輯

回復 7# XDshining
D2陣列公式
=IF(ROW(A1)>SUM(1/COUNTIF($A$2:$A$9,$A$2:$A$9)),"",INDEX($A:$A,MIN(IF(ISERROR(MATCH($A$2:$A$9,$D$1:D1,0)),ROW($A$2:$A$9),"")),))
向下複製
E1陣列公式
=IF(COLUMN(A$1)>SUM(1/COUNTIF($B$2:$B$9,$B$2:$B$9)),"",INDEX($B:$B,MIN(IF(ISERROR(MATCH($B$2:$B$9,$D$1:D$1,0)),ROW($B$2:$B$9),""))))
向右複製
E2=(SUMPRODUCT(($A$2:$A$9&$B$2:$B$9=$D2&E$1)*1)>0)*1
向右向下複製

VBA
  1. Sub ex()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. Set d1 = CreateObject("Scripting.Dictionary")
  4. Set d3 = CreateObject("Scripting.Dictionary")

  5. For Each a In Range([A2], [A65536].End(3))
  6. d(a & a.Offset(, 1)) = a & a.Offset(, 1)
  7. d1(a & "") = ""
  8. d3(a.Offset(, 1) & "") = ""
  9. Next
  10. [d2].Resize(d1.Count, 1).Value = Application.Transpose(d1.keys)
  11. [E1].Resize(, d3.Count) = d3.keys
  12. For i = 2 To d1.Count + 1
  13.   For j = 5 To d3.Count + 4
  14.     Cells(i, j) = d.exists(Cells(i, 4) & Cells(1, j)) * (-1)
  15.   Next
  16. Next
  17. End Sub
複製代碼
學海無涯_不恥下問

TOP

        靜思自在 : 為自己找藉口的人永遠不會進步。
返回列表 上一主題