【问题标题】:Excel Matching rows in two Worksheets and filling in the blank rowExcel匹配两个工作表中的行并填写空白行
【发布时间】: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)*... 等等。

标签: vba excel


【解决方案1】:

没有必要使用vba,也没有必要。在两个表的左侧创建一个新列。将带有公式的“创建日期”、“数量”、“单价”和“供应商编号”列逐行连接到新列中,但在字段之间放置一个分隔符。您可以使用 vlookup 从黄色标签中获取描述。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    • 2023-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    相关资源
    最近更新 更多