2015-06-04 73 views
0

好吧,所以我試圖採取一個共同的教程數組公式進一步,但無法弄清楚如何。返回兩個範圍之間的所有匹配數組

基本上我有一組片材的與值象下面這樣:

| Sheet 1      || Sheet 2    | 
| Products(1) | Product Group || Products(2) | Data | 
|    |    ||    |  | 
| 100   | 1    || 100   | abc | 
| 200   | 2    || 200   | def | 
| 300   | 3    || 200   | ghi | 
| 400   | 3    || 500   | jkl | 
| 500   | 2    || 400   | mno | 

表1列出了每種產品進行分類,並使用這些各產品分配給一個組的所有參數。 Essentially產品是一個獨特的索引鍵。

表2是每次運行產品時的跟蹤列表,它是如何執行的。因此產品編號可能會出現多次或根本不顯示。

我具有其中輸入了產品號,從它的組數的計算的第三片材,並且片材1中搜索與該組號和使用陣列式返回列表中的所有產品(使用本教程http://thinketg.com/how-to-return-multiple-match-values-in-excel-using-index-match-or-vlookup/由不同的人在線顯示)。我們將在第3頁稱爲「K欄」。

我現在要做的是更進一步,並從Sheet 2中返回「Sheet 2」中的「Data」!「產品(2) 「和」Sheet 3「!」K欄「。如果「列K」已修復,我可以再次使用相同的公式,並將一個OR語句放入IF表達式中,但是因爲K是動態填充的,所以我不知道如何找到它們。

爲了澄清,最終的結果,我將理想地顯示的是這樣的:

| Sheet 3             | 
| Product Num | Column K | Column L | Column M | 
| (user enters) | (automatic) | (automatic) | (automatic) | 
| 500   | 200   | 200   | def   | 
|    | 500   | 200   | ghi   | 
| Product Group |    | 500   | jkl   | 
| (automatic) |    |    |    | 
| 2    |    |    |    | 

回答

0

如果比較的列向量以與陣列式中的行矢量則它將每個值從與該列比較該行中的每個值。因此,以下內容將起作用,因爲我們將Sheet3!K1:K[n]中的值轉換爲行向量,然後再與Sheet2!$A$1:$A$10000進行比較。

Sheet 1中: Sheet1

Sheet 2中: Sheet2

表Sheet 3: Sheet3

公式在Sheet3

A5

=VLOOKUP($A$2,Sheet1!$A:$B,2,FALSE) 

K2向下:

{=IFERROR(INDEX(Sheet1!$A$1:$A$10000,SMALL(IF(Sheet1!$B$1:$B$10000=$A$5,ROW(Sheet1!$B$1:$B$10000)),ROW(1:1))),"")} 

L2向下:

{=INDEX(Sheet2!$A$1:$A$10000,SMALL(IF(Sheet2!$A$1:$A$10000=TRANSPOSE($K$1:INDEX($K:$K,MAX(IF($K$1:$K$10000<>"",ROW($K$1:$K$10000))))),ROW(Sheet2!$A$1:$A$10000)),ROW(1:1)))} 

M2向下:在K2

{=INDEX(Sheet2!$B$1:$B$10000,SMALL(IF(Sheet2!$A$1:$A$10000=TRANSPOSE($K$1:INDEX($K:$K,MAX(IF($K$1:$K$10000<>"",ROW($K$1:$K$10000))))),ROW(Sheet2!$A$1:$A$10000)),ROW(1:1)))} 

式,L2M2是陣列formu拉斯。在沒有大括號的情況下輸入它們,然後按[Ctrl] + [Shift] + [Enter]。

Sheet3!K1:K[n]K[n]基準計算與

INDEX($K:$K,MAX(IF($K$1:$K$10000<>"",ROW($K$1:$K$10000)))) 

在其中的

MAX(IF($K$1:$K$10000<>"",ROW($K$1:$K$10000))) 

得到在K列最大行數,其中所述內容不等於 「」。


如果產品編號是以往的數字,那麼就比較容易,這將是可能有同樣排序的結果。

Sheet1和sheet2見上面。

表Sheet 3: Sheet3

公式在表Sheet 3:

A5:見上文

K2向下:

{=IFERROR(SMALL(IF(Sheet1!$B$2:$B$10000=$A$5,Sheet1!$A$2:$A$10000),ROW(1:1)),"")} 

L2向下:

{=SMALL(IF(Sheet2!$A$2:$A$10000=TRANSPOSE($K$2:INDEX($K:$K,MATCH(MAX($K:$K),$K:$K))),Sheet2!$A$2:$A$10000),ROW(1:1))} 

M2向下:

{=INDEX(Sheet2!$B$1:$B$10000,SMALL(IF(Sheet2!$A$1:$A$10000=$L2,ROW(Sheet2!$A$1:$A$10000)),COUNTIF($L$2:$L2,L2)))} 
+0

這工作!非常感謝!不知道excel中比較數組的點積類型是否有比較 –

相關問題