- ベストアンサー
エクセルの行と列を入れ替える。
エクセルで、数式を残したまま行と列を入れ替えることはできますか? 行と列を入れ替えると、#REFが出てしまうのですが。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こういうのはどうですか。 例 データ Sheet1のA1:C3 1 4 3 2 5 4 3 9 7 A3,B3,C3には =SUM(A1:A2)のような合計関数が入っていますが、回答には関係ない。 Sheet2 に行って A1に =OFFSET(Sheet1!$A$1,COLUMN()-1,ROW()-1) と入れてA1の式をA3まで複写。 A1:A3を範囲指定し、+ハンドルを出して、C1:C3まで引っ張る。 結果 Sheet2の A1:C3 1 2 3 4 5 9 3 4 7 値だけ並べ替えている。 Sheet1の変動の結果は即時反映します。
その他の回答 (4)
- nobu555
- ベストアンサー率45% (158/345)
結果だけを行列を入れ替えると、#REFが出てします。 原因は、セル参照が相対参照しているためです。 (A1は相対参照、$A$1が絶対参照、ご存知だと思いますが) >たとえば、シート1のA1、A2を足した結果をA3に出るようにA3=sum(A1:A2)、同じようにB、C、Dと関数を入れてあるとします。シート1のA3、B3、C3をシート2に行と列を入れ替えて、A1、A2、A3に貼り付けをしたいとき この場合、シート2のA1は、行列を入れ替えているのでA1から見て 左側のセルを参照したいのに無いので、数式が=SUM(#REF)になります。 コピーは、無理なので以下の式をセルA1に入力 =INDIRECT("'Sheet1'!R1"&"C"&ROW()+0,0) 仕様と違う所(シート名R1、+0など)は、適宜変更して列方向にコピーしてください。R1は行、C&ROW()+0は列です。
お礼
ありがとうございます。 なんとかこの方法でできそうです。 とても助かりました。 今までよくわからずに(ちゃんと本とかで勉強していないので)「A1は相対参照、$A$1が絶対参照」も「かん」でやってました。$をつけると便利・・・ぐらいの感覚で。すごくなっとくです。 ありがとうございました!!
- fukafukafu
- ベストアンサー率69% (9/13)
シートが違うと参照の認識ができないので、 NO1の方法だとエラーになりますね。 例のデータで書かせてもらうと、 一度Sheet2にSheet1の式を参照する形なら出来ると思います。 Sheet2のA1にSheet1のA1 Sheet2のA2にSheet1のB1 Sheet2のA3にSheet1のC1 としたいということですよね。 やりたいことがあっているかわかりませんが、 (1)Sheet2.A1に=Sheet1!A1を入力。 (2)オートフィルで列方向にドラッグ →Sheet2.B1==Sheet1!B1、Sheet2.C1==Sheet1!C1・・・ (3)A2を選択し、行と列の入れ替えをする。 A1を選択すると、コピーする場所と貼り付け場所が同じだとNGになりますから あとで移動してください。
- t-yamada_2
- ベストアンサー率40% (587/1460)
対象(範囲)を選択 → コピー先で右クリック → 形式を選択して貼り付け → 行列を入れ替える にチェックしてOK
- fukafukafu
- ベストアンサー率69% (9/13)
入れ替えたい部分を選択し、[コピー] 貼り付けしたい場所を選択し、 [編集]-[形式を選択し貼り付け]、 行列を入れ替えるにチェックをいれて[OK]してください。 コピーしたい部分と貼り付けする場所が同じ時 エラーになる場合があります。 入れ替えてから移動されるといいと思います。 また、貼り付けしたいセルを2つ以上選択すると、 エラーになる場合があります。 貼り付けたい場所では、1つだけセルを選択した方がうまくいくと思います。
補足
さっそくの回答ありがとうございます。 その方法も試してみましたが、自分のやりたいこととはちょっと違ったようです。質問時に言葉足らずでした。 たとえば、シート1のA1、A2を足した結果をA3に出るようにA3=sum(A1:A2)、同じようにB、C、Dと関数を入れてあるとします。シート1のA3、B3、C3をシート2に行と列を入れ替えて、A1、A2、A3に貼り付けをしたいときはどうすればいいのでしょうか? fukafukafuさんのおっしゃってる方法だと#REFが出てしまいますし、300件からのデーターでまだ変動があるので値だけをコピーしてしまうと変動が反映されません・・・。 変動が反映される行と列を入れ替える良い方法があれば教えてください。よいお知恵があれば教えてください。
お礼
ありがとうございました。このやり方で一気に解決することができました。 とても助かりました。できないのかも・・・。と思っていたので本当に感謝しています。ひょっとしたら一つ一つ関数を入れなければならないのかも・・・。と思っていたので。 ありがとうございました。