• ベストアンサー

エクセルで値をクリア後に次の行から計算

マクロを使わずに図のような計算式が作れないでしょうか。 IF関数やサブトータル関数など色々しましたが行き詰まってます。 列に「G]の文字が入力されれば(列は別にかえても可)それまでの合計がクリアされ その下の行の数値から又計算して合計欄に値が表示されるという 計算表を作りたいのです。 あまり関数は得意でないのでよろしくおねがいします。

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

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

たとえばA列のどこかにGが一つも無かったり1つとか沢山とか「手打ち込みで★」記入してあって B列の具体的にはB3以下のセルに合計したい(したくない)数字が並んでいるとして B2に =SUM(IF(COUNTIF($A:$A,"G"),INDEX(B:B,MATCH("H",$A:$A,1)+1),B3):B9999) 右にコピー。 ★: 「手で打ち込んで記入してる」とは、数式とかで計算して出してるんじゃなく手でGと打ち込んでるという文字通りの意味です それからA列にはG以外何も記入しません。 #実は実は…とダラダラ引っ張られる典型的なご相談の予感がします。まだ何か後出しがあるようなら、一回ご相談は解決で閉じて改めて「今度こそホントはこうでした」と詳しく正しい情報を添えてご質問を投稿し直してください。

toritori--61
質問者

お礼

二度にわたりのご回答ありがとうございました。 前回のお礼の記入後、何とか工夫してできるようになりました。 本当にありがとうございましたm(_ _)m こちらの質問の書き方も悪かったようでご迷惑をおかけしましたことをお詫びいたします。 こういう質問って引っ張る方が多いんですね(笑) 昨日中に解決しないといけない問題でしたので、この質問はこれで閉じさせていただきます。 心より感謝申し上げます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

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

たとえばA列のどこかにGが記入してあって B列の具体的にはB3以下のセルに合計したい(したくない)数字が並んでいるとして B2に =IF(COUNTIF($A:$A,"G"),SUM(INDEX(B:B,MATCH("G",$A:$A,0)+1):B9999),"") とかで。

toritori--61
質問者

お礼

