• ベストアンサー

この表の列合計を出すにはどんな式を書けばいい?

(画像はGoogle Docsですが対象はoffice2003です) こんなデータがあり(実際はもっと複雑)、「4/1」かつ「A」の列の合計を出したいのですがどんな関数を組み合わせればいいでしょうか? 画像に入れ忘れましたが値が空のセルもあります。1行目は月ごとにセル結合しているのでsumproductだけではうまく行きませんでした。皆様ならどのような式を書きますか?

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

  • ベストアンサー
  • chie65535
  • ベストアンサー率44% (8571/19474)
回答No.2

単純に4/1のAクラスの合計を取るのではなくて、B11、B12に入れた値に対応した合計を出したい、って事かな? だとすると =SUM(INDIRECT(CHAR((B11=A1)*1+(B11=C1)*3+(B11=E1)*5+(B11=G1)*7+(B12="A")*0+(B12="B")*1+64)&"3:"&CHAR((B11=A1)*1+(B11=C1)*3+(B11=E1)*5+(B11=G1)*7+(B12="A")*0+(B12="B")*1+64)&"8")) って感じの式になります。 B11、B12の値に応じて「A2:A8」とか「B2:B8」とか「C2:C8」とかって文字列を作成し、その文字列をINDIRECT関数で「セル参照」に変換して、そのセル参照をSUM関数で合計しているだけです。 手抜きなので、列名は「A~Z」までしか対応していません。列名が「AA」以降になる場合は、もう一工夫が必要です。

qoozy
質問者

お礼

