次のようなデータを含むスプレッドシートがあります。
製品|属性 ---------- + ---------- 製品A |シアン 製品B |シアン 製品C |シアン 製品A |マゼンタ 製品C |マゼンタ 製品B |イエロー 製品C |イエロー 製品A |ブラック 製品B |ブラック
列Aですべてをグループ化し、列Bを、列Aを共有する値のコンマ区切りのリストにしたいので、次のようにします。
製品|属性 ---------- + -------------------------- 製品A |シアン、マゼンタ、ブラック 製品B |シアン、イエロー、ブラック 製品C |シアン、マゼンタ、イエロー、ブラック
残念ながら、ピボットテーブルは数値の操作方法しか認識していないため、ピボットテーブルでは、列Aが発生した回数をカウントしています。
データをMySQLデータベースにインポートし、MySQLのGROUP_CONCAT(Attribute)
関数をGROUP BY Product
句を含むクエリで使用することで、これを最終的に取り除くことができましたが、試行中に頭を繰り返し叩いた後Excelソリューションを理解する。
将来の参考のために、これはマクロなしのExcelで可能ですか?それがそうであるかどうかに関係なく、これをどのように引き離すでしょうか?
| A | B
---+-----------+-----------
1 | PRODUCT | ATTRIBUTE
2 | Product A | Cyan
3 | Product B | Cyan
4 | Product C | Cyan
5 | Product A | Magenta
6 | Product C | Magenta
7 | Product B | Yellow
8 | Product C | Yellow
9 | Product A | Black
10 | Product B | Black
行1:1がヘッダー行であると想定します。
Sort A列で製品別にグループ化
C列にカンマ区切り形式でデータを準備する C2に次の式を入力し、C3:C10にコピーします。
=IF(A2<>A1, B2, C1 & "," & B2)
有用な行を特定 D2に入力して=A2<>A3
をD3:D10にコピーします。
列C:Dをコピーし、次に特殊貼り付けを値として(AltE-S-V-Enter)。あなたは今得ます:
Product A Cyan Cyan FALSE
Product A Magenta Cyan,Magenta FALSE
Product A Black Cyan,Magenta,Black TRUE
Product B Cyan Cyan FALSE
Product B Yellow Cyan,Yellow FALSE
Product B Black Cyan,Yellow,Black TRUE
Product C Cyan Cyan FALSE
Product C Magenta Cyan,Magenta FALSE
Product C Yellow Cyan,Magenta,Yellow TRUE
不要な行を削除列DのFALSE
をオートフィルターでフィルタリングして、それらの行を削除します。
終了。列AとCが必要です。
古い投稿だと知っていますが、今日この課題に直面しました。 Microsoftの PowerQuery アドインを使用しました(注:デフォルトでExcel 2016に組み込まれています)。
数式を変更する
から:
= Table.Group(#"Changed Type", {"Product"}, {{"Count", each Table.RowCount(_), type number}})
に:
= Table.Group(#"Changed Type", {"Product"}, {{"Attributes", each Text.Combine([Attribute], ", "), type text}})
ステップ6は、Power Query(M)式を活用して、UIで提供される基本的な操作では公開されないデータ操作を実行します。 Microsoftは、Power Queryで利用できるすべての高度な機能についてオンラインで利用できる完全なリファレンスを持っています。
ここでは、「非マクロ」のアプローチをいくつか紹介します...
小さなデータセットを使用して、最初に製品別に並べ替えた後(GROUP BY製品と同様)、まず「製品」列をコピーし、他の場所に貼り付けてから、重複を削除します。次に、各製品の「属性」をコピーし、各製品の横に「特殊貼り付け、TRANSPOSE」をコピーします。次に、最終的な結果列で、転置した各属性とコンマを連結します。確かに、この「コピー/貼り付け/転置」は、製品のリストが長い場合、すぐに古くなります。
大量のデータがある場合は、いくつかの数式を使用して、以下に示すように、最終的な結果を得ることができます。 F2、G2、H2、I2、N2の数式は、青い矢印で示されています。必要に応じて、それらを下の行にコピーしてください。 J2:L2はI2と同じ式を使用することに注意してください。また、F2数式は、範囲A:Aに及ぶ名前付き範囲「製品」を参照します。