在 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-CodeDone

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

  • 選擇資料中的某個儲存格,然後按一下Insert標籤 -> 按一下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+ SHIFT+ 。ENTER


相關內容