• ベストアンサー

エクセル SUMIFを使って下から合計する

先ほど下記質問をして回答を得ましたが欲がでて追加で行いたい事が出てきましたがいっこうに進みません。 先ほどの質問 ほぼ毎日最終行の所にA列に日付 B/C/D/列に数値を加えているという作業を繰り返しています。従って下の方が最近入力した値になっている状態です。 私がしたいのはこの最近入力した(最終行)行から5行上までの各列の合計や平均値をそれぞれ1番上の方に自動で表示したいのですがいろいろと調べても分かりません。(行を追加するたび範囲を指定し直すというのがつらいです。) ・今回は皆さんの回答の中から=SUM(OFFSET(B2,COUNTA(B2:B65536)-5,0,5,1))とう式を使って下から5行上まで合計しました。 追加質問 F列の数値条件に合致したものだけを同様に下から5行上まで合計したいです。 SUMIFを使って見ましたが実力のなさからうまくいきません。 よろしくお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。#1 のWendy02です。 >B1にいれてみましたが84となり79とはなりませんでした。 B1 に入れることは予想外でしたが、今、こちらでやってみましたが、79 で、84 というか、「5」は足されません。ただ、私の数式のひとつの問題点は、一番、最後の65536行目まで、探しているのですね。だから、ちょっと下のほうも調べてみてください。 それで、調べる方法ですが、 LARGE((INDIRECT("F1:F"&MATCH(10^15,B:B,1))="a")*ROW(INDIRECT("F1:F"&MATCH(10^15,B:B,1))),ROW($1:$5)) 数式の上記の範囲を、マウスでドラッグして取り、F9 を押すと、配列データの中身{数字,数字,・・・} で、出てきます。 それで、順番や、どこで「5」が足されているか出てくるはずです。 なお、[ESC]を押せば解除できます。 なお、2行目からなら、以下のほうが良いかもしれません。別にそのままでもエラーは出ないはずですが。 =SUMPRODUCT(LARGE((INDIRECT("F2:F"&MATCH(10^15,B:B,1))="a")*ROW(INDIRECT("F2:F"&MATCH(10^15,B:B,1))),ROW($1:$5)))

youno321
質問者

お礼

今回回答していただき大変ありがとうございました。おかげさまでかなり満足する事ができました。感謝しています。

その他の回答 (3)

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

 A B C D E F 1  21      条件 2  5       a 3  8 4  6       a  * 5  2       a  * 6  1 7  3       a  * 8  4       a  * 9  5 10  6       a  * B1=SUMPRODUCT((F2:F100="a")*(ROW(B2:B100)>=LARGE((F2:F100="a")*ROW(F2:F100),5)),B2:B100) ★*印が、F列が「a」の下から「5つ」の対象です

youno321
質問者

お礼

回答ありがとうございます。しっかりと計算してくれました。感謝してます。

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

質問の意味が、前回も(したがって今回も)判りにくいのですが、具体例を挙げて説明しては。私流の理解では(極端にそぎ落とすと) A列  B列 氏名 成績 a 11 s 2 d 3 f 43 g 5 h 12 i 18 j 3 k 21 ーー A2:B30までがデータ入力可能性のある範囲としてます。 B列の数に対する条件を10にしてます。 それ以外のセルに =SUMIF(OFFSET(B2,COUNT(B1:B30)-5+1,0,5,1),">10",OFFSET(B2,COUNT(B1:B30)-5+1,0,5,1)) と入れる。 上記例では 51<=21+18+12(B6:B10のうち10以上の数を加えた) 式は、CountでわかるB列数字行の下から5行目 COUNT(B1:B30)-5+1 の範囲を対象に、>10の条件で抜き出し、同じ範囲の数を足している。 OFFSET関数という、範囲を指定できる関数を使っていますが、 たとえ質問の意図を採り間違えていなくても、#1のご回答や私のは 関数上級編で理解も難しいのではないですか(特に#1は)。 どこか

youno321
質問者

お礼

