• ベストアンサー

エクセルの計算範囲をセル参照に

いつもお世話になっております。 たとえばSheet1の A1に Sheet2、 B1に A、 C1に =SUM(Sheet2!A:A)という関数があります。 このA1をSheet3に書き換えたら、 C1の内容が、 =SUM(Sheet3!A:A) B1をDに書き換えたら(A1はデフォルトのまま)、 =SUM(Sheet2!D:D) となるようなことは可能でしょうか? 予め別表で選択肢全てで計算結果を出し、 VLOOKUP等で引き当てればいいのですが、 なにかダイレクトに計算するような方法が ないかと思い、質問させていただきました。 よろしくお願いいたします。

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

  • ベストアンサー
  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.1

C1に、 =SUM(INDIRECT(A1 & "!" & B1 & ":" & B1)) でいけると思います。 頑張ってくださいヽ(^。^)ノ

oresama
質問者

お礼

ありがとうございました。 解決いたしました。

その他の回答 (2)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

=IF(OR(A1="",B1=""),"",SUM(INDIRECT(A1&"!"&B1&":"&B1))) A1かB1がブランクの場合は空白を返します。 B1が アルファベット(AからIV)の場合は列 数字(1から65536)の場合は行 の合計になります。

oresama
質問者

お礼

ありがとうございました。 解決いたしました。 補足の部分も大変参考になりました。

回答No.2

indirect()関数を使います。 =sum(indirect(A1&"!"&B1&":"&B1)) てな感じですね。

oresama
質問者

お礼

ありがとうございました。 皆様にポイントを差し上げられないのが残念です。 今回は#1の方と全く同じ内容でしたので、 順番の早い方を優先させていただきました。

