• ベストアンサー

Excel 縦のデータを横に展開

Excelで(1)から(2)のような状態にするにはどうしたらいいでしょうか?ご教示願います。 (1) A ● 1 A △ 3 A ■ 4 B × 1 B ● 4 C △ 2 C □ 3 C ☆ 4 (2)   1 2 3 4 A ●   △ ■  B ×     ● C   △ □ ☆ ピボットテーブルを使用すればいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

A列 昇順として B12セルに =IF(ISNA(MATCH(B$11,INDEX($C$1:$C$8,MATCH($A12,$A$1:$A$8,0)):INDEX($C$1:$C$8,MATCH($A12,$A$1:$A$8)),0)),"", INDEX(INDEX($B$1:$B$8,MATCH($A12,$A$1:$A$8,0)):$B$8,MATCH(B$11,INDEX($C$1:$C$8,MATCH($A12,$A$1:$A$8,0)):INDEX($C$1:$C$8,MATCH($A12,$A$1:$A$8)),0))) 右へ下へオートフィル A列昇順の必要なしの作業列を使って E1セルに =A1&C1 B12セルに =INDEX($B$1:$B$8,MATCH($A12&B$11,$E$1:$E$8,0)) 右へ下へオートフィル、エラー処理なし 参考まで ちなみにピボットテーブルにはタイトル行が必要で、集計のために使うのでB列は数値である必要があります

USK95
質問者

お礼

ありがとうございます。今日試してみます。

その他の回答 (3)

noname#204879
noname#204879
回答No.4

Sheet1         Sheet2   A  B  C        A  B  C  D  E 1 A ● 1      1   1 2 3 4 2 A △ 3      2 A ●   △ ■ 3 A ■ 4      3 B ×     ● 4 B × 1      4 C   △ □ ☆ 5 B ● 4 6 C △ 2 7 C □ 3 8 C ☆ 4 Sheet2!B2: =IF(SUMPRODUCT((Sheet1!$A$1:$A$20=$A2)*(Sheet1!$C$1:$C$20=B$1)),INDEX(Sheet1!$B$1:$B$20,SUMPRODUCT((Sheet1!$A$1:$A$20=$A2)*(Sheet1!$C$1:$C$20=B$1),ROW(A$1:A$20))),"")

USK95
質問者

お礼

ありがとうございます。今日試してみます。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

次の方法は如何でしょうか。 縦データをSheet1として、Sheet2に横データを作成する (1)Sheet2のA1を選択→データ→フィルタオプションの設定→指定した範囲を選択、リスト範囲欄にsheet1!$A$A,抽出範囲欄に$A$1、重複レコードは無視するをチェック→OK (2)sheet2のA1はクリア、B1に1を入力し右方向に連続データを作成 (3)sheet2のB1に=IF(SUMPRODUCT((Sheet1!$A$1:$A$8=$A2)*(Sheet1!$C$1:$C$8=B$1)),INDEX(Sheet1!$B$1:$B$8,SUMPRODUCT((Sheet1!$A$1:$A$8=$A2)*(Sheet1!$C$1:$C$8=B$1)*ROW(Sheet1!$A$1:$A$8))),"")を設定、縦横にコピー

USK95
質問者

お礼

ありがとうございます。今日試してみます。

  • tomo8047
  • ベストアンサー率39% (21/53)
回答No.1

はい。ピボットテーブルで出来ます。

USK95
質問者

お礼

ありがとうございます。