• 締切済み

Excelでマクロを使わず、その月の累計を数字を入力するだけで集計するには

Excel2003です。 Y4のセルに以下の数式が入力されています。 =SUM(A4,C4,E4,G4,I4,K4,M4,O4,Q4,S4,U4,W4) これは4月~3月までの累計になります。 上記の数式を、4月なら=SUM(A4)に 5月なら=SUM(A4,C4)に現在は手で数式を直しています。 これを例えばY3のセルに5月と入れたら、A4+C4の数式にするには どうすればいいのでしょうか? IF関数でも無理そうです。 いい案がありましたら、教えてください。 よろしくお願いします。

noname#128382
noname#128382

みんなの回答

回答No.7

#6です。おまけ =IF(Y3="","",SUM(CHOOSE(COLUMN(A4:INDEX(4:4,Y3-3+(Y3<=3)*12)), A4,C4,E4,G4,I4,K4,M4,O4,Q4,S4,U4,W4))) [Ctrl]+[Shft] +[Enter] で確定、配列数式です({}で囲まれる)

回答No.6

>パーフェクトです。 >バッチリできました。 1,2,3月に困りませんか? Y3セルが1~12までの数値だとして =IF(Y3="","", SUMPRODUCT((MOD(COLUMN(A4:INDEX(4:4,Y3*2-7+(Y3<=3)*24)),2)=1) *A4:INDEX(4:4,Y3*2-7+(Y3<=3)*24))

回答No.5

配列数式を使えば出来るかと。 行として1行に1~12の数字が入っていて 4行に値が入っていると想定してください。 Y3には数字のみ(5月までを集計したければ「5」)を入力。 で、結果を出したいセルに以下の配列関数を書いてください。 {=SUM(IF(A1:W1<=Y3,A4:W4,0))} ◆書き方 セルに=SUM(IF(A1:W1<=Y3,A4:W4,0))をコピペ Ctrl+Shift+Enter

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

Y3セルへの入力は5と入力して、セルの表示形式のユーザー定義で0月として5月と表示させるようにしてください。 Y4セルには次の式を入力し、Ctrl+Shift+Enterで確定します。 =SUM(IF(MOD(COLUMN(A4:INDIRECT(ADDRESS(4,(Y3-4)*2+1))),2)=1,A4:INDIRECT(ADDRESS(4,(Y3-4)*2+1)),0))

noname#128382
質問者

お礼

回答ありがとうございました。 パーフェクトです。 バッチリできました。

  • A88No8
  • ベストアンサー率52% (834/1602)
回答No.3

こんにちは >=SUM(A4,C4,E4,G4,I4,K4,M4,O4,Q4,S4,U4,W4)  一つおきに並んでいますが、飛ばされたセルに値が入りますか? 値が入らない空欄なら、=SUM(A4:W4)で済みます。 >上記の数式を、4月なら=SUM(A4)に >5月なら=SUM(A4,C4)に現在は手で数式を直しています。 >これを例えばY3のセルに5月と入れたら、A4+C4の数式にするにはどうすればいいのでしょうか?  質問者さんは、累積を出したそうなんですが..表の作り方が集計しやすいかが問題で..  例えば、A列に累積用の数式( =SUM($A5:A5) )を入れて、他の月のセルはA列の数式の入ったセルをコピーするだけでよいですよ。 =SUM($A5:A5) =SUM($A5:C5) ← $ の付加されたセルアドレスだけ、変わらない =SUM($A5:E5) ← $ の付加されたセルアドレスだけ、変わらない =SUM($A5:G5) ← $ の付加されたセルアドレスだけ、変わらない =SUM($A5:I5) ← $ の付加されたセルアドレスだけ、変わらない : 以下同じ  外していたらごめんなさい。

noname#128382
質問者

お礼

回答ありがとうございます。 前年度との比較数値ですので、間には前年度の数値が入ります。 関数の組み合わせや配列数式等でも無理でしょうか?

noname#123709
noname#123709
回答No.2

度々です。 同一シートの使用していない場所に一覧表を作成すればよいのでは? W列まで利用しているのであればそれより右側とか。

noname#128382
質問者

お礼

再度の回答ありがとうございます。 失礼しました。 別シートでなくても、他の場所を参照すればするほど、ミスは増える可能性があるので、それはなるべく避けたいと思います。 また、自分が知らない方法があるなら、そっちを知りたいのです。 以前、配列数式というものをこちらで教えていただいたことがあるのですが、そういったもので可能かどうか知りたいのです。

noname#123709
noname#123709
回答No.1

4月 =SUM(A4) 5月 =SUM(A4,C4) ・ ・ ・ と別の場所に一覧表を作成してVLOOKUP関数で任意の場所に 答えを表示するのではダメですか?

noname#128382
質問者

お礼

回答ありがとうございます。 その方法も考えたのですが、できれば別のシートやファイルを使わない方法があったらと思い質問しました。 いい方法があれば、よろしくお願いします。

関連するQ&A

  • エクセルでの累計計算

     高校の教員ですが、週案(週の時間割に授業内容を書いた物)とクラス毎の週時数と累計の表をエクセルで作りました。各週案の終わりに週時数と累計の表を付けてsum関数で計算したところ、2週目までの累計計算はできました。  ところが、3週目にsumでやると、累計の欄に1月4日と出てきてしまうのですが、sum関数ではいけないのでしょうか。教えていただけますか。

  • Excelでの累計

    C列に、=SUM($B$1:B1) の式です。(下へ続く) 上記の式で、A列は上から下へ日付が続きます。 毎日の累計を出すのですが、入力する数字が無い時は、その日は、 c列に累計を表示したくない場合は、どのようなIF関数になるのでしょうか? また、一年分、日付のみ最初に作成すると、一年先まで、入力終了時点での累計が表示されてしまいます。 このような場合、例えば、数日後まで、入力を終えて、その数日後は、c列は、表示しないIF関数はあるのでしょうか? ご存知の方、よろしくお願いします。

  • エクセルで累計を求める

    例えば、A3~A10の数値の累計をB3~B10に出力する場合に一々個別のセルの入力しなくてもすむやり方ってありませんか? 仮にB5の累計を出す場合、「=SUM(A3:A5)」でできますが、これだとセル1つ1つに入力しないといけないので、かなり手間がかかります。。。一度にしようと思ってもセルの範囲がずれてくるので、無理みたいなのです。。。 ……質問文がわかりにくいと思っています。ご指摘があれば、補足説明いたしますので、よろしくお願いします!!!

  • エクセルでの累計計算

    はじめまして、皆様教えてください。 経理部に配属になり、まずは資料作成から携わっています。 毎月の業績報告資料をまとめることになりました。そこで質問です。「科目」を縦に「年月」を横に、4月(A1)~3月(L1)までに記入されている予算の資料があります。 報告シートはそこから、例えば5月の場合は、当月の予算は「=B1」で、累計の予算は「=A1+B1」といった具合で引っ張ってきています。 ただ、この報告フォームは科目によって複数個所に同様のリンクを貼っていることもあり、月が変わった際に更新(B1→C1)を忘れをしてしまうこともままあります。 何とか一度に対象セルの数値を更新することはできないでしょうか?? 例えば、表とは別枠で5月(5でもよいです)と入力したら、予算を引っ張る各セルに当月分は5月の数値を、累計分は4月+5月の数値を引っ張るような関数はないでしょうか。IF関数を使ってみたのですが、7ヶ月目以降を入力すると「数式エラー」とでてしまい失敗してしまいます。 皆様、お力を貸してください。

  • 【Excel VBA】データを集計する数式を入力するマクロ

    Excel2003を使用しています。   A列   B列   C列   D列   E列   F列 1      9/1                    20000 2      9/2              1000 3      9/10              5000 : : 10           9月計        ※1    ※2    11 12 13     10/1                   10000 14     10/10             2000 15     10/14                   4000 : : 20           10月計       ※3    ※4 上記のデータでいうと、 ※1(E10セル) =SUM(E1:E9) ※2(F10セル) =SUM(F1:F9) ※3(E20セル) =SUM(E13:E19) ※4(F20セル) =SUM(F13:F19) という内容の数式を入力するマクロを作成したく、数式を入力したいセルをアクティブにして、ボタン等に登録したマクロを実行すると数式が入力されるようにしたいと考えていますが、その際、集計範囲の最下行は、アクティブセルの1行上までになりますが、最上行をどのようにして取得すればよいかがわかりません。 (実際のデータは、もっと行数も入力されているデータ数も多いです) また、他にもこんな方法があるとか、こうしたほうが簡単とかあれば、教えていただけると勉強にもなりますので助かります。 うまく説明できなくて申し訳ありませんが、よろしくお願いします。

  • Excelで配列数式を入力できない

    WinXP-SP3,Excel2003です。 配列数式は、例えば任意のセルに、 =SUM( IF( A1:A10="○", B1:B10, )) などと入力し、引き続きCtrl+Shift+Enterで確定するそうですが、Ctrl+Shift+Enterを叩いても何の反応もありません。やり方のどこが間違っているのでしょうか。

  • ExcelのSUM関数の集計範囲を可変にしたい

    ExcelのSUM関数の集計範囲を可変にしたい 1.状況、問題点 商品毎の売上、利益を管理するリスト表が あり、その表の行に対する追加、更新処理を VBAマクロで行っています。 使用環境はExcel2010 リスト表は、帳票としての見易さを考慮して、 同じカテゴリに属する複数の行に対して小計行 を設けカテゴリ別の売上、利益を集計しています カテゴリに属する行範囲に対してSUM関数を使っ ているということです (例1)この表にマクロで行を追加させる際、 あるカテゴリの小計欄で参照している集計 範囲の行の途中に行を挿入する場合は、行 を追加してもSUM関数の集計範囲は自動的に 拡大されます。   A  B    C   1 項目   売上    2  田中   100 3 小計   100   4 山田 200 ⇒ 挿入   5  佐藤 300   6  小計   600 式 = SUM(C4:C5) 3行目と4行面の間に行を挿入するとき  SUM関数の集計範囲は自動的に拡大され る  SUM(C2:C4) ⇒ SUM(C2:C5) (例2)挿入する行が集計行の直ぐ上の場合 SUM関数の集計対象範囲がずれてしまう   A   B    C   1 項目  売上   2  田中  100 3 小計  100   4 山田 200   5  佐藤 300 ⇒ 挿入    6  小計 600 ※      ※ 式 SUM(C4:C5) は   自動的にはSUMC(C4:C6)とはならない 2.実現したいこと       小計の直前にに行を挿入した場合も自動的に   集計範囲が変わるようにしたいのです。 実装方法 案1 (1)インストラクタのネタ帳  http://www.relief.jp/itnote/archives/003417.php  に、「表全体の最後の行」※に集計行がある場合として 「合計範囲を自動的に変更する」方法の紹介あり。  この方法はCOUNTA()で入力済みのセルをカウント。   私のケースでは  ・売上、利益などのセルが空白となる場合がある  ・C列は 売上 データを記載する列で   なので半角スペースや全角スペース は入らない  ・#REFやDIV/!0などは入りうる   C4:C5 のセル数は DIV/0!なども含めデータが入っているセル数  +ブランクが入っているセル数 は  COUNTA(C4:C5) + COUNTBlank(C4:C5) なので セル C5  =SUM(C2:INDEX(C4:C5, COUNTA(C4:C5)+COUNTBlank(C4:C5))   とするか?     ※「インストラクタのネタ帳」の方法は、「表全体の行数」を  もとめる場合に最後の行までを指定できて有効ですが、上の  ように小計をもとめる場合は、どうしても小計をもとめる範囲  式に書く必要があり、そこが集計範囲が変わってしまうと役に  立たないです。  代案としては、6行目の小計の行番号から3行目の小計の行番号  を引いて行数を求める方法でしょうか    この方法の場合、小計の式に 6行目行番号-3行目行番号  のように具体的に記述してはNGなので "下"の小計行から"上"  の小計行を引く というような間接的な指定の仕方が必要と  考えています。案1の検討はここまでです。 実装方法 案2  上のように表自体の集計関数を変える以外に、  マクロで対応する方法  行を追加する際に、 a)行の追加がある場合、行の挿入位置が小計   の集計範囲の”途中”なら 何もしない、  b)追加する行が集計行のすぐ上になる場合 つまり変更前の挿入位置+1   が小計行の行番号と等しい時は、追加する行数分   SUM関数の集計範囲を広げる     案1が難しそうなので案2で実装しようと思っています  Q1 案1と案2の検討結果についてお気づきの点があれあば教えて     ください  Q2 可能であれば、案2の実装方法についてヒント程度でもいいので     教えてください  以上

  • エクセルで0を表示させずに(一部)累計を出したい!

    いつもお世話になっています。 ≪シート2≫      ≪シート1≫    A(単月)B(累計)    A(単月)B(累計) 1│1    2        1   1 2│              3│2    2         4│2    4        2   2 5│1    1         このような場合にBのセルに入れる関数は?? =IF(シート11B="",シート21A,シート11B+シート21A) とすると、シート2の2Bが“0”となってしまいます。 ここに0と表示させないような累計の式。。 (0は一部必要な為、全部非表示するわけにはいきません) どうかよろしくお願いします。

  • Excelの関数手入力で()←としたい

    Excel2003で例えば =SUM(A1:A3)と手入力する際 まず=SUM()と括弧閉じもまとめて打ち カーソルキーの←を打ってから 括弧の中のA1:A3と入力し、数式を完成させたいんですが ←を打った時点で、隣セルにでも行こうとしてるのか 「入力した数式は正しくありません。」 と出て、とても煩わしい思いをします… 「変なことせず、とりあえず前から順に打って行け」 と思うかもしれませんが Accessの方では()←の順に打っているのでとても気になります 括弧をまとめて打ってもエラーを出さない方法はないでしょうか?

  • EXCEL  3D集計のシート名を参照したい

    シート名 4月 5月 6月・・・・ 4月 には 4月のみの累計 5月 には 4~5月の累計 6月 には 4~6月の累計 をとる際、串刺し集計をすると出来ます。 シートを増やすたびに式のシート名を変更しなければいけません。 5月のシート  SUM('4月:5月'!A2)  6月のシート  SUM('4月:6月'!A2)  7月のシート  SUM('4月:7月'!A2)  この式のシート名を参照すれば良いと思うのですが・・・ CELL関数でシート名を取得する関数を 上記の式に入れるとエラーになってしまいます。 何か良い方法はありませんか? ご回答お待ちしております。

専門家に質問してみよう