我希望根据匹配的列值在 Excel 电子表格中对两个不同的表进行内部联接。这是一个例子:
表A:
TICKER
AAPL
AMZN
FB
MSFT
TWLO
表B:
TICKER PRICE
AAPL 100
FB 200
TSLA 300
DIS 400
内连接应返回表 B 中的股票代码和价格,而表 A 中也有股票代码:
TICKER PRICE
AAPL 100
FB 200
我已尝试 VLOOKUP
和 MATCH
,但无法模拟 SQL
中存在的 INNER JOIN
函数。希望 StackOverflow 社区能够提供一些帮助:)
最佳答案
为此,您需要两个不同的公式:
要获取您想要的名称:
=IFERROR(INDEX(C:C,AGGREGATE(15,6,ROW($C$2:$C$5)/(ISNUMBER(MATCH($C$2:$C$5,A:A,0))),ROW(1:1))),"")
获取值:
=IF(G2<>"",VLOOKUP(G2,C:D,2,FALSE),"")
<小时/>
这可以通过一个公式来完成:
=IFERROR(INDEX($C:$D,AGGREGATE(15,6,ROW($C$2:$C$5)/(ISNUMBER(MATCH($C$2:$C$5,$A:$A,0))),ROW(1:1)),COLUMN(A:A)),"")
将其放入 G2 并上下复制。
但这会使数组公式的数量加倍,如果数据集很大,将导致计算时间显着减慢。
关于excel - Excel中有INNER JOIN吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51899019/