• 締切済み

Excellデータのちょっと複雑な行列入れ替えです。

行列入れ替えです。 データ A  12         A  12 15 20 A 15 B 18 25 A 20 → C 12 B 18 D 15 B 25 C 12 D 15 のようにしたいのですが。よろしくお願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

例データ A 12 A 15 A 20 A 5 B 18 B 25 B 6 C 9 C 12 D 15 D2:D6に A B C D E とあるとして E2に =IF(COLUMN()-4<=COUNTIF($A$2:$A$11,$D2),INDEX($B$2:$B$11,MATCH($D2,$A$2:$A$11,0)+COLUMN()-4-1),"") I2まで横方向に式を複写。 E2:I2を範囲指定して、縦方向に式を複写 結果 A 12 15 20 5 B 18 25 6 C 9 12 D 15 E 色々やっているうちに、ほとんど#1のご回答と同じになったが。 (D列の中間列は使っていないが。) ーーーー 関数でがんばらなくとも VBAを使うと素直な考え方、すなわち (1)A列の値が同じ間は列方向にヅラして並べる (2)A列の値が変われば、1行下の行へ下がって(1)と同じことをする。 のロジックでできますが。

noname#204879
noname#204879
回答No.1

  A B  C D E F  G  H 1 A 12 2 A 15   3 A 12 15 20 3 A 20   2 B 18 25 4 B 18   1 C 12 5 B 25   1 D 15 6 C 12 7 D 15 8 D2: =COUNTIF(A:A,E2) F2: =IF(COLUMN(A1)>$D2,"",OFFSET($B$1,SUM($D$1:$D1)+COLUMN(A1)-1,))

BEAR0930
質問者

お礼

ありがとうございます。できました。 大感謝です。