Excel - 重複行のデータを新しい列に移動する

Excel - 重複行のデータを新しい列に移動する

異なる商品を購入した顧客を表す重複行があります。購入された商品は 1 つの列にあります。別のプログラムにインポートできるように、それらを別の列に移動したいと思います。したがって、私のデータは次のようになります。

Excelのスクリーンショットをアップロードしました

John  book          
John  ball          
John  bat           
Tom   book          
Tom   bat           
Kate  ball

購入したアイテムのデータを、次のように別の列に移動したいと思います。

John   book   ball   bat

Tom    book    -     bat

Kate    -     ball    -

本、ボール、バットにはそれぞれ独自の列があります。

答え1

から下方向に入力されるこの数式は、A8重複を除いた顧客名をリストします。

=IFERROR(INDEX($A$1:$A$6,MATCH(0,COUNTIF(A$7:A7,$A$1:$A$6),0)),"")

これは配列数式なので、CTRLShiftEnterだけではなく と一緒に入力する必要がありますEnter

この数式は、 から右下に入力されB8、各顧客による購入をリストします。

=IF(SUMPRODUCT(($A$1:$A$6=$A8)*($B$1:$B$6=INDEX($B$1:$B$3,COLUMN(A1))))>0, INDEX($B$1:$B$3,COLUMN(A1)),"")

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

最後の式は、 が購入の順序付きリストであるという事実に依存していることに注意してくださいB1:B3。これはおそらく偶然であり、同様のリストはどこにでも存在する可能性があります。リストが垂直ではなく水平であれば、式はより単純になります。リストが にあるとするE1:G1と、式は次のようになります。

=IF(SUMPRODUCT(($A$1:$A$6=$A8)*($B$1:$B$6=E$1))>0,E$1,"")

そして、最初のものと同様の配列数式を E1 から直接入力すると、そこに購入をリストできます。

=IFERROR(INDEX($B$1:$B$6,,MATCH(0,COUNTIF($D1:D1,$B$1:$B$6),0)),"")

関連情報