我在Excel工作表中有一些值,即B,D和E列中的值为:
**B** **C** **D** **E**
Cryptography 11 1 Applied Mathematics
Machine Learning 23 2 Analysis of Algorithms
Networks and Communication 26 3 Automata Theory
Networks and Communication 26 4 Artificial Intelligence
Robotics 30 5 Biological Networks
Computer Graphics 10 6 Combinatorial Optimization
Data Mining 12 7 Computability Theory
Combinatorial Optimization 6 8 Computational Complexity Theory
Applied Mathematics .. 9 Computer Vision
Analysis of Algorithms .. 10 Computer Graphics
Information Retrieval .. 11 Cryptography
Artificial Intelligence .. 12 Data Mining
Artificial Intelligence .. 13 Data Structures
Programming Languages .. 14 Databases
Data Mining .. 15 Digital Logic
Cryptography .. 16 Distributed Computing
Information Retrieval .. 17 Evolutionary Computation
Machine Learning .. 18 Human Computer Interaction
Machine Learning .. 19 Image Processing
... .. .. ...
... .. .. ...
... .. .. ...
而column C
为空。
现在我必须将column B
与column E
的值匹配,匹配所在的行,我必须从column D
复制相应的ID并将其放入{{1} }}。虽然我已经在column C
中手动设置了一些值以便快速了解。
答案 0 :(得分:1)
如果我理解正确,索引/匹配公式(比Vlookup更强大)应该可以正常工作:
=INDEX($D$1:$D$19,MATCH($B1,$F$1:$F$19,0))
。输入并向下拖动。请注意将19
更改为数据范围的最后一行。
这将返回一个索引,即范围为D1:D19
的单元格。它首先会查看范围F1:F19
以获取单元格B1
的值的匹配项,然后获取该行,然后使用Index()
中的该行返回值。
编辑:如果出现错误,您可以将其包装在Iferror()
函数中以输出一些文本。即=IfError(INDEX($D$1:$D$19,MATCH($B1,$F$1:$F$19,0)), $B1 & " not found")
Edit2:为什么我不使用vlookup,如果它们可以比较?因为你目前的数据布局方式并不真正允许它(很容易,无论如何)。尝试自己设置它,你会看到:=Vlookup(B1,d1:F19,1)
...没有意义。您需要先重新排列数据,然后将D列放在G中,然后这个就行了:=VLOOKUP(B1,F1:G19,2,FALSE)