在 Excel 中查找唯一值并将相应的值显示为逗号分隔的值?

在 Excel 中查找唯一值并将相应的值显示为逗号分隔的值?

我有一张包含大量数据的表格,其中包含姓氏和家庭户数。我试图将它们放在一个唯一列表中,后面是家庭名称,以逗号分隔的值。

下表解释了输入和期望输出。

唯一值和对应列

这是原始数据。

家庭 名字
史密斯
博耶 安雅
磨坊主 凯特
史密斯 约翰
博耶 道格
博耶 山姆
磨坊主
史密斯 吉姆
博耶 杰夫

我确实找到了类似的请求,但是针对的是 Python。我在 Excel 中寻找可以执行此操作的程序。我尝试了数据透视表,但它不起作用,因为它试图聚合它。

答案1

有很多方法可以实现所需的输出,以下是我迄今为止所知道的几种方法:

▶️ 使用Power Query,可在Windows Excel 2010+Excel 365 (Windows or Mac)

在此处输入图片描述


要使用 Power Query,请按照以下步骤操作:

  • 首先将源范围转换为表格并进行相应命名,在此示例中,我将其命名为Table1

  • Data接下来,从Tab --> Get & Transform Data--> Get Data--> From Other Sources-->打开一个空白查询Blank Query

  • 上面的命令可以Power Query打开窗口,现在从HomeTab --> Advanced Editor--> 删除您看到的任何内容并粘贴以下内容M-Code,然后按Done

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Household", type text}, {"Names", type text}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Household"}, {{"Names", each Text.Combine([Names],", "), type text}})
in
    #"Grouped Rows"

在此处输入图片描述


  • 最后,将其导回Excel--> 单击Close & LoadClose & Load To--> 第一个单击的将创建一个New Sheet具有所需输出的,而后者将提示一个窗口询问您将结果放在何处。

▶️GROUPBY()使用MS365 Office 预览体验版本

在此处输入图片描述


=GROUPBY(A2:A10,B2:B10,ARRAYTOTEXT,,0)

▶️ 或者,使用LAMBDA()辅助函数BYROW()--> 适用于当前频道MS365

=LET(
     _data, A2:B10,
     _household, TAKE(_data,,1),
     _names, UNIQUE(_household),
     HSTACK(_names, BYROW(_names, LAMBDA(x, TEXTJOIN(", ",1,IF(x=_household,TAKE(_data,,-1),""))))))

▶️ 或者,使用POWER PIVOT,可在Windows Excel 2013+Excel 365 (Windows)

在此处输入图片描述


要使用 Power Pivot,请按照以下步骤操作:

  • 首先将源范围转换为表格并进行相应命名,在此示例中,我将其命名为Table_1

  • 选择数据中的某个单元格并单击InsertTab -> 单击Pivot Table-->Table/Range将显示为Table_1,根据您的选择单击New WorksheetExisting Worksheet,--> 如果后者选择单元格位置并单击Add this data the Data Model

  • 在右侧Pivot Table字段窗格出现时,右键单击Table_1窗格并选择Add Measure

  • 根据您的选择输入度量名称,然后在公式部分输入以下公式:

=CONCATENATEX(Table_1,[Names],", ")

  • 按“确定”,选择Household并放置在“ROWS区域”中,同时将“测量”命名为Name-CommaSeparated(在此示例中使用,您可以更改它)在VALUES“区域中”。

  • DesignTab 中将 更改为Report LayoutShow in Tabular Form然后单击Grand Totals并选择Off for Rows and Columns,您将获得所需的输出。

⏩ 另一个替代版本Excel 2016+

在此处输入图片描述


=SUBSTITUTE(CONCAT(IF(D2=A$2:A$10,","&B$2:B$10,"")),",",,1)

上述公式仅在旧版本中需要在退出编辑模式时按CTRL++ 。SHIFTENTER


相关内容