我有一個包含大量資料的表,其中包含姓氏和家庭成員。我試著將它們放入一個唯一的清單中,後面跟著家喻戶曉的名字作為逗號分隔值。
下表解釋了輸入和所需的輸出。
這是原始數據。
家庭 | 名稱 |
---|---|
史密斯 | 簡 |
博耶 | 安雅 |
磨坊主 | 凱特 |
史密斯 | 約翰 |
博耶 | 道格 |
博耶 | 山姆 |
磨坊主 | 喬 |
史密斯 | 吉姆 |
博耶 | 傑夫 |
我確實找到了一個類似的請求,但它是針對 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 & Load或Close & 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 Worksheet
或Existing Worksheet
根據您的選擇,--> 如果後者選擇儲存格位置並按一下Add this data the Data Model
。
- 出現右側
Pivot Table
欄位窗格,右鍵點選Table_1
窗格並選擇Add Measure
- 根據您的選擇輸入度量名稱,然後在公式部分輸入以下公式:
=CONCATENATEX(Table_1,[Names],", ")
- 按“確定”,選擇
Household
並放置在ROWS
“區域”中,同時將“測量”命名為Name-CommaSeparated
(本範例中使用的,您可以更改它)在VALUES
“區域”中。
- 從
Design
Tab 將 變更Report Layout
為Show 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