我有一个相当大的 excel 工作表 20k+ 行。我的 excel 文档有三张纸,分别名为 CM、PP 和 CH。
CM仅包含我使用的信息。
PP 是包含所有数据的公共信息。
CH 是我的更改日志。
我试图做的是从 A 列"CM(A)"中的 CM 表中获取值,并在 PP 表 A 列"PP(A)"中找到它们,然后将找到的值从 PP(A) 和 PP(F)"第六列"复制到第三张表 CH(A) 和 CH(B)。
这本身就相当简单,我很难理解的是工作表 PP 可以包含 CM(A) 中值的多个实例。但问题是我只需要其中一个特定值,该值由 PP(B) 列中的值"26"表示。
我只是不知道如何编写嵌套公式来实现这一目标。
公式的视觉目标
如果您不熟悉数组公式,您绝对应该研究一下它们,因为它们对于此类任务非常有帮助。您需要使用条件来测试项目是否多次出现,然后根据返回的结果执行INDEX-MATCH
或VLOOKUP
。我重新创建了您的数据结构,并能够在工作表CM
B1
使用此公式获得适当的结果:
=IF(COUNTIF(PP!A:A,A1)>1,INDEX(PP!F:F,MATCH(1,(PP!A:A=A1)*(PP!B:B=26),0)),VLOOKUP(A1,PP!A:F,6,FALSE))
数组公式必须使用 Ctl+Shift+Enter 输入,如链接文档中所述。