【问题标题】:Excel duplicate rows to CSV cell formulaExcel 重复行到 CSV 单元格公式
【发布时间】:2017-02-18 02:21:02
【问题描述】:

我有一个这样的 Excel 电子表格:(请参阅“公式输出 E 列”图像的 A 到 D 列 - 由于没有足够的声誉点,必须删除原始的第一张图像)

并且想制定一个公式来合并它,以便当前三列重复时,最后一列被合并到一个 CSV 单元格中,例如:Excel Finish

我认为它可以通过索引和匹配功能的正确组合到达那里,但我还没有让它工作....任何帮助将不胜感激!谢谢。

我目前有以下公式:

=IF(AND(A2=A1,C2=C1),"",D2&", 
"&INDEX(A2:D17,MATCH(A2,A2:A17,0)+1,4)&", 
"&INDEX(A2:D17,MATCH(A2,A2:A17,0)+2,4)&", 
"&INDEX(A2:D17,MATCH(A2,A2:A17,0)+3,4)&", 
"&INDEX(A2:D17,MATCH(A2,A2:A17,0)+5,4))

在列 E 中产生此输出:Formula Output Column E

如您所见,它包含的行太多(第 2 行和第 6 行输出)或太少(第 8 行输出)。希望对您有所帮助,谢谢。

【问题讨论】:

    标签: excel-formula


    【解决方案1】:

    如果你有两个额外的列并输入

    =IF(AND(A2=A3,C2=C3),D2&","&E3,D2)
    

    在单元格 E2 和

    =IF(AND(A2=A1,C2=C1),"",E2)
    

    在单元格 F2 中,如下例所示

    然后您将获得正确的列 CSV 输出的输出,但在 F 行而不是 E 行,如下所示,当您将公式填充到底部时。

    【讨论】:

      【解决方案2】:

      这是数组公式(意味着您必须完全单击 Ctrl + Shift + Enter)您可以在 CSV Output 中使用专栏:

      {=IF(OR(ROW(E1)=1,MAX(--($A$1:A1=A2)*--($B$1:B1=B2)*--($C$1:C1=C2)*ROW($A$1:A1))=0),D2,INDEX($E$1:E1,MAX(--($A$1:A1=A2)*--($B$1:B1=B2)*--($C$1:C1=C2)*ROW($A$1:A1)))&", "&D2)}
      

      这是解释,但我还附上了一张图片供您参考:

      • Column F:这是查找最后匹配的行,这也是一个数组公式:

        {=MAX(--($A$1:A2=A3)*--($B$1:B2=B3)*--($C$1:C2=C3)*ROW($A$1:A2))}

        -- 在计算公式时很容易看到。如果需要,您可以删除它们。

      • Column G:这是连接先前的结果:

        =IF(OR(ROW(G1)=1,F2=0),D2,INDEX($G$1:G1,F2)&", "&D2)

      希望这会有所帮助。如果您有任何问题,请告诉我。

      【讨论】:

      • 这只是在最后显示所有值吗?还是要删除任何地方都不需要的?
      • 它将如图所示显示,以便将所有输出连接在一起。您将需要按照 ChrisM 向您展示的方式进行操作。使用我的公式的好处将适用于非连续顺序。例如,如果有人在第 15 行输入了 907。此公式仍然适用于您。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      • 2010-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多