• ベストアンサー

エクセルで関数などを使って行列を変更する。

シート1に 下記のように入力されているシートを     A     B     C 1    1000   1   45 2    1000   4   78(以下同じように配列されているものとします。) 3 1001 2 14 4 1000 2 36 5 1001 1 91 6 1001 4 47 7 1000 3 25 8 1001 3 64 シート2に次のようにすることは可能でしょうか?    A     B     C    D    E 1        1      2    3   4 2  1000    45    36    25    78 3  1001    91    14    64    47 初歩的な質問で申し訳ありませんが、よろしくご教授ください。

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

  • ベストアンサー
  • kakkysan
  • ベストアンサー率37% (190/511)
回答No.2

例示された物がどのように変換しているのか解りづらいのですが 単に行と列を入れ替えるだけなら 元になる領域をコピー⇒コピー先の左上のセルで、「形式を選択して貼り付け」⇒行と列を入れ替える⇒OK でできます。 見当違いならごめんなさい

kuwakuwakuwa
質問者

お礼

早速の回答ありがとうございます・参考にさせていただきます。

その他の回答 (3)

noname#204879
noname#204879
回答No.4

Sheet2 のセル B2 に次式を入力して、此れを範囲 B2:E3 に複写 =SUMPRODUCT((Sheet1!$A$1:$A$8=$A2)*(Sheet1!$B$1:$B$8=B$1),Sheet1!$C$1:$C$8)

kuwakuwakuwa
質問者

お礼

早速の回答ありがとうございます・参考にさせていただきました。関数式の意味をしらべたところ自分のシートに合った方法が見つかりました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 必要に応じて、式の範囲を変更してください。 Sheet2    A   B   C   D   E 1      1   2   3   4 2  1000  45  36  25  78 3  1001  91  14  64  47 4  1002 B2:~下・右へ =IF(OR(COUNTIF(Sheet1!$A$1:$A$8,$A2)=0,COUNTIF(Sheet1!$B$1:$B$8,B$1)=0),"",INDEX(Sheet1!$A$1:$C$8,MAX(INDEX((Sheet1!$A$1:$A$8=$A2)*(Sheet1!$B$1:$B$8=B$1)*ROW(Sheet1!$A$1:$A$8),,)),3))

kuwakuwakuwa
質問者

お礼

早速の回答ありがとうございます・参考にさせていただきます。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

TRANSPOSE関数ですね Sheet2のA1に =TRANSPOSE(Sheet1!A1:C8) 次に Sheet2 の A1 から E3 を範囲して F2 を押す(A1を編集状態にする) A1を編集の状態から Shift + Ctrl + Enter Sheet2 の A1 から C3 に行列を入れ替えた参照が出来上がります。 ※セルを一つずつ選択して参照貼り付けしても出来ますが、この方が早いです。

kuwakuwakuwa
質問者

お礼

早速の回答ありがとうございます・参考にさせていただきます。

関連するQ&A