- 締切済み
Excel操作について
Excelの操作で縦にコピーをしたら関数の中身が横にだけ行くようにしたいのですがどうすればいいのですか? 例えばB3の中にSUM(A9:A12)などの文を入れてB8までコピーするとしてB4にコピーすると(A9:A12)から(B9:B12)といった結果になるにはどうすればよいですか?
- みんなの回答 (10)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
NO6です。 本質問の回答は、関数式の中でも思い付かない、むつかしいタイプになると思う。難易度で5段階で4段階目ぐらいのものと思う。第5段階は、関数での「抜き出し問題」の式かと思う。 式を縦方向に複写して、対象セル範囲は横方向に移動させる点はむつかしいのです。 ーー そこでVBAができれば「ユーザー定義関数」を作る手もあると思いました。コードは1、2行にすぎません。 列sを指定してColumns(s)で、列データが取れることをつかう。 ーー 例データ 数値データはG2:L8に置きます。 1月 2月 3月 4月 5月 6月 りんご 1 2 3 4 5 6 バナナ 11 12 13 14 15 16 ビワ 21 22 23 24 25 26 ブドウ 31 32 33 34 35 36 サクランボ 41 42 43 44 45 46 グレープF 51 52 53 54 55 56 その他 61 62 63 64 65 66 売上合計 217 224 231 238 245 252 <-なくても良い。本件関数テストの結果と比べるため、SUM関数で出しておいた。 ーーユーザー定義関数のコード VBE画面で、挿入ー標準モジュールー出てきた画面に下記下記をコピペ。 Function smm(r, s) smm = Application.WorksheetFunction.Sum(Range(r).Columns(s)) End Function ーー関数をシートに入力。式の複写 シートのB2セルに =SMm("G2:$L$8", ROW()-ROW($B$1))と入れる。 -ROW($B$1)は、B1でなくB2に式を入れているために修正項です。 B7まで式を縦方向に複写。 ーー 結果 売上 1月 217 2月 224 3月 231 4月 238 5月 245 6月 252 SUM関数の月別の結果と一致している。
- kagakusuki
- ベストアンサー率51% (2610/5101)
縦にコピーするだけなら =SUM(OFFSET($A$9:$A$12,,ROW()-ROW($B$3))) 横にもコピーするのなら =SUM(OFFSET($A$9:$A$12,COLUMN()-COLUMN($B$3),ROW()-ROW($B$3))) の様にされると良いと思います。
- ggggggggggg hhhhhhhhhhh(@tasketeqq1)
- ベストアンサー率15% (36/231)
7のヤツが言うこんなことをしてはだめです。→「=SUM(OFFSET(A$9,,ROW(A1)-1,4))」 「オレは知ってるぞ、詳しいぞ」なんてのは、それこそ初心者のやること。 パッと見て誰でもすぐわかるものにしなさい、シンプルに!
- msMike
- ベストアンサー率20% (364/1804)
無理どころか、簡単です。そんなときのために、OFFSET関数があるって断言して憚りません、私は。 B3: =SUM(OFFSET(A$9,,ROW(A1)-1,4))
- imogasi
- ベストアンサー率27% (4737/17069)
OKWAVEのエクセルのカテゴリ(関数やその他のエクセルの質問。それはこことは別にあるはず)に質問したらどうですか。ここはVBA、VBなどのカテゴリと思います。 小生は、最近はエクセル関数の質問に答えてないので、センスが鈍ってしまったが、下記でどうですか。 質問の趣旨を誤解していたらご免。 ーー offset関数を使う。 例データ A9:F12(B3-B8は下に6行なので、横に6列のデータを作る) 1 2 0 -2 -4 -6 1 1 4 7 10 13 3 3 5 7 9 11 4 4 2 0 -2 -4 B3に =SUM(OFFSET($A$9:$F$12,0,ROW(A3)-3,4,1)) B8まで縦方向に式を複写。(それ以上下に複写すると、この場合(質問者の示したセル例では)はデータが壊れるので注意) B3:B8は 9 10 11 12 13 14
- qwe2010
- ベストアンサー率19% (2193/11072)
それだとコピーするよりも B4の場合 SUMをクリックして、その後にB9をクリックしてB12までドラッグした方が早いです。
- mshr1962
- ベストアンサー率39% (7417/18945)
数式なら出来ますが。。。。 ="文書1…SUM("&ADDRESS(9,ROW()-2,4)&":"&ADDRESS(12,ROW()-5,4)&")…文書2" とか ="文書1…SUM("&CHAR(62*ROW())&"9:"&CHAR(62*ROW())&"12)…文書2" 後は、C列に、変化する内容を設定しておいて ="文書1…"&C3&"…文書2"
- ggggggggggg hhhhhhhhhhh(@tasketeqq1)
- ベストアンサー率15% (36/231)
横にコピーして移動することですね。
- last_shishi
- ベストアンサー率56% (54/96)
B3に =SUM(A9:A12) と入力して 横にコピペして、 C3に =SUM(B9:B12) D3に =SUM(C9:C12) がコピーされるので、 そのセルにカーソルをあわせて 上部の数式バーの値をコピペしていくしかないかな
- aokii
- ベストアンサー率23% (5210/22062)
コピーでは無理です。