• ベストアンサー

Excel 行列入れ替えて数式をコピーしたい

Excelのすばらしい機能に相対参照を使った連続コピーがあります。例えば、=A1 を横方向にコピーすると =B1 =C1 ・・となり、縦方向だと=A2 =A3 ・・となります。 ところで、これを横方向にコピーしたとき =A2 =A3 ・・、縦方向に=B1 =C1 ・・になる方法ってないでしょうか? 「形式を選択して貼付け」の[行列を入れ替える]では『値』では有効なのですが『数式』だとうまくいきません。数式で行列入替する方法を教えて下さい。

  • goo62
  • お礼率91% (195/214)

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

  • ベストアンサー
noname#35109
noname#35109
回答No.3

No.2で答えた者ですが,もっと簡単な方法がありました。 セルの表示形式はデフォルトの「標準」ままでかまいません。 まず,「=A1」と入力するセルに「あ=A1」と入力し,それを縦方向に連続コピーします。 「あ=A1」,「あ=A2」,…  となるはずです。 これを「形式を選択して貼付け」の[行列を入れ替える]で単純にそのまま貼り付け,貼り付けた先のせるを選択し, 「あ」を「」(←文字無記入)に置換してやるとできます。 最初したとき, 『セル内には「=A1」,「=A2」… になっているのに,なんで表示が「あ=A1」,「あ=A2」,…  なんだろう???』 とあせってしまいましたが,何の事はない,最初に書いた「あ=A1」,「あ=A2」,…  というセルが「=A1」,「=A2」… によって参照されてるだけでした。

goo62
質問者

お礼

ありがとうございました。[置換]を使うことまでは思いつきませんでした。縦方向、横方向とも数式の行列入替コピーがすっきりとできました。ホントにいいアイデアでした。ありがとうございました。

その他の回答 (2)

noname#35109
noname#35109
回答No.2

いつも我流でExcelと格闘してるため,ちゃんとした方法かどうかわかりませんが,できるので一応。 まず,=A1と書き込むセルの書式設定を「文字列」にし,=A1と書き込みます。 この時点で,セルには=A1と表示されていると思います。 これを縦方向に連続コピーし,できた列を「形式を選択して貼付け」の[行列を入れ替える]で単純に貼り付けたあと,そのセルの表示形式を「標準」にします。 これで,表示が計算結果の値ではなく=A1,=A2,… のままであれば,そのセル1つ1つをダブルクリックして,リターンすると数式として扱われるようになります。 でも,セルが多くて手間な場合は そのセル全体を選択し下のマクロを実行させます。 Sub Enter_Values() For Each xCell In Selection xCell.Value = xCell.Value Next xCell End Sub このマクロは単純なもので,今まで自作してやってましたが,ココ↓にも出てました。 http://support.microsoft.com/default.aspx?scid=kb;ja;291047 

参考URL:
http://support.microsoft.com/default.aspx?scid=kb;ja;291047
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

勘違いしているかも知れませんが、 例えば、 A1:C3にデータがあるとき D1に =OFFSET($A$1,COLUMNS($D$1:D1)-1,ROWS($D$1:D1)-1) と入れると、 横にコピーすると、縦のデータが 縦にコピーすると、横のデータが参照できます transpose関数を使うこともできます。 同じ条件の時 =TRANSPOSE(A1:C3) をD1:F3の範囲でSHIFT+CTRL+ENTERで配列式として入力します。

goo62
質問者

お礼

ご教示ありがとうございました。OFFSET関数を使った方法で試してみたらうまくいきました。ただ、意味的にはまだピンときていませんので、もう少し勉強します。TRANSPOSE関数のもは、手持ちの解説書にこの関数が載っていないこともあり、#VALUE!にしかなりません。SHIFT+CTRL+ENTER云々のことも解りません。もっと勉強します。ありがとうございました。

