• 締切済み

Excel 複数の条件ごとに合計したい

度々失礼します。 難しくてどうしてもできません。 ↓やりたい事は4つあります↓      A    B    C  1    4121   5   105% 2    8502   23   98% 3    7005   3   200% 4    3425   11 80% 5    8536   28 150% 6    7765   30 112% 7    4663   2 88% 8    3987   19 79% ※A列の数字は必ず4桁 ※C列は%で表示されている その1 A列の4桁の数字の千の位(一番左の数字)をキーにしてB列の数字を引き抜いたものを合計して出したい。 【例】A列の数字の頭が「4」のB列の数字を足したい。 この場合、A1(4121)とA7(4663)が「4」始まりなので、その右側B列のB1とB7を足した数を関数で出したい。 その2 その1の応用で 【例】A列の数字の頭が「4」のものと「7」もののB列の数字を足したい。 この場合「4」始まりはA1(4121)とA7(4663)、「7」始まりはA3(7005)とA6(7765)なので、合計がB1+B7+B3+B6となるように関数で出したい。 その3 その1の応用で A列の4桁の数字の千の位(一番左の数字)をキーにしてC列の数字を引き抜いたものを平均して出したい。 【例】A列の数字の頭が「4」のもののB列の数字の平均を%で出したい。 この場合、A1(4121)とA7(4663)が「4」始まりなので、 C列のC1とC7の平均の数字を出したい(%で) その4 その2とその3の応用で A列の数字の頭が「4」のものと「7」もののB列の数字を平均した数字を%で出したい。 この場合「4」始まりはA1(4121)とA7(4663)、「7」始まりはA3(7005)とA6(7765)なので、C1・C7・C3・C6の平均の数字を出したい(%で) 何回か段階を踏んで・・・ではなく、このような式を入れれば一気にに答えが反映される関数式が可能であれば教えてください。 何卒よろしくお願いします!

みんなの回答

回答No.4

データ形式がおかしかったりするのかもしれません。また配列数式は確定時は必ず Shift+Ctrl+Enter でないといけません。一度確定後に編集する場合もです。 それと、一度大きなサイズの現データではなく、小さなサイズのサンプルデータで試されてはどうでしょうか?

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

既に答えは出ていますが 2条件付きの加算ですから、SUMPRODUCT関数または配列数式を思い出します。(条件付きの加算の定石) 2007ならSUMIFS関数。 SUMPRODUCT関数では 例データ A列  B列   C列 5411 2 100 4713 1 100 5714 2 80 1234 3 70 4832 4 200 3453 2 130 7345 1 110 7100 3 90 7378 1 80 4211 1 120 4千台は =SUMPRODUCT((LEFT(A1:A10)="4")*B1:B10) 結果 6 4千台+7千台は =SUMPRODUCT(((LEFT(A1:A10)="4")+(LEFT(A1:A10)="7"))*(B1:B10)) 真中辺りに+が有るのはOR条件であるから。4千「または」7千台のものを足す。 結果 11 ーーーー 平均はサンプル数が毎度変わらないのかどうかで、出来る出来ないになると思うが、同じなら字面の数字の平均でよいのかな。 =SUMPRODUCT((LEFT(A1:A10)="4")*(C1:C10))/SUMPRODUCT((LEFT(A1:A10)="4")*1) 配列数式ではAVERAGE関数で出来るだろう。 =AVERAGE(IF(LEFT(A1:A10)="4",C1:C10,"")) と入れて、SHIFT+CTRL+ENTER。 結果 140 4+7の例は略。

17504113
質問者

補足

返信ありがとうございます。 というわけで最初に回答いただいた方達同様やってみたのですが、エラーが出てしまいます。 原因もわかりません(涙)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.2

1) =SUMPRODUCT((LEFT(A1:A8)="4")*B1:B8) 2) =SUMPRODUCT((--LEFT(A1:A8)={4,7})*B1:B8) 3) ★率の平均はこの説明・データだけでは計算不能ではないかと思います