助かりました、ありがとうございました。皆様のものが参考になったのですが考え方がわかりやすかったのと早かったのでBAはこちらへ。 おかげさまで皆様の意見を合わせてやった結果、自分がわかりやすいものとして下の式ができました。 B13セルへ以下を入力 =sum(offset(indirect(address(3,match(B11,A1:J1,0),1)),0,IF(B12="A",0,1),6,1)) この式にまた評価をいただきたいところですが(^^; 早くに書き込んでいただいたchie65535さん「Indirect+Sum」の考え方が参考になりました。ありがとうございました。 いろいろなアプローチがあってとても勉強になりました。

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

その他の回答 (4)

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

簡単な方法: 今の表のA列に1列空列を挿入して表をB列からスタートしてI列までの配置にしておき C11に日付 C12にAorB があるとすると C13に =SUMPRODUCT((A1:H1+B1:I1=C11)*(B2:I2=C12)*B3:I8) メンドクサイ方法: 今の表の配置のままA列から表を配置 B11に日付 B12にAorB があるとすると B13に =SUMPRODUCT((SUBTOTAL(9,INDIRECT("R1C"&FLOOR(COLUMN(A1:H1)-1,2)+1,FALSE))=B11)*(A2:H2=B12)*A3:H8)

qoozy
質問者

お礼

こういったアプローチもあるんですね、なるほど。あとできちんと解読してみます。ありがとうございました。BAにできずすみません。勉強になります。

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

例えばB13セルには次の式を入力します。 =IF(COUNTIF(1:1,B11)=0,"",IF(B12="A",SUM(INDEX(A:XX,3,MATCH(B11,1:1,0)):INDEX(A:XX,8,MATCH(B11,1:1,0))),IF(B12="B",SUM(INDEX(A:XX,3,MATCH(B11,1:1,0)+1):INDEX(A:XX,8,MATCH(B11,1:1,0)+1)),"")))

qoozy
質問者

お礼

こういったアプローチがあるんですね。あとできちんと解読してみます。ありがとうございました。BAにできずすみません。

全文を見る
すると、全ての回答が全文表示されます。
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

一例です。 月日が結合セルされていては、列が確定できませんので結合を解除します。 結合解除が駄目な場合は読み捨て下さい。 (1)1行目を選択して結合を解除→選択されている状態でCtrl+Gキー押下→セルの選択→    空白を選択→OK→数式バーに=先頭セル(仮に=A1)を入力→Ctrl+Enter (2)B13に=SUM(OFFSET($A$3,,SUMPRODUCT((A1:H1=B11)*(A2:H2=B12)*COLUMN(A1:H1))-1,6))    数式のセル範囲やOFFSET関数の第4引数(行数)はご例示を対象にしていますので    調整して下さい。

qoozy
質問者

お礼

とても参考になる式でした。ありがとうございました。BAにできずすみません。

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

単に合計だけでしたら =SUM(A3:B8,C3:C8,E3:E8,G3:G8) いかがでしょう。

qoozy
質問者

お礼

助かりました、ありがとうございました。

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

関連するQ&A

  • EXCEL 2003で条件に合った合計を求めたい

    ______A ____B____ C_____D 1___111___ 1 ___10___ 60 2___111___ 2 ___10 3___222___ 2 ___10 4___333___ 1 ___10 5___333___ 2 ___10 6___333___ 3 ___10 7___444___ 1 ___10 8___444___ 3 ___10 9___555___ 1 ___10 Excel 2003環境において、上記A1:C9を対象に関数で下記条件を元に数式をD1に入力して値を求めたいです。 条件: A列の同じ値のセルを一つのグループとし、かつその中で、B列で1から始まる連番となっているグループを対象にC列のセルを合計する。 上記のセル範囲で条件に合う行は1,2,4,5,6,9行目で答えは60になります。 SUMPRODUCT関数やIF関数を併用してみましたが、うまく作ることができませんでした。 なんとか作業列やVBAを用いずに一つの数式で済ませたいです。 よろしくお願いします。

  • BD2列の同じ行に値があればD列の数値を合計する

    BD2列に数値が入力されそれぞれの列の同じ行に数値が入力されていればD列セルの数値を合計しD8セルに入力したい(同じ数値でなくてよい)のですがどなたか関数が解るかたよろしくお願いします。Windows10office2013です。

  • Excel 範囲内で条件を満たす異なる列の合計

    範囲内で条件を満たすセルで、異なる列の値を合計したい。 A1からA5に{10,20,30,40,50}という値が B1からB5に{0,1,2,3,4}という値が C1からC5に{5,6,7,8,9}入っている事とします。 A1:A5の範囲で複数の条件をつけます。 B列ではA列のセルの値が15<A<35となる、A2とA3と同じ行であるB2とB3の値 C列ではA列のセルの値が25<A<45となる、A3とA4と同じ行であるC3とC4の値 全部でB2,B3,C3,C4のセルの値を合計を返すセルを作成したい。 この場合目的のセルが返す値は1+2+7+8で18となる。 補助行を作ってでも構いませんので、このような加算が可能とするセルの作り方はないでしょうか。 Excel2000を使用しています。どうかよろしくお願いします。

  • 《エクセル2000》A列・B列の商を合計する関数ってありますか?

    皆様こんにちは。 SUMPRODUCTは2つの列の積を合計しますが、2つの列の商を合計する関数はあるでしょうか。

  • 選択した行の値だけを合計

    選択した行の値だけを、その行のどのセルをダブルクリックしても合計する方法を教えてください。 A列は、ID,B・C列は値があらかじめ入力されています。 D列に、合計を表示させたいです。 関数・VBAでは、一括して合計はでましたが、VBAで必要な行だけの合計の出し方がわかりません。 VBAの勉強のために活かしたいく、よろしくお願いします。

  • Excel 2列に対する検索条件について

    よろしくお願いいたします。 レイアウトとしてB2からG21の範囲で数字または空(何も入っていない)のセルがあります。 今回の計算式をA1に入れたいと思っています。 教えていただきたい計算式は この2行から21行の範囲のC列とE列において両方のセル内容が空だった場合の行番号のG列の値を合計した値をA1に取りだしたいのですができますでしょうか?

  • 《エクセル2000》A列・B列の和を合計する関数ってありますか?

    皆様こんにちは。 SUMPRODUCTは2つの列の積を合計しますが、2つの列の和を合計する関数はあるでしょうか? これがあると今の作業がすごく便利になるんですが…。

  • エクセル 表検索した合計の出し方について

    既出でしたらすいません。 いろいろ検索していみたのですが見つかりませんでしたので、教えて下さい。というかできないのですかね? エクセル2007を使っているのですが、商品、単価、入り値を一覧の表にしてVLOOKUPでその一覧の番号から表検索して別の一覧を作れるようにしました。その新しい表の最後の行に単価と入り値の合計を出したいと思っています。ただ、その最後の行は一定ではなくどこになるかわかりません。(違う場所に合計用のセルを作るのではなくすでに関数がある場所に付け足したいのですが。。。) 以下がそのセルに入っている関数の例です。 =IF(I6="","",ROUNDDOWN(I6*F6+I6*IF(G6<10,G6/10,IF(G6<100,G6/100,G6/1000)),0)) I6にVLOOKUPで検索した単価が入るように関数を入れてあります。 F6、G6は数量を入力するようにしてあります。単価と数量の合計 この関数に付け加えるか、もしくは新しい関数でもいいので 「もし、A6に合計の文字列が入れば、I1~I5(合計の文字列が入る前のセル)までを足す」 というようなことができますでしょうか?

  • EXEL2000 複数条件で集計を求める関数式

    検索範囲のA列における検索条件が[A5001]セルと同じ値、B列が[B5001]セルと同じ値であるもののC列[C1:C5000]の合計は =SUMPRODUCT((A1:A5000=A5001)*(B1:B5000=B5001)*C1:C5001) では、検索範囲A列が検索条件が[A5001]セルと同じ値の文字列を含むもの、B列が[B5001]セルと同じ値であるもののC列[C1:C5000]の合計をする場合に (たとえば、リストの A列データの値は、青森リンゴ、長野リンゴ、和歌山ミカン等、 B列データの値は、大、中、小等、 C列データの値は、その売上高、 検索条件[A5001]セルの値が[リンゴ]、 [検索条件B5001]セルの値が[大]である場合に、 リンゴという文字列が含まれており且つ大であるものの売上合計金額を求める) =SUMPRODUCT((A1:A5000="*"&A5001&"*")*(B1:B5000=B5001)*C1:C5001) を試しましたがだめでした。 これとは別に、 =SUMPRODUCT(COUNTIF(A1:A5000,"*"&A5001&"*")/COUNTIF(A1:A5000,"*"&A5001&"*"))*(B1:B5000=B5001)*C1:C5001) も試しましたがだめでした(数日前にこちらで教えていただきまして、行数が10行程度の仮のリストで試しましたらうまくいきましたが、実際のリスト(5000行以上)では#VALUE!が返ります。リストは「値のみ貼付」で得られたデータのみが入っています) このリストで、5001行以降に検索条件が多数並んでいます。 EXEL2000で可能な関数式を教えて下さい。よろしくお願いします。

  • execlの列の合計(特殊)

    特殊な列の合計を教えてください。   A     1文字 2数字 3文字 4数字 5文字 6数字   ・   ・   ・  合計 Aの列の合計です。 条件は、文字列にある言葉(例えばXYZ)が入っていたらその一つ下のセルの数字を合計に足していきます。 文字は奇数の行、数字は偶数の行は規則的です。 例えばAの1に文字XYZがあればAの2の数字を合計の セルに足し込みます。更にAの5に文字XYZがあれば Aの6の数字を合計のセルに加算していきます。 よろしくお願いいたします。

このQ&Aのポイント
  • プリンターの線を繋いでいないのに、パソコン上ではオンラインになっています。
  • しかし、印刷には反応せず機能しない状態です。
  • なぜプリンターがオンライン状態になっているのか、原因を教えてください。
回答を見る

専門家に質問してみよう