【问题标题】:Grouping a Table based on Text根据文本对表格进行分组
【发布时间】:2015-09-03 21:41:56
【问题描述】:

我在 Excel 中使用小计、分组依据、数据透视表等来根据 ID 对列求和。我每周都会在 100 行中获得带有 ID 列的表,其中包含重复值,例如:

table:  
ID  Location
a   Boston
a   NY
c   SF
d   LA
c   Seattle

我希望能够在不丢失数据的情况下对它们进行分组:

output: 
ID  Location
a   Boston, NY
c   SF, Seattle
d   LA

我该怎么做?

数据示例 #2 (使用 @pnuts 公式) - 这里的问题是删除 TRUE 行后,banner1 不显示 1。在banner1 FALSE 行的formula1 列中应该是1,2,5

id             cell formula1    formula2
banner1        1    1,          TRUE
banner1        2    2,          TRUE
banner1        5    2, 5        FALSE
banner2        3    3,          TRUE
banner2        6    3, 6        FALSE
banner4        4    4,          TRUE
banner4        7    4, 7        FALSE

【问题讨论】:

  • 是的。可以在 Excel 中完成。
  • @Jeeped 编辑的问题。抱歉不清楚。
  • 我之前写过这个解决方案。诀窍是从下到上向后走,寻找与“组”匹配的值。它应该无需修改即可工作。如果我能找到它,我会发布一个链接。
  • 这是接近 Aggregate, Collate and Transpose rows into columns 的内容。我写了另一个更近的,但我找不到它。
  • 我不懂 VBA。我正在寻找公式解决方案。

标签: excel if-statement excel-formula grouping worksheet-function


【解决方案1】:

对于不常见的需求,假设ID 在 A1 中,这可以通过在 ColumnA 上排序然后在 C2 中输入来实现:

=IF(A2=A3,B2&",",IF(A1=A2,C1&" "&B2,B2))  

在 D2 中:

=RIGHT(C2)=","  

向下复制以适应,复制结果并选择性粘贴...,在对 ColumnD 进行过滤以选择并删除“TRUE”行然后删除 D 列之前将值放在顶部。

对于频繁使用,像 VBA 之类的东西可能更实用(可能在应用上述过程之前通过打开录制宏来创建)。

【讨论】:

  • 谢谢,非常接近。它适用于发布的样本数据,但我在另一个样本上尝试过,发现有问题。我在帖子中发布了新的数据样本。
  • 谢谢,效果很好。在这种情况下,我必须删除错误行。你可以编辑答案吗?我会接受的。
  • 好的,样本是通用的。你的新公式是更好的方法。如果您更新答案,将来的读者会更容易。我接受了。
猜你喜欢
  • 2010-12-02
  • 1970-01-01
  • 2017-06-18
  • 2012-04-05
  • 1970-01-01
  • 2023-02-07
  • 1970-01-01
  • 1970-01-01
  • 2018-12-07
相关资源
最近更新 更多