17504113
質問者

補足

(1)、(2)やってみたのですが、できませんでした(;_;) 私の説明が全部悪かったと思うのですが「♯VALUE!」と出てします!

回答No.1

配列数式を使えば解決できると思います。 その1は、 =SUM(IF((A1:A8>=4000)*(A1:A8<5000),B1:B8)) という式で、確定時に Ctrl + Shift + Enter です。 その2も条件が増えているだけですから、条件部を増やすだけです。 =SUM(IF((A1:A8>=4000)*(A1:A8<5000)+(A1:A8>=7000)*(A1:A8<8000),B1:B7)) その3・その4は、SUMがAVERAGEになるだけですね。 どういう理屈かは「配列数式」を調べてみてください。

17504113
質問者

補足

返信ありがとうございます。 いただいた式を参考にさせていただき、自分でやってみたところ・・・「♯VALUE!」と表示されてしまいました。 実際に私が組んでみた式↓(Ctrl+Shift+Enter後) {SUM(IF((B6:B1177>=4000)*(B6:B1177<5000),AO6:AO1177)} ・B6:B1177にキーとなる4桁の数字が入っています。 ・AO6:AO1177に合計したい数字が入っています。 何がだめなのかわかりません・・・(ToT)

関連するQ&A

  • 《エクセル2000》複数条件の合計(文字数字混在)

    こんにちは。 A・B列に1~3までの数字・C列に任意の数字が入っています。 A列及びB列に1が入っている行のみ、Cの数字を合計したいです。 仮に1~100行にデータがある場合、関数の式は =SUMPRODUCT((A1:A100=1)*(B1:B100=1)*(C1:C100)) …になると思うのですが、A1~C100のセルの中に、ランダムで全角文字が入っているせいか、計算結果が#VALUE!になってしまいます。 ISNUMBERを使えばいいのかとも思いますが、イマイチぴんときません… 詰めの甘い私に、どうかご教授をお願いします。

  • エクセルで2つの条件に合うセルの合計

    エクセルで2つの条件に合うセルの合計 こんにちは。 例えば、以下のようにシート上にあるとします。 1 上 100 2 上 200 1 下 150 2 下 500 1 下 30 A列は1か2の数字 B列は上か下の文字 C列は数字 このシートでA列が1でかつ、B列が下の場合のC列を合計したいのですが、SUMIF関数でできるのでしょうか?他の関数でもかまいません。自分で関数を作るのはなしでお願いします。 (動作が重くなるので) ちなみに、上記の場合は、3行目と5行目が該当しますので、150+30=180となります。 -- エクセル2003

  • エクセルで合計を求めるために

    エクセルで合計の数値を求めたいです 状況としては A列に数字が入力されています B列に入力があったものだけの合計をC1に表示させたいです 例としては A列 B列 100  1 150 200 250  山   この場合の合計をC1に100+250=350 B列の入力内容は状況によって変わります 現在はC1=IF(A1="","",B1)という関数を別の箇所に作って、それの合計を出させていますが、出来れば別の箇所に計算式を作らずにすむ方法を教えてください。お願いします

  • Excel で 複数条件の合計を出したい。。。

    どなたかご存知の方がいたら教えてください!!!(汗) 下記のようなデータがあります。 列は時系列でデータがどんどん増えていきます。 例)A列=1月  1行目=Xの時系列データ   B列=2月  2行目=Yの時系列データ   C列=3月  3行目=Xの時系列データ    ・      4行目=Zの時系列データ    ・   A列のXのデータの合計をしたい場合は、SUMIF関数を 使えばよいと思うのですが・・・ あるセルに○月と入力するとそのセルの日付を参照して、 その月のX条件だけを満たす合計を出す場合にはどのような関数を使えばよいのでしょうか? もしくは、どのように関数を組合せばよいのでしょうか? なかなかうまく説明できなかったのですが、 よろしくお願いします!!!

  • エクセルの関数でセルの合計を求めたい(条件付) 

    関数で   A B C  1 ○ 1 2 × × 3 ○ 3 4 × × 5 × × 6 ○ 2    ※ ×は空白です。 A行がが○だった時、B列の数字と一つ下の○の行のB列の数字の合計をC行に求めたいと思っています。 例えばC1には4、C3には5と言った感じです。 IF関数をネストしようと思ったのですが、×が10個以上続く場合がありネストできませんでした。 お知恵を拝借させてください。 よろしくお願いします。 関数では難しい場合はVBAでも結構です。

  • エクセル 複数条件

    教えてください!!    A列  B列  C列 1  済   B   100   2       A   200 3       B   100  4  済    A   200 5       C   100 A列が空白で、B列に「A」と「B」が入力されている、C列の合計を求める関数がわかりません。 B列にAとBが入力されているC列の合計は「=SUMIF(A1:A5,"A",C1:C5)+SUMIF(A1:A5,"B",C1:C5)] で求めることができました。この条件に「A列が空白(未入力)」の場合という条件を加えたいのです。 関数覚えたてなので解りやすく教えていただければありがたいです。 よろしくお願いします。

  • EXCELで複数条件に当てはまるものの和を求めたいのですが

    下記のように、A列が同じ場合かつ、B列の「1番目の文字」が同一の場合、C列の数字を足す、という事をやりたいのですが、 どういった関数を組み合わせればよいのか、また、どういったマクロを組めばよいのか、分からなかったので、質問させて頂きます。 例えば「あ」の場合、3行ある中の2行が「A」で始まっているので、足して「5」。 「H」で始まるものは1行だけなので、そのまま「2」。 「え」の場合は、5行ある中の3行が「A」で始まっているので、足して「8」。 2行が「H」で始まっているので、足して「11」。 という回答を出せるようにしたいのです。 A列の種類が100以上あったりしても問題ないやり方はありますでしょか? A列   B列  C列 あ  ABCDEFG  1 あ  ABCDOPQ  4 あ  HIJKLMN  2 い  HIJKLMN  1 い  HIJKRST  1 う  ABCDEFG  5 え  ABCDEFG  3 え  ABCDEFG  4 え  ABCDOPQ  1 え  HIJKLMN  6 え  HIJKRST  5 A列が同じかつ、B列の頭文字が同じなら、Cを足す。 という条件文を書けばよいと思っているのですが、それの書き方が分かりません…。 当方、VBや関数にそれほど強くなく、 皆様のアドバイスを頂ければと思い投稿させて頂きます。

  • エクセルの条件付き合計の出し方

    たとえば下のようにABC列がありB列に数字があるときC3の*にはA1とA2の合計を、C5にはA2とA4の合計を、C6にはA2とA4の合計C9にはA7とA8の合計を出す方法すなわち、Bに数字があるとき、A列の1行上と2行上を合計する式お願いします。     A B C   1 1       2 3       3 7 2 *   4 6 5 9 3 * 6 4 7 * 7 6 8 8 9 5 6 *

  • ある条件のセルの合計を出したい

    IF関数の応用だと思うのですが、次のような時に合計は求められるのでしょうか。 A列の1行目から5行目までに「東京」と「大阪」がランダムに入っている。 B列の1行目から5行目までに数字が入っている。 このとき「東京」のセルのとなりにあるB列の数字を合計したいのですが、 どのようなやり方ができるのかお教えください。お願いします。

  • EXCEL  3桁の数字を組と番号に分ける方法

    EXCELです。 よろしくお願いします。 101~145、201~245、301~345、401~445 がB列には入っています。 たとえば325という三桁の番号のうち 3はクラス(組)を表しています。 25は出席番号を表しています。 B列は101~445の数字が入っています。 例325で考えると c列には百の位の3だけが入るように D列には十の位と一の位の25がはいるようにするためには どのようにしたらよいでしょうか。 関数で、できますか。 教えてください。 よろしくお願いします。

専門家に質問してみよう