関連するQ&A

  • エクセルで数式をコピーする時のセル番地

    エクセルでは相対参照が働き、セル内の数式をコピーすると それに伴って数式内のセル番地が変化します。 普通は、例えばA1に=B1+C1という計算式が入っていて、 A1から下方向にコピーをすると A2→=B2+C2 A3→=B3+C3 となりますが、ここで A2→=B4+C4 A3→=B7+C7 という風に、コピーする行は1行ずつだけど 数式内のセル番地は3個飛びごとにするといった設定はできるのでしょうか。

  • エクセルで数式をコピーしたときに..

    このような表があります。 ....A......B.......C......D 1 ........ 100 200 300 2 100 3 200 4 300 縦×横の表を作成したいのですが、 B2を=B1*A2と入力します。 そしてこの数式をC3にコピーするとC2*B3になってしまいます。 これをコピーした時に、C1*C3にしたいのですが、 横軸はいつも1の行、縦軸はいつもAの列になるように 数式のコピーはできないでしょうか?   

  • EXCEL 関数をふくむ行列の入れ替え

    いまSheet1に3列*2行で A1+A10 B1+B10 C1+C10 A2+A11 B2+B11 C2+C11 といった関数が入っているとして、 別のシートに、この関数から導き出される値の行列を入れ替えた状態で表示したいのですが、どういった方法があるのでしょうか? ちなみに値だけを行列の入れ替えをしたいのではなく、関数を活かしたまま行列を入れ替えたいのですが、一般的な「形式を選択して貼り付け」で行列の入れ替えにチェックをいれても、エラーが返ってきてしまいうまくいきません。 さらに、その別のシート上でSUMなどの関数で縦・横・の集計など計算をしたいのですが・・・ いい方法があったら教えてください。

  • Excelで数式のコピーが上手くいきません

    以下のことが出来ず困っています。  Sheet1のセルA1に「Sheet2!A1」、セルB1に「Sheet2!A2」が入っています。  このSheet1A1・B1の数式を横にコピーしたいのです。つまり、Sheet1C1にSheet2!A3~Sheet1F1にSheet2!A6というように数式の縦横が逆になるようにしたいのです。  さらに、上記で作成したSheet1のA1~F1までの数式を他の行にコピーしたいのです。A2に「Sheet2!B1」、B2に「Sheet2!B2」のようにです。  行列を入れ替える等やってみましたがダメでした。頭で考えていると訳がわからなくなります。  表内のデータ数が多いので手入力は避けたいです。  方法がありましたら教えてください。お願いします。

  • 【Excel】数式のコピー

    Excel2003を使用しています。 ある表の行数を増やして、数式もコピーしたいのですが、その数式は別シートを参照していて、行・列が連続していないので、単純にコピー → 貼り付けでは、正しい数式を貼り付けることができません。 現在は、とりあえず、コピー&貼り付けした後に、数式を修正しているのですが、規則性があるので、手作業で数式を修正する以外に何か良い方法はないでしょうか? よろしくお願いします。

  • 【Excel】数式のコピー

    Excel2003を使用しています。 他人が作成した表の行数を増やして、数式もコピーしたいのですが、その数式は別シートを参照していて、行・列が連続していないので、単純にコピー → 貼り付けでは、正しい数式を貼り付けることができません。 現在は、とりあえず、コピー&貼り付けした後に、数式を修正しているのですが、規則性があるので、手作業で数式を修正する以外に何か良い方法はないでしょうか? Sheet1…参照するシート Sheet2…数式が入力されているシート Sheet2に入力されている数式は  C7 = Sheet1!B7  D7 = Sheet1!C7  E7 = Sheet1!D7  F7 = Sheet1!E7  G7 = Sheet1!F7  H7 = Sheet1!G7  I7 = Sheet1!B8  J7 = Sheet1!C8  K7 = Sheet1!D8     :     :  C16 = Sheet1!B25  D16 = Sheet1!C25  E16 = Sheet1!D25  F16 = Sheet1!E25  G16 = Sheet1!F25  H16 = Sheet1!G25  I16 = Sheet1!B26  J16 = Sheet1!C26  K16 = Sheet1!D26 以上が1ページ分で、C列~H列、I列~K列はそれぞれ参照する行が1行おきになっています。 Sheet1の1ページは26行ありますので、2ページ目のSheet2の数式は  C17 = Sheet1!B33  から始まり  D17 = Sheet1!C33     :     :  H17 = Sheet1!G33  I17 = Sheet1!B34  J17 = Sheet1!C34  K17 = Sheet1!D34     :     :  K26 = Sheet1!D52  までが、2ページ目となり、これが下方向へ続いています。 これらの数式を変更することなどで、コピー&貼り付けができないかと思い、質問させていただきました。 説明がわかりづらくて、申し訳ありませんが、よろしくお願いします。

  • エクセルでの数式のコピー

    エクセルで数式を別のファイルにコピーをしようとしました。 そこで、コピー(C)-貼り付け(P)を行いましたが、 数式ではなく数値でコピーされてしまいました。 (特に設定は変えていません) 数値でなく数式がコピーできる方法を教えてください。

  • Excelで数式のコピーが出来ない

    簡単な作業ですがどうした訳か数式のコピーが出来ません。長年、同じ方法でやっています。確かにコピー元には数式が入っているのですが貼り付けすると数式ではない値がそのまま出ます。EXCEL2003でやっています。作業はA1…E1のAVERAGEをF1に求めるものですが1行目は計算されますが2行目にF1をコピー/貼り付け又はドラッグしても同じですが同じ数字が出ます。またA列1~100までの値が入っているものだけのCOUNT数にしてもB列~G列も同症状です。こんな事は初めてなのでどなたか教えて下さい。

  • エクセルの数式コピー&ペースト【列の値だけ変化】

    エクセルの数式を縦方向に 相対参照でコピーしたいのですが、 同一の列でのコピーでは列の値に変化は ありませんよね。これを、、 例えば・・ A1セルに=sheet1!G$32とあるのをコピーして、 A2セルに=sheet1!H$32、 A3セルに=sheet1!I$32、 ・ ・ A6セルに=sheet1!L$32といった具合に 行ではなく列の値だけをどんどん変化させたいです。 コピー&ペーストでこれを解消できる方法、 もしくはそれ以外に簡単に解決する対処方法は ありますでしょうか?

  • Excel 数式の相対参照について

    相対参照を使い、ドラッグによる数式のコピーを 試みたいのですが、例えば・・・ C1にA1を表示させる=A1という式を入れます。 次にC2にA3を表示させる=A3という式を入れます。 次にC3にA6を表示させる=A6という式を入れます。 このような3の倍数での条件(a1,a3,a6,a9・・・) で数式のコピーを試みた場合、この条件でコピーできません。 同様なケースで・・・ C2にA1を表示させる=A1という式を入れます。 次にC3にB1を表示させる=B1という式を入れます。 次にC4にC1を表示させる=C1という式を入れます。 このようなアルファベット順での条件(A1,B1,C1・・・) で数式のコピーも同様で、できません。 他に、このような条件を満たす方法はありませんか?