2013-11-27 83 views
0

我是一個使用VBA的完全新手,但我在文件中有幾千行數據,並且我認爲宏是解決我的問題的唯一方法。將矩陣重新粘貼到其他矩陣

這裏是我的問題的說明:

enter image description here

我想:

  1. 複製所有細節細胞株由特定的範圍A2:E5線到一個新的列(可以在另一個工作表中

  2. 複製在點1範圍(列FG)到適當的行指定從列旁邊的數據接收點1執行

+1

請告訴我們你試過了什麼?要求提供代碼的問題必須表明對正在解決的問題的最小理解。包括嘗試解決方案,爲什麼他們不工作以及預期結果。另見:[Stack Overflow question checklist](http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist) –

+0

另外如果'X8'還在Cell C3中會發生什麼?即在兩個地方'C3'和'A4'或者這種情況不會出現? –

+0

@SiddharthRout這種情況不會發生,範圍A2:E2內的所有單元格都是唯一的。很難說明我迄今爲止做了什麼,因爲我是VBA新手,首先我嘗試了所有的Excel公式(pivot,vlookups等)。),但我沒有做到這一點。也許如果你不知道如何解決這個問題,只需要把我放在正確的軌道上,我必須尋找什麼或者我必須瞭解什麼。 – waren

回答

1

實際上,你可以解決這個不VBA,以智能的方式使用普通Excel公式:

  1. 創建一個包含6列,標題行和10行的表格(根據您的數據調整行數!)。例如,假設您將表放置在J1:O11中。
  2. 現在,添加下式到每一列中第2行和複製下來到行11:
    1. J列(「源行」):=IF(ISTEXT(J1),1,IF(K1=L1,J1+1,J1)) - 這將確定源行對於每個記錄
    2. K列(「列數」):=IF(J2<>J1,COUNTA(OFFSET($A$1,J2,0,1,5)),K1) - 這樣計算源行中有多少個標籤(X1,X2等)
    3. 列L(「源列」):=IF(J2<>J1,1,L1+1) - 這確定了當前列記錄
    4. 列M(「標籤」):=INDEX($A$2:$E$5,J2,L2) - 檢索標籤(X1,X2等)
    5. 列N( 「值1」):=INDEX($F$2:$F$5,J2) - 此檢索第一個值(AA,CC)
    6. 柱O( 「值2」):=INDEX($G$2:$G$5,J2) - 此檢索第二個值(BB,DD)

完成!

以下是樣本截圖: enter image description here

在這裏你可以下載sample workbook

+0

+1做得很好:) –

+0

您的配方解決方案完美無缺! @Siddhart我會跟隨你的言論,並嘗試用VBA解決它。謝謝你們倆 – waren