回答ありがとうございます。 また質問の意味が分かりづらくご迷惑をおかけしました。 勉強したいなぁと気持ちが大きくなりましたが正直今は理解難しいです。 しかしここまで来たのでなんとかできるようになればと思っています。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 質問の用件がわかりにくいのですが、こういうことでしょうか?  B列・・F列  11   a  12     13   a   ↓  14   a   ↓  15     16   a   ↓  17   a   ↓  18     19   a   ←最終行 ここまで。 合計は、「79」ということですか? >今回は皆さんの回答の中から ? ご質問者さんは、私の書いた式は何も見ていないような気がしましたが、前回、私が書いたものを応用してみました。数式の得意な人はいっぱいいるでしょうから、間違いましたら、ご容赦のほどを……。 検索値条件: "a" 最終行の数値を取るのは、B列(数値の最終行-文字列の場合は、書き方が少し変わります) COUNTやCOUNTA と違うのは、間が空いていても取れること。 =SUMPRODUCT(LARGE((INDIRECT("F1:F"&MATCH(10^15,B:B,1))="a")*ROW(INDIRECT("F1:F"&MATCH(10^15,B:B,1))),ROW($1:$5)))

youno321
質問者

お礼

こんばんは  1度ならず2度までも分かりづらい質問に回答いただきありがとうございます。 また1度目の失礼申し訳ありません。数日間の悩みに解決が見え気焦っていました。  私の言いたかった質問はWendy02さんの言われる通りのことです。  B列・・F列  11   a  12     13   a    14   a  15     16   a  17   a  18     19   a F列のaを条件として合致する行のB列の数字を下から5行分の合計(今回は79)をB1の位置に表示させたいのです。 但し今は19行ですが毎日追加していくので行の追加にも対応希望です。 回答を頂いてから自分のファイルでうまくいかず、上記例を作ってみて=SUMPRODUCT(LARGE((INDIRECT("F1:F"&MATCH(10^15,B:B,1))="a")*ROW(INDIRECT("F1:F"&MATCH(10^15,B:B,1))),ROW($1:$5)))と B1にいれてみましたが84となり79とはなりませんでした。 なぜ+5されるのか分かりません。 自分ではまったく解決する光がまったく見えない状態です。 かなり背伸びしている質問になっていますがよろしくお願いします。   できましたらアドバイスお願いします。

