【发布时间】:2016-05-24 22:23:21
【问题描述】:
我有 2 个工作表,“黄色”和“绿色”。
我的列标题是“描述”、“创建日期”、“数量”、“单价”和“供应商编号”。 绿表中的“描述”列不包含任何信息。 我希望 Excel 一次在绿色表中向下移动一行,并且仅当其他列的所有四列(“创建日期”、“数量”、“单价”和“供应商 # ") 在该行的两张纸上匹配。 两张纸上的行数不同(大约 4,000),绿色上的列比黄色上的多(这就是为什么我也需要绿色纸上的“描述”)。 我研究了 vlookup 和索引/匹配。但都没有奏效。 我找到了这段代码,但它正在计算,我没有什么可计算的。此代码在第一列(“描述”)中返回列标题。
{=INDEX(Yellow!B:B,MATCH(1,(C:C=Yellow!C:C)*(D:D=Yellow!D:D)*(E:E=Yellow!E:E)*(F:F=Yellow!F:F),0))}
我想我会尝试自己动手并想出了这个:
{=INDEX(Yellow!B2:F2875,MATCH(1,(C3=Yellow!B2:F2875)*(D3=Yellow!B2:F2875)*(E3=Yellow!B2:F2875)*(F3=Yellow!B2:F2875),0),1}
返回“#N/A”
我想我可能需要一个 IF 语句,因为我只想在其他四个列都匹配时填写“描述”。
【问题讨论】:
-
您需要将所有
Yellow!B2:F2875范围设置为单列范围。所以(C3=Yellow!C2:C2875)*(D3=Yellow!D2:D2875)*...等等。另外我相信这是一个数组公式,必须在退出编辑模式时使用 Ctrl-Shift-Enter 确认。 -
哦,您需要将所有引用设为绝对引用:
(C3=Yellow!$C$2:$C$2875)*(D3=Yellow!$D$2:$D$2875)*...等等。