【问题标题】:In Excel, how can I use a formula to merge rows with common values and concatenate differences?在 Excel 中,如何使用公式合并具有共同值的行并连接差异?
【发布时间】:2014-06-02 04:11:54
【问题描述】:

使用这个问题的例子:

Excel - Merge rows with common values and concatenate the differences in one column

我该如何改变:

Customer Name   |   NEW YORK    |   ALBANY 
Customer Name   |   NEW YORK    |   CLINTON    
Customer Name   |   NEW YORK    |   COLUMBIA
Customer Name   |   NEW YORK    |   DELAWARE
Customer Name   |   NEW YORK    |   DUTCHESS  
Customer Name   |   VERMONT |   BENNINGTON  
Customer Name   |   VERMONT |   CALEDONIA
Customer Name   |   VERMONT |   CHITTENDEN
Customer Name   |   VERMONT |   ESSEX
Customer Name   |   VERMONT |   FRANKLIN

到这里:

Customer Name   |   VERMONT |   BENNINGTON,CALEDONIA,CHITTENDEN,ESSEX,FRANKLIN
Customer Name   |   NEW YORK    |   ALBANY,CLINTON,COLUMBIA,DELAWARE,DUTCHESS

在哪里 |表示一个单元格。上面问题中给出的答案是针对宏的。我需要创建一个可管理的模板,而大多数人不知道如何管理宏。因此,我需要一个公式来做到这一点。有人可以帮忙吗?

【问题讨论】:

    标签: excel excel-formula concatenation


    【解决方案1】:

    如果您的数据按状态排序,您可以使用公式列和辅助列来简化操作。第一列,你连接状态

    在 D2 中:

    =if(B2=B1,D1&C2&",",C2&",")
    

    在第二列中,您可以放置​​一个过滤器,告诉您列表是否完成

    =if(B2=B1,"","State Complete")
    

    您可以过滤 State Complete 值并获得结果。

    如果您想要更花哨,您将需要宏或用户定义的函数。

    【讨论】:

    • 这是一个优雅的解决方案,但不幸的是我所拥有的信息没有排序(也不能排序)。我确实需要一个花哨的解决方案...
    【解决方案2】:

    假设ALBANY 在C2 中,类似但一个单一的公式(和一个“喘息”),等等:

    =IF(B1=B2,D1&","&C2,C2)&IF(B2<>B3,".","")  
    

    句号(句点)用于标识每组的最后一个(假定已排序,必要时用于 ColumnC TRIMmed - 还假定 C 列中没有句号)。

    公式不会删除行,因此要么过滤以选择包含句号的单元格的行,要么复制列,将特殊值粘贴到顶部,过滤并删除那些不包含句号的行。我更喜欢后者,因为大概应该删除 ColumnC 本身。

    可以使用查找和替换删除句点。

    【讨论】:

      猜你喜欢
      • 2013-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-21
      • 2020-10-27
      • 2013-09-10
      • 2019-10-14
      相关资源
      最近更新 更多