我有以下表结构:
--- c1 ------- c2 ---- c3 ------ c4
r1: **0001** **word1**
r2: 0002 word2 **0001** **word1**
r3: 0003 word3 0002 word2
我想自动设置第三列值,这样如果第4列中有一些单词,那么程序应该检查第2列并尝试找到相同的单词。如果找到,则第1列值应该用作第3列值。
我可以手动执行此操作,但它更多的工作,如果我添加新行,它会出现问题。第1列值等于行号,因此如果添加了新行,它将自动更新。现在我想设置我的数据,以便在这些情况下第3列也会自动更新。
实现这一目标的正确方法是什么?
答案 0 :(得分:4)
您想要的公式是:
=IF(D1<>"",INDEX(A:A,MATCH(D1,B:B,0)),"")
修改强>
对于结构化表引用:
=IF([@Col4]<>"",INDEX([Col1],MATCH([@Col4],[Col2],0)),"")
答案 1 :(得分:1)
如果您稍微重新排列工作表,则可以使用VLOOKUP()
功能。我换了你的A
和B
(第一和第二)列来达到这个目的:
--- A ---- B ---- C --- D
r1: word1 0001
r2: word2 0002 0001 word1
r3: word3 0003 0002 word2
进入C1
:
=VLOOKUP(D1, A$1:B$3, 2, FALSE)
并将此公式复制到C
列。
交换前两列的原因是VLOOKUP()
始终在匹配的第一列中查找。