関連するQ&A

  • エクセルで下の行から合計とかを求めたいです。

     ほぼ毎日最終行の所にA列に日付 B/C/D/列に数値を加えているという作業を繰り返しています。従って下の方が最近入力した値になっている状態です。 私がしたいのはこの最近入力した(最終行)行から5行上までの各列の合計や平均値をそれぞれ1番上の方に自動で表示したいのですがいろいろと調べても分かりません。(行を追加するたび範囲を指定し直すというのがつらいです。) このような事はエクセル2003で可能でしょうか?  調べた中では最終行を取得するとか最終行の値を表示するというのは見つけれたのですがここ何日も悩んで解決できません。  よろしくお願いします。

  • エクセル 列の数値の合計の表示について、

    エクセル 列の数値の合計の表示について、 ごく基本的なことだと思いますが、教えてください。 例えばA列に上から順に数値を入れていき、その合計をB列に表示させるとします。 私のやり方はB列の計算式を=B1+A2としてこのコピーを、数値の数だけ下に下げることで目的を達しました。 すでにA列に数値が何個も入力している場合はこれで良いのですが・・。 ここから質問なのですが、例えばA列に現在10個数値がありB列に順番にその合計が出ているとします。 次にA列11行目に新規に数値を入力した時に、自動的にその合計がB列に出るようにしたいのです。 予めB列の数式のコピーを11行目以降に延ばしておくと、10行目の合計の数値が延ばした行まで並ぶので困っています。 よろしくお願いします。

  • Excelで表のある日以前の値を合計する sumif?

    こんにちは。 ExcelでA列の1行目に2010/1/1から31行目に2010/1/31まで、日付が並んでいます。 B列の1行目に1から31行目に31まで、1ずつ増える数字が並んでいます。 セルC1に2010/1/10と入力した場合に、セルD1に55と返すような数式を書きたいと思っています。 要するに、セルC1から以前の日をA列で見つけて、同じ行のB列の値を合計したいのです。 sumifを使ってみましたが、うまくいきません。 ご指導、お願いいたします。

  • EXCEL SUMIF関数について

    EXCELのSUMIF関数ですが、マニュアル通り使用すると 思ったとおりの計算ができません。    A   B  C   1  1  10 100 2  2  20 200 3  3  30 300 4  4  40 400 5  5  50 500 の様な5行×3列の表で A列が>3のもののB列C列の合計を求めたい場合 =sumif(A1:A5,">3",B1:C5) とすれば990という合計が欲しいのですが、やってみると 90にしかなりません。(B列しか合計されていない) どうなっているのでしょうか。

  • エクセルで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

  • 常に最新10個の合計を表示したいのですが…

    A列に日付、B~P列に数値が入った表で 新しいデータをいちばん下に追加していっています 1行目に最新10回分の合計を表示したいのですが 関数を使って常に最新のデータ10個の合計を表示することは可能でしょうか? Q列以降に =INDEX(A:A,COUNTA(A:A))、=INDEX(A:A,COUNTA(A:A)-1)のようにして 10個抜き出してそれを合計してみようとしましたが循環参照になってしまって出来ませんでした・・ よろしくお願いします

  • sumifのように条件に見合う合計を「数値」ではなく「データ(セル)」の合計を集計したいのですが

    SUMIFを使って合計範囲の数値の合計を求めるように、合計範囲の「データが入力されているセル」の合計を求めたいのですが、何かいい関数はありませんでしょうか? 言い換えると、COUNTAを使ってセルの個数を求める場合に検索条件をSUMIFのように特定の検索条件を指定できる関数です。 いろいろ探しましたがうまい方法が見当たりません。 使用方法としては、各曜日ごとのメニュー別の売上金額の合計と人数の合計を求めようとしています。 ワークシートに入力されてるデータは ・各曜日 ・顧客名 ・メニューと支払われた金額 です。 SUMIFを使って、検索条件に各曜日をあてはめ、曜日ごとのメニュー別売上は集計できました。 金額が入力されているセルを合計すれば各メニューごとの人数まで集計できるはずなのですが、SUMIFが「数値」しか集計できない為にそれに代わる関数を探しています。 どうぞよろしくお願い致します。

  • エクセル 3行ずつの合計

    エクセルの質問です。 A列にID、B列に数値が入力されているとします。そしてC列にB列の2行ずつの合計を計算したいのですが、どうしたらいいでしょうか。 A | B  | C 1 | 25 | ID1から3の合計 2 | 24 | ID4から6の合計 3 | 37 | ID7から9の合計 4 | 32 | ID10から12の合計 ・ ・ ・ 数百行はあるのでいちいちちょこちょこと合計するのが苦痛なんです。よろしくお願いします。

  • SUMIF関数

    1月1日 100 日付をA列1-10行 数をB列1-10行 1月2日 200 (略) 1月10日 1000 これで 1月4日~1月7日までの 合計SUMIFで求めるとき、 =SUMIF(A1:A10,">=1/4",B1:B10)-SUMIF(A1:A10,">=1/7",B1:B10) と 数式立てました。が答えは 2月8日 と返ってきました。 そこで 質問ですが SUMIF関数は 複数の数式には対応しないのでしょうか?(1月4日以降の合計から 1月7日以降の合計を引いて 1月4日~1月7日 を求める方法) 教えて 下さい。お願い いたします。 エクセルは2002です。 なお、自分 先日COUNTIF で質問して、そのとき 教えてもらった 数式が そのまま流用できそうな 感じがして SUMIF関数に 置き換えて みたら数値が欲しいのに、日付が 返ってきた しだいです。 http://www.okweb.ne.jp/kotaeru.php3?q=339430 お願いいたします。 最近、関数が 難しいですが がぜん 面白くなってきて、参考書を読んで 実践して つまずくと ここに 頼って きてしまいます。

  • EXCELのSUMIFについて

    =SUMIF(A1:A10,">5",B1:B10) これで、1から10の範囲でA行に"5"より大きい数字が入ってるB1からB10の値の合計がでますよね? "5~10"という範囲を与えるには、" "の中はどういう風に入力したらいいのですか?

専門家に質問してみよう