在Excel中,如何使用公式将行与常用值合并并连接差异?

时间:2014-04-17 18:30:45

标签: excel excel-formula concatenation

使用此问题中的示例:

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

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

2 个答案:

答案 0 :(得分:2)

如果您的数据按州排序,则可以使用公式列和帮助列使其简单。第一列,您连接状态

D2中的

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

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

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

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

如果你想要比这更花哨,你需要宏或用户定义的函数。

答案 1 :(得分:0)

类似但只有一个单一的公式(以及一个' wheeze'),假设ALBANY在C2等中:

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

完整停止(期间)是识别每个集合的最后一个(假设是排序的,如果需要,对于ColumnC TRIMmed,也假定在C列中没有完全停止)。

公式不会删除行,因此要么过滤以选择包含完整停靠的单元格的行,要么复制列,将特殊值粘贴到顶部,过滤并删除不包含句点的行。我更喜欢后者,因为可能会删除ColumnC本身。

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