2016-05-16 89 views
0

我有一个如下的表结构:设置单元格值

--- c1 ------- c2 ---- c3 ------ c4 
r1: **0001** **word1** 
r2: 0002  word2 **0001** **word1** 
r3: 0003  word3 0002  word2 

我想三个值自动设置列,因此,如果有在列4一些字,然后程序应检查第2列并尝试找到相同的单词。如果找到,则应将第1列值用作第3列值。

我可以手动做到这一点,但它更多的工作,并且如果我添加新行会产生问题。第1列值等于行号,因此如果添加新行,它会自动更新。现在我想设置我的数据,以便在这些情况下第3列也会自动更新。

什么是正确的公式,使之发生?

+0

你试过'If()'语句吗?请向我们展示您尝试的任何公式。 – BruceWayne

回答

4

你想要的计算公式为:

=IF(D1<>"",INDEX(A:A,MATCH(D1,B:B,0)),"") 

enter image description here


编辑

对于结构化表引用:

=IF([@Col4]<>"",INDEX([Col1],MATCH([@Col4],[Col2],0)),"") 

![enter image description here

+2

我有一种感觉,@ m5seppal必须转换为[结构化表格引用](https://support.office.com/zh-cn/article/Using-structured-references-with-Excel-tables-F5ED2452-2337 -4F71-BED3-C8AE6D2B276E) – Jeeped

+0

@接受你可能是正确的,补充说。 –

+0

谢谢,这帮助我完成这项工作!我的Excel不接受那些带逗号的公式,而是希望用分号代替它,否则这个工作正常。此外,我从来没有听说过结构化的表格参考,对我有巨大的帮助! :) – m5seppal

1

如果稍微重新排列工作表,则可以使用VLOOKUP()函数。我换你的AB(第一和第二)列在这个到达:

--- 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()总是在匹配的第一列中查找。

相关问题