- 締切済み
エクセルで特定の行を除いて計算したい
エクセルでA1からA100までを足し算したいのですが、特定の行、たとえば、13と25と43と68の行を 計算しないで合計を出したいのですが、この場合どのような関数式を入れたらよいのでしょうか? よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- tok-okwave
- ベストアンサー率36% (4/11)
A列のセルA1が始点とすると 手順 1. B列に、除外したい行番号のセル、例えば、セル B 5 に「1」を入力、他は空白のままとする 2. C列のセルC1に次の数式を入力 =A1*ISBLANK(B1) 3. 下方へオートフィル 4. セルB1 から 終点のセルまで合計 お試しください。
- tom04
- ベストアンサー率49% (2537/5117)
No.4です! たびたびごめんなさい。 投稿後に気になったのですが・・・ >たとえば、13と25と43と68の行を とあるのは行番号のコトですかね? もしそうであれば、No.4は全くの的外れですので 読み流してください。 何度も失礼しました。m(_ _)m
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! A列には除外したいデータが重複して存在(同値が複数存在)している訳ですよね? 一応そういうコトだとして・・・ (1)簡単な方法 ↓の画像のようにSheet2に除外したデータをA列に表示しておきます。 B2セルに =COUNTIF(Sheet1!A:A,A2) C2セルに =A2*B2 という数式を入れB2・C2を範囲指定 → C2セルのフィルハンドルで下へコピーしておきます。 そして表示したいセルに =SUM(A1:A100)-SUM(Sheet2!C:C) とします。 (2)VBAの一例です。 ※ この場合もSheet2のA列に除外したいデータを入力しておきます。 (B・C列は不要です) Sheet1のA1からデータがありB2セルに除外したデータの合計を表示するとします。 画面左下のSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i As Long Dim vl As Variant Dim ws As Worksheet Set ws = Worksheets("Sheet2") For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row If WorksheetFunction.CountIf(ws.Columns(1), Cells(i, 1)) = 0 Then vl = vl + Cells(i, 1) End If Next i Cells(1, 2) = vl '←B1セルに表示するようにしています。 End Sub 'この行まで 参考になりますかね?m(_ _)m
=SUM(A1:A100,-A13,-A25,-A43,-A68)
- keithin
- ベストアンサー率66% (5278/7941)
勿論一番簡単なのは =SUM(A1:A12,A14:A24,A26:A42,…) あるいは =SUM(A1:A100)-SUM(A13,A25,A43,…) のようにしてしまう方法です。 他にも幾つかの方法が考えられますが,どの方法が合理的かは,除外したい13などの行のセルに「具体的に何が記入(または計算?)されているか」によって変わります。 たとえば除外したいA13やA25のセルをSUBTOTAL関数で計算しておいて,総計もまた =SUBTOTAL(9,A1:A100) と計算することができるかもしれません。 またA13やA25セルを「文字列」にしておいて(生データを記入しているならセルを文字列の書式にしておいて,数式を記入しているなら数式の計算結果を文字列にしておいて) =SUM(A1:A100) としてしまうような手が使える場合もあるかもしれません。 実際の表の姿によっては,もっとシンプルにSUMIFで計算できるかもしれません。 たとえば集計したい数字がB1からB100まであり,除外したいB13やB25の行のA13やA25には「小計」と記入してあるとすれば =SUMIF(A1:A100,"<>小計",B1:B100) などのように。具体的なデータの中身によって,工夫代は沢山あります。
- kokorone
- ベストアンサー率38% (417/1093)
まずは、無条件で、足しておいて、後から、いらない行のデータを引けばOKだけど、これじゃダメ?