次の方法で共有

PowerQuery 同一組織コードの組織名をカンマ区切りで結合し1レコードにする方法

Anonymous
2018-04-10T04:20:34+00:00

お世話になります。

Excel2010(バージョン14.0)でPowerQuery(バージョン: 2.48.4792.941)を使用しています。

下図のように、組織コードと組織名を持つ、組織テーブルAがあります。

これを、組織テーブルA'のように、組織コードごとに、全ての組織名をカンマ区切りで連結し、

1レコードに集約することは、PowerQueryのクエリで表現できるでしょうか。

配列について調べておりますが、探しあぐねております。

どうぞ、宜しくお願い致します。

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

4 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2018-04-19T02:08:32+00:00

    こちらも再現できました!

    なんと1ステップで実現できるとは。

    本当に有難う御座います。

    心より御礼申し上げます。

    ロジックについてはよく理解に至っておりませんが、

    上記コードを重宝し、今後の学習に役立てて参りたいと思います。

    この回答は役に立ちましたか?

    4 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません
  2. Anonymous
    2018-04-19T01:08:33+00:00

    Power Query のバージョンごとの確認をしなかったから回りくどいコードにしたのだけど、

    let

        Source = Excel.CurrentWorkbook(){[Name="組織テーブルA"]}[Content],

        CombineText = Table.Group(

            Source,

            { "組織コード" },

            { "組織名", each Text.Combine( _[組織名], "," ) } )

    in

        CombineText

    でもよさそうだなぁとあとから気づきました。

    Enjoy power query.

    この回答は役に立ちましたか?

    3 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません
  3. Anonymous
    2018-04-18T02:40:24+00:00

    再現できました!

    本当に驚き、感動しました!

    同時並行で調べたどり着いた方法は、同一組織コードごとに1から連番を振り、

    連番ごとに組織名をピボット化(詳細設定のオプションで値の集計関数を「集計しない」に

    する)し、組織コードをキーに組織名の種類分、項目として横展開して連結するというもの

    でしたが、項目の種類数の変動に対応できない欠点がありました。

    こちらで回答頂いた方法の方がシンプルで上記の欠点も解決します。

    今回の解決法は、そもそも構文の作り方から、いろいろなロジックを作れることを

    知ることができました。今後の参考にもして参りたいと思います。

    本当にありがとうございました!

    この回答は役に立ちましたか?

    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません
  4. Anonymous
    2018-04-17T20:40:21+00:00

    Power Query で記述するならこんな感じ。

    let

        Source = Excel.CurrentWorkbook(){[Name="組織テーブルA"]}[Content],

        SelectAndDistinct =

            Table.Distinct(

                Table.SelectColumns( Source, "組織コード" )

            ),

        CombineText =

            Table.AddColumn(

                SelectAndDistinct,

                "組織名",

                each

                    let

                        Code = [組織コード]

                    in

                        Text.Combine(

                            Table.SelectRows(

                                Source,

                                each

                                    [組織コード] = Code

                            )[組織名],

                            ","

                        )

            )

    in

        CombineText

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません