• ベストアンサー

エクセルSUM関数の範囲を任意に変える

セルB1に=SUM(A1:A10)と、とりあえず入力しました この関数の範囲をセルC1の数字で帰れるようにしたいです C1に10と入力すれば=SUM(A1:A10) C1に20と入力すれば=SUM(A1:A20) となるように出来ますか?

  • 48946
  • お礼率54% (480/878)

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

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

=SUM(OFFSET(A1,,,C1))

48946
質問者

お礼

そんな単純な仕方があったんだ…

その他の回答 (4)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 C1に入力される値によってはエラーが表示される場合もありますから、エラーを防ぐためなら以下の様にした方が良いかも知れません。(C1に文字列、1未満の値、0やマイナスの値が入力された場合には、何も表示しない様になっています) =IF(AND(ISNUMBER(C1),C1>0),SUM(OFFSET(A1,,,C1,1)),"") =IF(AND(ISNUMBER(C1),C1>0),SUM(A1:INDEX(A:A,C1)),"") =IF(AND(ISNUMBER(C1),C1>0),SUM(INDIRECT("A1:A"&INT(C1))),"")

48946
質問者

お礼

このさいエラーは無視しましょう 式が長くなっちゃうので 皆さん ありがとう御座いました

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

無理無理工夫して =SUMPRODUCT((A1:A10)*(ROW(A1:A10)<=C1)) 10は適宜増減すること。 近いものが回答に出ているが =IF(C1="","",SUM(INDIRECT("A1:A"&C1))) 両者一致することを確認 ーー C1より小でD1より大の行の合計 =SUMPRODUCT((A1:A10)*(ROW(A1:A10)<=C1)*(ROW(A1:A10)>=D1))

48946
質問者

お礼

かなり難しそうです 関数を何層にもするのはやめときます

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 =IF(ISNUMBER(C1)*(C1>0),SUM(INDIRECT("A1:A"&C1)),"")

48946
質問者

お礼

INDIRECTは使ったことが有りません 一回使ってみます

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

=IF(C1>0,SUM(OFFSET(A1,0,0,C1,1)),"") =IF(C1>0,SUM(A1:INDEX(A:A,C1)),"") =IF(C1>0,SUM(INDIRECT("A1:A"&C1)),"") などで。 それぞれの関数に特徴がありますので,あなたが「ホントにやりたいこと」に応じて,適宜工夫して作成して下さい。 たとえば「ホントは【10個のセル】を計算したい」ならOFFSETが分かりやすいです。 ホントは「10行目までのセル範囲を合計したい」ならINDEXの方法が良いかも知れません。 実は「開始セルも可変にしたかった」ような場合も,INDEXの方法だと応用が利いて便利です。

48946
質問者

お礼

ありがとう御座います offsetも自分なりに使ってみたのですが セルの値が表示されちゃって無理だと思ってました やりようがあるんですね

関連するQ&A

  • Excel2003でif関数を使うとSUM関数で反映されません

    A1セルに金額を入力すると、B1に1と表示させる為に=IF(A1,"1","")といった数式を入れております。 さらにC1にBセルの合計値を表示させる為に=SUM(B1)C2には=SUM(B1:B2)と入力しているのですが、B列のセルにIF関数を使った数字『1』が表示されてもC列セルに反映されないので困っています。 ここで質問ですが、A列セルに金額が入力されるとB列セルに数字『1』が表示され、更にC列セルにB列セルの合計値が表示される様な関数等はありますでしょうか?解り難い説明ですいません。 因みにA、B、C列共に1~31までのセルがあります。

  • エクセルSUM関数の範囲が自動修正されます。。。

    エクセル2002でSUM関数を入力しています。 例えばセルA10に =SUM(A1:A3) という式を入力していて、その後、A1~A5まで数値の入力をすると、A10に入力した関数の範囲が、自動的に =SUM(A1:A5)と修正されてしまいます。 この自動修正を回避する方法はありますか? よろしくお願いします。

  • エクセルのSUM関数で

    A1、B1、C1にそれぞれ数字が入っていて、D1は空欄で、E1にSUM関数で「=SUM(a4:c1)」で答えを出した後、D1に数字を入れると、勝手に計算式が更新されて、D1の数字も計算の答えに加わってしまうのですが、それを解除することはできますか?

  • エクセルのSUM関数

     エクセルのSUM関数で、1,3,2が入力してある3つのセルの数字を合計しようとしたところ、6になるはずが0になってしまいます。 これはどうしてでしょうか。

  • エクセル イレギュラーなSUM関数

    会社で使うエクセル表を作っていますが困っています。 A列B列があり A5にはA1~A4の合計のSUM関数が入っています。 B5にもSUM関数を入れたいのですが B1~B4はイレギュラーな事があった場合のみ数字を入力し B5にはB1~B4に入力された数字の合計と B列に何も入力されていない隣のA列の合計を表示させたいのです。 例えるなら A1~A4に3を入力 A5はSUM関数がはいっているので12が表示されているとして B列はB1~B3は未入力 B4に7が入力された場合 B5にはA1~A3とB4の合計の16が表示されるようにしたいのです。 B4に7を入力したので隣のA4の3は合計しないという事です。 どうぞ宜しくお願い致します。

  • エクセル SUM関数の範囲を変数に

    A1からA20まですべて1が入力されているとします B1に数値が入力されて、その中身は変化します C1に =SUM(A1:A10) と入力されるとC1は、10となります。 ここで、B1の数値が 5の時は C1の内容を =SUM(A1:A5) 12の時は C1の内容を =SUM(A1:A12) としたいのです。 どのようにすればいいのでしょうか?

  • SUM関数を教えてください

    エクセル画面です      A     B     C 1 2    H氏   10 3    A氏   20 4    S氏   30 5    H氏   40 6    Z氏   50 7     S氏を基準としてS氏が(A4)の位置にある場合の合計を出すときの計算式は   =SUM(B2:B3)  となります S氏が(A5)の位置に来た場合   =SUM(B2:B4)  となります S氏のセルの位置が上下に移動するので SUM関数の範囲を自働的に変動させて計算させる方法を 教えてください よろしくお願いいたします。

  • SUM関数を教えてください

    エクセル画面です      A     B     C 1    氏名  点数 2    H氏   10 3    A氏   20 4    S氏   30 5    T氏   40 6    Z氏   50 7    D氏   60 8    合計      S氏を基準としてS氏が(A4)の位置にある場合の合計を出すときの計算式は   B8=SUM(B4:B7)  となります S氏が(A5)の位置に来た場合   B8=SUM(B5:B7)  となります S氏のセルの位置が上下に移動するので SUM関数で範囲を自働的に変動させて計算させる方法を 教えてください よろしくお願いいたします。

  • ExcelでのSUM関数について

    Excel2000を使用しています。 例えば、A1~C1までをSUM関数で計算したいのでE1に =SUM(A1:C1)と入力します。 その後、A1からD1まで数値を入力すると E1に入力した式が=SUM(A1:D1)に変わってしまいます。 D1は計算したくない数値です。 何か設定があるのでしょうか? 教えて下さい。よろしくお願いします。

  • 続 エクセル イレギュラーなSUM関数

    先程こちらでhttp://oshiete1.goo.ne.jp/qa5428194.html イレギュラーなSUM関数を質問しお答えいただきましたが 新たに問題が出ましたのでもう一度質問いたします *さきほどの質問の内容はこちらです* A列B列があり A5にはA1~A4の合計のSUM関数が入っています。 B5にもSUM関数を入れたいのですが B1~B4はイレギュラーな事があった場合のみ数字を入力し B5にはB1~B4に入力された数字の合計と B列に何も入力されていない隣のA列の合計を表示させたいのです。 例えるなら A1~A4に3を入力 A5はSUM関数がはいっているので12が表示されているとして B列はB1~B3は未入力 B4に7が入力された場合 B5にはA1~A3とB4の合計の16が表示されるようにしたいのです。 B4に7を入力したので隣のA4の3は合計しないという事です。 *回答はこちらです* 回答1 配列関数で =SUM(IF(B1:B4="",A1:A4,B1:B4)) と入力して、Ctrl+Shift+Enterで決定したら、式が{}でくくられて配列関数になります。 式の意味は B1~B4が空白の場合は、A1~A4の値を、それ以外はB1~B4の値を出して合計 回答2 =SUMPRODUCT(NOT(B1:B4)*A1:A4+B1:B4) あたりですかね。not関数のかわりにisblank関数の方が判りやすい かもしれないけど。 TRUE/FALSEの論理値は、四則演算にぶち込むと1/0の数値として扱 われます。また、空は四則演算にぶち込むと0の数値として扱われ ます。だから、「B列が空である」がFALSEならA列とのかけ算はゼ ロになりB列の値が加算され、TRUEならA列の値に1をかけて0を足し たことになります。後はそれを1行目から4行目にわたって配列とし て計算して合計してくれるsumproduct関数に放り込むだけ。 問題はこの方法だと B列に何も入力しない場合、A列の合計がB5に出て来てしまいます。 B列に何も入力しない場合、B5にも何も入力しないようにしたいのです。 ちなみに先程は記述しませんでしたが B列には自動で数字に〔〕が付くようにユーザー定義で指示していて B5はB列が未入力で合計が0でも〔0〕と表示されないように ユーザー定義で "〔"#"〕";;;が入っていてます。 やりたい事をまとめると ●B列には自動で数字に〔〕を付ける ●B1~B4に数字が入力された場合はB5に  B1~B4の合計とB列に何も入力されていない隣のA列の合計を表示させたい  がB列が未入力ならB5に何も表示しない ややこしくて申し訳ありません。 そして確認不足で申し訳ありませんでした。 どうぞ宜しくお願い致します。

専門家に質問してみよう