Excel で一意の値を検索し、対応する値をコンマ区切りの値として表示しますか?

Excel で一意の値を検索し、対応する値をコンマ区切りの値として表示しますか?

姓と世帯を含む大きなデータを持つテーブルがあります。それらを一意のリストにし、世帯名をコンマ区切りの値として取得しようとしています。

以下の表は、入力と目的の出力について説明しています。

一意の値と対応する列

ここに生データがあります。

家庭 名前
スミス ジェーン
ボイヤー アーニャ
ミラー ケイト
スミス ジョン
ボイヤー ダグ
ボイヤー サム
ミラー ジョー
スミス ジム
ボイヤー ジェフ

私は見つけた同様のリクエストですが、Python向けでしたExcel でこれを実行できるものを探しています。ピボット テーブルを試しましたが、集計しようとするため機能しません。

答え1

望ましい出力を達成する方法はたくさんありますが、ここでは私がこれまでに知っているいくつかの方法を紹介します。

▶️ を使用するとPower Query、およびで利用Windows Excel 2010+可能Excel 365 (Windows or Mac)

ここに画像の説明を入力してください


Power Query を使用するには、次の手順に従います。

  • まずソース範囲をテーブルに変換し、それに応じた名前を付けます。この例では次のように名前を付けました。Table1

  • Data次に、タブ --> Get & Transform Data--> Get Data--> From Other Sources-->から空のクエリを開きます。Blank Query

  • 上記のようにPower Queryウィンドウが開きます。TabからHome--> 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 & LoadまたはをクリックしますClose & Load To--> 最初にクリックすると、New Sheet必要な出力を含む が作成され、後者をクリックすると、結果を配置する場所を尋ねるウィンドウが表示されます。

▶️ 利用GROUPBY()可能な機能を使用するMS365 Office Insider バージョン:

ここに画像の説明を入力してください


=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 WorksheetAdd this data the Data Model

  • 右側にフィールドペインが表示されます。ペイン内Pivot Tableで右クリックして選択します。Table_1Add Measure

  • 選択に応じてメジャー名を入力し、数式セクションに以下の数式を入力します。

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

  • [OK] を押して、メジャー名が「Area」(この例では使用していますが、変更できます)である状態で、AreaHouseholdに選択して配置します。ROWSName-CommaSeparatedVALUES

  • Designタブから を に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


関連情報