我有兩個表一個具有Excel中查找返回唯一值
Item ID
Box 78
Glue 105
Box 85
另一片
Item ID
Box
Box
Glue
在第二片我想從第一張仰望的ID
。
我在哪裏複製(如Box
)我想一次返回ID
。 因此,Box
上的查找將第一次返回78
,並且第二次返回85
。
像這樣:
Item ID
Box 78
Box 85
Glue 105
我有兩個表一個具有Excel中查找返回唯一值
Item ID
Box 78
Glue 105
Box 85
另一片
Item ID
Box
Box
Glue
在第二片我想從第一張仰望的ID
。
我在哪裏複製(如Box
)我想一次返回ID
。 因此,Box
上的查找將第一次返回78
,並且第二次返回85
。
像這樣:
Item ID
Box 78
Box 85
Glue 105
可以使用INDEX/MATCH的微小變化:
=INDEX(B$2:B$4,SMALL(IF(A$2:A$4=C2,ROW(B$2:B$4)-1,""),COUNTIF(C$2:C2,C2)))
確認與CTRL + SHIFT +輸入數組公式,然後自動填充了下來。
單元格引用的說明:
A $ 2:A $ 4 - 項目欄(表Sheet 1)
B $ 2:B $ 4 - ID柱(Sheet 1中)
C $ 2:C2 - 物品列(Sheet2的)
C2 - 你仰視
嘗試此並獲得#Value! – user290687
可能是引用的問題。我認爲你應該嘗試tigeravatar的解決方案,如果這不適合你回來的確切範圍和工作表名稱,你需要使用。 – Kyle
乍一看,這似乎是不可能的項目,因爲VLOOKUP
不知道如何處理多個Box
es。
但是使用this ingenious answer你實際上可以完成這項工作。
在表1中,輸入公式:
導致:
item instance combined id range_above
Box 1 Box1 78 $A$2:$A$2
Glue 1 Glue1 105 $A$2:$A$3
Box 2 Box2 85 $A$2:$A$4
現在,您可以VLOOKUP
關閉combined
而不是關閉item
。 (很明顯,你必須在表2中做相同的技巧。)
請注意,所有這些公式只需延長表格長度即可。它會一直工作。
這個解決方案的問題是我沒有兩張紙上的ID。表2中的ID是空白的,我們通過查找來填充它。 – user290687
再次閱讀我的答案@ user290687,並稍微想一想。一旦將兩個工作表上的每個「盒子」轉換爲「盒子1」或「盒子2」*,您可以在工作表2上執行「VLOOKUP」。 – LondonRob
替代解決方案。不需要幫助列,不需要數組輸入。 Sheet 2中單元格B2和複製下來:
=INDEX(Sheet1!$B$2:$B$4,MATCH(1,INDEX((Sheet1!$A$2:$A$4=A2)*(COUNTIF(B$1:B1,Sheet1!$B$2:$B$4)=0),),0))
這個工作非常完美! - 早先的錯誤是我的。 – user290687
很高興聽到它:) – tigeravatar
用於執行此操作的一個好方法是使用陣列式來使用從第二片材的每個項目的重複次數的第一片查找值。此方法不需要「幫助」列。
將實現此的公式爲:{=INDEX(Sheet1!A:B,SMALL(IF((Sheet1!A:A)=Sheet2!A2,ROW(Sheet1!A:A),""),COUNTIF($A$2:$A2,"="&$A2)),2)}
這個公式是一個陣列式。你可以把它複製到細胞B2
上Sheet2
,然後按Ctrl鍵+移+輸入進入。你必須按Ctrl + Shift + 輸入使這個數組公式。您可以將這個公式在列B中拖動,以獲得所需的行數。
您的工作,完成後,將包含以下公式:
我們把這個公式分解成各個組成部分:
確定有多少次給定的項目已列被重複A.我們用下面的代碼來完成這個工作,它將計算當前行的項目出現在列A中所有先前行的次數。範圍的開始和結束的相對參考的絕對引用確保範圍將自動更新正如我們在B列向下拖動式:
COUNTIF($A$2:$A2,"="&$A2)
標識包含Sheet 2中的A列中的項第k 行 Sheet 1中。以下代碼首先使用IF
語句在Sheet1中找到全部行,其中包含Sheet2的A列中的項目。這使用數組語法將指定範圍內的所有行與值進行比較。 IF
語句返回一個數組,其中包含如果找到任何已標識的行。如果沒有找到,則返回空字符串。
IF((Sheet1!A:A)=Sheet2!A2,ROW(Sheet1!A:A),"")
查找所有正在使用SMALL
功能,它從一個陣列選擇第n最小項所確定的第n 行的值。對於k
,我們通過將在步驟1計算
SMALL(IF((Sheet1!A:A)=Sheet2!A2,ROW(Sheet1!A:A),""),COUNTIF($A$2:$A2,"="&$A2))
最後計數,我們把它一起在INDEX
功能,將查找在指定行的值(步驟確定3)和列(2),在給定的範圍內。
{=INDEX(Sheet1!A:B,SMALL(IF((Sheet1!A:A)=Sheet2!A2,ROW(Sheet1!A:A),""),COUNTIF($A$2:$A2,"="&$A2)),2)}
你能舉一個很簡單的例子,顯示你想要* *發生?很難理解你的描述。 – LondonRob
表1 物品ID 盒78 膠87 盒105 表2 物品ID 盒 盒 膠 我想爲在表2的ID列,將返回78第一次發現的查找第105盒和第二...等等。 – user290687
所有項目的ID值是否唯一?或者它在一件物品中是唯一的?喜歡可以Box有ID 78和Glue有ID 78嗎? – chancea