[英]Excel find last match from two tables
我正在尋找一種方法來查找A,B列中條目的最后一個實例,並從列C,D中獲取相應的值
在下面的示例中,Henry的值是1374,Amy的值是1124
Name1對應於Value1,Name2對應於Value2。 是否有一個公式可以從Name1和Name2列中找到最后一個條目,並返回相應的Value1或Value2
粘貼的原始數據如下:
Name1 Name2 Value1 Value2
Sara Amy 1265 1241
John Sara 1142 1214
Amy Henry 1295 1121
Amy John 1175 1323
Sara John 1085 1251
Sara Henry 1242 1374
Amy Sara 1124 1055
假設:
數據網格位於單元格A1:D8
。 值“Henry”和“Amy”分別在單元格A10
和A11
。
公式實施:
在單元格B10
中實施以下公式。
備選方案1:
=INDEX($C$2:$D$8,MAX(IFERROR(LOOKUP(2,1/($A$2:$A$8=A10),ROW($A$2:$A$8)),-1),IFERROR(LOOKUP(2,1/($B$2:$B$8=A10),ROW($B$2:$B$8)),-1))-1,IF(IFERROR(LOOKUP(2,1/($A$2:$A$8=A10),ROW($A$2:$A$8)),-1)>IFERROR(LOOKUP(2,1/($B$2:$B$8=A10),ROW($B$2:$B$8)),-1),1,2))
備選方案2(略短於1):
=INDEX($C$2:$D$8,LOOKUP(2,1/SEARCH(A10&",",$A$2:$A$8&","&$B$2:$B$8&",",1),ROW($A$2:$A$8))-1,IF(IFERROR(LOOKUP(2,1/($A$2:$A$8=A10),ROW($A$2:$A$8)),-1)>IFERROR(LOOKUP(2,1/($B$2:$B$8=A10),ROW($B$2:$B$8)),-1),1,2)).
要盡可能地復制下來。
注意MAX()
函數后的-1值,用於調整行號。 考慮到數據從第n行開始,它應該總是n-1。
我一直在努力記住另一種我見過2d查找的方法(我找不到鏈接了)。 它基本上就是這樣
=INDIRECT(TEXT(MAX((ROW($A$2:$B$8)*100+COLUMN($A$2:$B$8))*($A$2:$B$8=A10))+2,"R0C00"),FALSE)
使用Ctrl Shift Enter作為數組公式輸入 。
因此,我們的想法是從名稱的最后一次出現的行和列生成一個數字(因此對於Henry來說,它將是702)。
您將其格式化為R7C02並將其輸入到間接,以RC表示法提供對單元格的引用。 列加2給出了您想要的單元格。
您可能會注意到,如果列> 99,則會失敗,但您可以根據需要調整乘數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.