早速の回答をありがとうございます。 随分、わたしの思う表に近づきました。 ただ、列に「G」の文字が入力されるまでの合計が表示されないので、 その計算をするのはどうしたものなのでしょうか(-_-;) そして列に「G」が入力されるのは一度とは限らないので 入力されるたびにそれまでの合計数がクリアされて また新たにその下の行からの集計をする、という計算式にしたいのです。 関数だけじゃ限界あるのでしょうか。よろしければまたお力をお貸し下さい。 勉強不足で申し訳ないです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル 行の200~ をクリアにしたい

    Win8のエクセル2013を使っています。 A列をリンク貼り付けしたら、データがかなり重くなってしまったので、数値の入っていない「行200~最後まで」を数字や値をクリアにしたいのですが、行をドラッグしながら一番下まで持っていくのは、とても時間がかかります。 何か一発で「行200~」をクリアにする方法はないでしょうか? 詳しい方いらっしゃいましたら、教えて下さい。 よろしくお願い足します。

  • 計算式で出た値の合計額を計算する 他

    振り込み額が3万円以上ならいくら、未満ならいくら、と 銀行振込の手数料を計算するために =IF(K74>=30000,"315",IF(K74>=10000,"105","0")) =IF(K79>=30000,"630",IF(K79>=1,"420","0")) M列にこんな関数を入れました。(行5から209まで。K列が振込額です) これら、手数料を合計しようと オートザム(=SUM(M5:M209))を使ったら、値がまったく出ず0になってしまいます。 どうすれば合計額を出せるのでしょうか。 そもそも、Kに数値が入っていない状態で(数式は入っていますが) 3万以上のときに表示される条件になっている数値が出てきてしまっています。式がおかしいのでしょうか。 ちなみに、上記K列には =IF(J5-N5>=100000,"",IF(J5-N5=0,"",J5-N5)) という関数を入れて10万以上と0なら表示しない、10万未満なら表示というようにしているのですが、(J列が買掛金、N列が相殺額です) こちらが影響しているのでしょうか? 助けてください。宜しくお願いいたします。

  • Excel フィルタした値をセルに表示する関数

    図のような表をつくり、表にはテーブル書式を設定しています。 B列で社名でフィルターをかけると、C列、D列の数値の集計は、SUBTOTAL関数(109)で行っており、フィルターをかけた最終行にその集計数値が表示されます(下部画像のようになる)。 ついでに、B列の最終行に、フィルターをかけた値(ここでは文字列の"あいう会社")を表示させたいのですが、どの関数を使えばよいのかわかりません。 フィルターに使った文字列を抽出する関数、 あるいはフィルタした値は常にB列の上から2行目にくるので、 これを参照してB列の最終行のセルに表示させる方法 はあるでしょうか?

  • エクセルで常に一番下の行に値を入れる・・・

    エクセルで作成した表の中に、別表からの項目や数値を関数で反映させていくような場合の質問です。 場合によって表中の行数が変わってくる場合に、常に最後の行に決まった値を反映させるには、 どうしたらいいでしょうか(使える関数はあるでしょうか) 例) 売上表作成時、A列に品物を入力していき、品物が何個あっても(A列が何行になっても) 最後の行に『消費税』の項目を自動的に出したい場合 説明がわかりにくいかもしれませんが、よろしくお願いします。

  • EXCELVBAで最終行が決まらない表の計算

    VBAなども書き始めたの最近なので、説明がつたないかもしれませんがよろしくお願いします。 EXCELの下記のような表があります。 それぞれのセットに対して、個数・のし代・売上を、各月ごとに出す表になっています。 計算としては、B1に書き込まれる仕入れ値の値を、それぞれのセットの個数に掛け、 その値と、のし代を加えたものが売上となって計算されて表示されるようにし、 最終行の合計にはそれぞれのセットの売上の合計値が表示されます。 例えば、お皿セットの4月は150x5+200の答えの950がC5のセルに入ります。 このようにして、各セットの各月の売上が個数、もしくはのし代の欄に値があれば計算し、 合計の欄に答えが入るようにしたいのです。 セットの数は決まっていないため最終行は変動し、個数、もしくはのし代の値が入っているのであれば、 求められるようにしたいのです。 ただし、1年ごとなので、N列までになります。 A        B       C      D      E       ・・・ N 1 仕入れ値  150 2                 4月     5月     6月     ・・・3月 3 お皿セット  個数      5      10     10 4         のし代    200     400    200 5         売上 6 箸セット   個数       3      5      6 7         のし代    100            300 8         売上 9 茶碗セット  個数      2              3 10        のし代    100     100     100 11         売上    ・       ・       ・         ・      ・     ・    ・       ・       ・         ・      ・     ・    ・       ・       ・         ・      ・     ・  合計 関数などを使って、別シートに一旦答えを出して・・・と行っていたのですが、 表の中に計算式があると、入力した値を消した時に式が消えてしまうので Do ~Loopなどを使用することを考えました。 しかし、簡単な空白や最終行が決まったものしか書いたことが無く、 今回のような空白の行が点在し(個数無しでのし代あり、個数ありでのし代なしなど)途中にもあり、 2つおきに計算値が入るため途方にくれてしまいました。 1度で求められなくても良いので、マクロで作成できないものでしょうか。

  • Excel計算式 条件によって計算範囲を変えたい

      A     B    C     D    E     F    G    H   ・・・  1 日    月    火    水    木    金    土    日   ・・・ 2 100              500         200         100  ・・・ 3 2000  5000   6000  7000   4000  3000   5000  3000 ・・・ 4 上記の表において、4行目に下記の計算をしたいです。 どのような計算式を組めば可能でしょうか? ・1行目が”日”または”月”→(3行目の数値)-(4列前までの2行目の合計) 例)H4=3000-(500+200+100)=2200 ・1行目が”日””月”以外→(3行目の数値)-(3列前までの2行目の合計) 例)G4=5000-(500+200)=4300 OR、IFなど組み合わせてみましたがうまくいきません。 回答よろしくお願いいたします。

  • 一番近い左側のセルの数値で計算する関数

    なんて質問していいのか、いい言葉がわかりませんが・・・  日付  1  2  3  4  5  合計  ああ  20       10     30  いい 430       ●     一行目に「日付」、二行目に「ああ」、三行目に「いい」があるとして、「前日のいい」と「本日のああ」の合計を「本日のいい」の数値になるように計算したいのです。 ただし、「ああ」に毎日数値が存在するわけではありません。そして、「いい」も「ああ」に数値がない日は空白です。上の表で、黒丸の部分を出す関数とかありますか? そしてこの表は一か月分有り(日付)、ときどき「ああ」に数値がありそのつど「いい」に合計を出さなくてはなりません。本来ならすぐ左側の「いい」の数値と「本日のああ」の数値を足せばいいのですが、空白列があり、空白の頻度も決まっていませんのでやっかいです。マクロとかはわかりませんので、関数があれば教えて下さい。

  • エクセルマクロで計算すると遅い

    エクセル2013です。 表に対して、いろいろな処理を行い 要求された結果になるようにマクロを作成し完成しました。 思ったように動作するのですが処理時間が長すぎます。 自分で調べて、以下の部分が処理を遅くしている原因とわかりました。 ただの計算ですが、シート内に計算式や関数は残したくなくて このようにしましたが、別の方法が浮かびません。 どのような方法が有りますでしょうか? よろしくお願いします。 表は600行、50列。 17列目から49列目までの10行目から595行目までにデータがあります。 50列目は合計値用の空欄です。8行目は項目欄です。 インプットボックスは18~48までしか入力できないようにしてあります。 17列目からインプットボックスで入力した列までの合計値を インプットボックスで指定した列のひとつ前の列に1行づつ処理して転記。 17列目からインプットボックスで指定した列の1列前までまとめて列削除 その後17列目から削除され残った最終列の1列前までの合計値を最終列に転記で 1行づつ処理です。 最終列 = Cells(8, Columns.Count).End(xlToLeft).Column '8行目の最終列を取得 最終行 = Cells(Rows.Count, 1).End(xlUp).Row 'A列の最終行を取得 遅延合計欄列 = 選択列 - 1 'INPUT-BOXで選択した列の1列前の列番号を格納。この列に合計値を転記する為 遅延合計末列 = 選択列 - 2 'INPUT-BOXで選択した列の2列前を格納。ここまでの列を削除する為 Cells(8, 遅延合計欄列).Value = "遅延" 'INPUT-BOXで選択した列の1列前の列の8行目を「遅延」と転記しこの列に合計を転記する Cells(8, 遅延合計欄列).Font.Color = -16776961 Cells(8, 遅延合計欄列).Font.Size = 15 Range(Cells(10, 遅延合計欄列), Cells(最終行, 遅延合計欄列)).Interior.Color = 65535 For 計算行 = 10 To 最終行 '10行目から最終行まで繰り返す '17列目からINPUT-BOXで選択した列の1列前の列までの合計値を1列前の列に転記する。10行目から最終行まで Cells(計算行, 遅延合計欄列).Value = WorksheetFunction.Sum(Range(Cells(計算行, 17), Cells(計算行, 遅延合計欄列))) Next 計算行 Range(Columns(17), Columns(遅延合計末列)).Delete '17列目からINPUT-BOXで選択した列の2列前までを列削除 最終列2 = Cells(8, Columns.Count).End(xlToLeft).Column '8行目の最終列を取得 最終行2 = Cells(Rows.Count, 1).End(xlUp).Row 'A列の最終行を取得 For 合計行 = 10 To 最終行2 '10行目から最終行まで繰り返す '17列目から最終列の1列前までの合計数数を最終列に転記 Cells(合計行, 最終列2).Value = WorksheetFunction.Sum(Range(Cells(合計行, 17), Cells(合計行, 最終列2 - 1))) Next 合計行

  • エクセルで2行毎の数値を合計したい

    表の中の2行毎の数値を関数で合計するやり方が分からない 例   A B C D 1  2 あ 1 3   2 4 い 5 5   3 6 う 2 7   4 上段計 7←これを関数で計算したい 下段計 9←これを関数で計算したい     

  • C# dataGridViewの値だけクリア

    DataSorceにDataTableを指定したdataGridViewの行や列を消さずに表の中身の値だけクリアするにはどうしたらいいのでしょう。 DataTable.Clear()メソッドを使用したら列ヘッダーは残ったのですが、全ての行が行ヘッダーごと消えてしまいました。

専門家に質問してみよう