関連するQ&A

  • Excelの参照先セルに色を....

    Excelに関する質問です。あちこちのセルを参照しているsum関数があります。   例:=SUM(B4:B9,D7:D13,B16:E17,C20:D21,C23:C25)    このsum関数の参照先セルに、まとめて色を塗りたいのです。「どの領域の合計を出しているのか....」を一目で把握できるようなシートを印刷したいのです。 上手い方法はあるでしょうか? sum関数が入力されているセルを選択すると、参照先セルのワクが色づけされておぼろげに分かりますが、それでは認識性が今ひとつです。同様にsum関数が入力されているセルは複数個あり、それぞれの参照先を色分けしたいのです。 類似回答があるのかもしれませんが、下手な検索なため見あたりませんでした。すみませんが、以上、よろしくお願いいたします! 追伸:手動でチマチマ塗っていくのは断念しました。複数のsum関数がありますが、重複参照のセルはありません。1シート上です。

  • Excel 計算式を別シートで計算表示させる

    所定のSheetにある数値を別SheetにてVLOOKUP等で数値表示させる事はできます。 Sheet1のセルにある計算式をSheet2のセルより数値ではなくSheet1計算式を使って計算して数値表示させたい。 よろしくお願いします。 Sheet1 A B C D 2 3 5 10 D1に=A1+B1+C1の計算式 Sheet1 A B C D 1 2 5 8 D1にSheet1=A1+B1+C1の計算式を使って表示

  • VLOOKUP関数の範囲をセルで指定したいと思っています。

    VLOOKUP関数の範囲をセルで指定したいと思っています。 B1:参照シート名(VLOOKUP関数で使用する範囲があるシート) C2:範囲の開始位置 E2:範囲の終了位置 B3:G3:列番号(B3の値は、B6:B8の範囲で使用する列番号、 D3の値は、D6:D8の範囲で使用する列番号) これらのセルに入力された情報をもとにB6:G8の範囲にVLOOKUP関数を 反映させたいと思っています。 例えば、 B1に参照シート名「2ケタ」 C2にVLOOKUP関数の範囲の開始位置「A5」 E2にVLOOKUP関数の範囲の終了位置「G7」 B3に範囲の列番号「2」がある場合 B6に「=VLOOKUP(A6,'2ケタ'!A5:G7,2,0)の関数を入力。 B2に参照シート名「3ケタ」 C5にVLOOKUP関数の範囲の開始位置「B5」 E2にVLOOKUP関数の範囲の終了位置「H7」 C3に範囲の列番号「3」がある場合 C6に「=VLOOKUP(A6,'3ケタ'!B5:H7,3,0)の関数を入力。 といった感じです。 現在、B6に「=VLOOKUP($A6,INDIRECT($B$1&"!a5:g7"),INDIRECT("$b$3"),0)」と 関数を入力して、VLOOKUP関数の「範囲の参照シート名」と「列番号」の情報は セルから持ってくることができました。 しかし、「a5:g7」という範囲だけは、INDIRECT関数をうまく入れることができません。 どのように関数を入力したら、上手くいくのか、教えていただけないでしょうか。

  • VBAで任意の範囲内のセル2個ずつを総当りでコピー

       シートA        シートB           シートC   A  B C D   A B  C   D     A  B   C  D 1 21 22 23 24  21 22 2122 2122'  2122 2122' 2                           2123 2123’ 3                           2124 2124' 4                           2223 2223' (1)シートAのA1、B1をコピーしてシートBのA1、B1に代入する。  シートBのC1、D1には計算式が入っており、結果が表示される。 (2)シートBのC1、D1の計算結果をシートCのA1、B1に代入する。 (3)次はシートAのA1、C1をコピーしてシートBのA1、B1に代入する。  シートBのC1、D1には計算式が入っているので結果が表示される。 (4)計算結果をシートCのA2、B2に代入する。 (5)同じ動作をシートAの一行目に数字がある場合は繰り返し行う。 (6)シートA(A1、B1)(A1、C1)(A1、D1)が終了したら  今度は(B1、C1)(B1、D1)と、  シートAのB1を、シートBのA1とB1に代入して、  計算された結果をシートCのA列、B列に代入していく。 (7)シートAのB1が終了したら、今度は(C1、D1)をシートBのA1、B1に代入し、  計算結果をシートCのA6、B6に代入する。 地域ごとの合併による効果に関する調査で使用したく、 シートAの一行目の数字を総当りさせる事が目的です。 上の説明では、シートAの一行目は4列しかなく、シートCに導き出される計算結果は6行だけですが、 実際の作業はシートAは130列ほどとなり、マクロで作ると8,000回の作業を しなくてはならないため、VBAでいろいろ試してみたのですが、 知識不足でうまくいかないため質問させていただきました。 また、シートBのC1とD1の計算式というのは、 シートBのA1とB1に数値を代入した際に、A列B列の2行目以下に 関数で数字を引っ張ってきて(総人口や産業別就労人口等)、 それらの数値を使った計算なので、シートAに計算式を入れるというのは少し難しいです。 どうぞよろしくお願いいたします。

  • エクセルで計算結果がおかしい

    エクセル2002で生産管理をやっています。おかしな計算結果が出ます。生産管理データそのままでなく、関係ない部分は省略した構成にして相談します。 1.入力データと計算式 A1:2305.6    A3:SUM(A1:A2) B1: 334.1   B3:SUM(B1:B2) C1: 41.4   C3:SUM(C1:C2) D1:  3.3   D3:SUM(D1:D2) D4:A3+B3+C3+D3=2684.4 D5:D4-A1-B1-C1-D1=0.0 D6:(A3+B3-A1-B1)/D5=-0.7 2.おかしいところ D6は、0÷0=エラー になるはずですが、-0.7になります。    

  • エクセル:セルを参照して計算

    お世話になります。 A列にコード番号が、B列に数値が入っています。 A列のコード番号は順不同で重複もあります。 C列にはコード番号の一覧が入っています。(重複なし) C列と一致するコード番号をA列から探し、対応するB列の合計をD列に表示する。 A列に一致するコード番号がないときは0と表示させる。 この場合、D列にはどのような計算式を入力されておけばよいのでしょうか。 例) A1にA、A2にB、A3にC、A4にA、A5にB、A6にD B1に10、B2に20、B3に30、B4に15、B5に20、B6に50 C1にA、C2にB、C3にC、C4にD、C5にE・・・・ この場合 D1には10+15なので25、D2には20+20なので40、D3には30、D4には50、 D5には0を入力する。 よろしくお願いします。

  • エクセルでのセルの参照

    sheet1にデータが入力されています。 そしてsheet2ではそのsheet1に入っているデータを 抽出するsheetとして使用しています。 そこで、sheet2にある一つのセルに3と入力したら sheet1で使用しているA3、B3、C3、D3・・・ のセルのデータを、 4と入力したら A4、B4、C4、D4・・・ のセルのデータをsheet2のそれぞれのセルに引っぱってこれるように 関数を書きたいと考えています。 INDIRECTが機能的に近いのかなと考え、式を試してみたのですが なかなかうまくいきません。 また、4と入力したときにA5、B5、C5、D5を参照するというように 数値をいじったりできるであればそれも教えていただきたいです。 よろしくお願いいたします。

  • エクセルでの計算式について

    まず、(1)のシートには支店コード・店コード・店名…等の一覧リスト があります。 (2)のシートにおいて、支店毎に表を作成し、B列に店コードを入力する と自動的にC列に店名がD列に実績がというようにしたいのですが、 どのようにすれば宜しいでしょうか。 私の考えだと まず、(2)のシートでA支店コードを入力すると(1)のシートでA支店の範囲を 選択、店コードを入力するとVLOOKUP関数 【VLOOKUP(B8,データ!$D$2:$W$3433,2,1)】で必要項目抽出。 っといった形が出来れば良いのかな…と思いながらわからないのです。 ※同じ店コードがいくつもあるので、先に支店毎に選択しなくてはならず。 (フィルタは使用しません。) 自分で考えた結果はこんな感じでしたが、良い案をご存知の方教えて 頂けないでしょうか。 よろしくお願い致します。

  • エクセル 違うシートに計算式がある場合

    エクセル2000を使っています。 下記の計算をしたいのですが、方法を教えてください。 1.Sheet1 A1とB1に計算したい元の数値が記入されています。 例えば、A1=1 B1=2 2. Sheet2 のA1とB1に数値が入る事としてC1に計算結果が出るものとします。 3. Sheet1のC1にSheet2のC1の内容を表示したい。 4. Sheet1 A2、A3・・・・・、B2、B3・・・・・に入力した後で、C2、C3・・・・・・に Sheet2のC1で計算させた結果を自動的に入力したい。 別の言い方をすれば、Sheet2 のA1・B1が関数の入力するところにあたり Sheet2のC1が関数の出力(というか、計算結果)にあたります。 Sheet1からSheet2を関数のように使いたいのです。 Sheet1 ____ A_____B_______C 1___1_____2______3 2___2_____3______5 3___5_____8______13 4___9_____1______10 5___4_____5______ 9 Sheet2 ____A_____B_____C 1________________ =A1+B1 2_____________________ こんなイメージです。 Sheet2で計算の入力に対応するセルがA1・B1 計算結果が書いてあるのがC1 実際は、大きな表を参照しながら計算するので、色々計算した結果(途中計算は他のセルも使います)がC1に表されます。 以上、よろしくお願いします。

  • EXCELで関数のセル指定を数値に変換

    エクセル2003を利用していて、 A1に 1 B2に =3 C3は空白 D4に =2+5 とそれぞれ入力 =SUM(A1,B2,C3,D4) となっているとき SUM関数のなかみを =SUM(1,3,0,2+5) と置き換える方法はありませんか? (置換する必要のある関数は1シートの中にたくさんあるので1つ1つF9するのは厳しいです) マクロで何とかならないかと考えているのですが、ほかの方法でも構いません。 元データは削除しつつ合計結果の内訳を簡単に見られるようにする必要があるため このような手段を講じようとしています。 宜しくお願いします。

専門家に質問してみよう