• ベストアンサー

Excel:特定範囲内の平均値の出し方

Excel2003です。 sheet1のA列にxxxx/yy/zzの形式で年月日、B列に数値があります。 C1セルにB列の最新年月日からさかのぼって過去6ヶ月間の平均値を出したいのですが、どのようにすればよいでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
noname#176215
noname#176215
回答No.6

#1の者です。補足に合わせて考えるなら =AVERAGE(OFFSET(B$1,MATCH(MAX(B:B)+1,B:B)-1,,-MIN(6,COUNT(B:B)))) B列に数値が全く入力されていなかった時にエラーが出ますから それ用 のエラー対策は別途行って下さい。 一応 最初の質問に従って計算しておきます。 ■C1セル:最新年月日 =MAX(A:A) ■C2セル:6ヶ月前の1日 =DATE(YEAR(C1),MONTH(C1)-5,1) ■C3セル:6ヶ月平均 =SUMIF(A:A,">="&C2,B:B)/COUNTIF(A:A,">="&C2)

Youyou
質問者

お礼

ありがとうございます。 ご教示のおかげで無事解決できました。 また、わからないことがあったらよろしくお願いいたします。

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

その他の回答 (5)

  • neconama
  • ベストアンサー率26% (146/541)
回答No.5

データベース関数のDAVERAGEを使う手もありますね。

Youyou
質問者

補足

ありがとうございます。 この関数の具体的な使い方がわかりません。 Excelのヘルプを何度も読み返しても理解できません。 よろしければ教えていただけませんか?よろしくお願いいたします。

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

ちょっと長くなるが、これで。 A列に日付、昇順のこと。 B列にデータ C列に下記式。 C列に同じ行のA列の日付から6ヶ月さかのぼった日付内のB列の平均をだしている。 下の例は2行目からデータが入っているとしたとき、278行目から6ヶ月前までの平均を出している。C列で、フィルすれば他の行もでる。 ただし、6ヶ月前に足りないと、2行目までの平均になるから注意。 =AVERAGE(INDIRECT("B"&(ROW()-(MATCH(A278,A$2:A278,1)-MATCH(EDATE(A278,-6),A$2:A278,1))+1)):B278)

Youyou
質問者

お礼

ありがとうございます。 参考にさせていただきます。

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

(1) 平均値を表示させたいセル(C1)を選択 (2) ツールバーの「Σ▼」の▼をクリック (3) 表示された選択肢から「平均」を選択 (4) 特定範囲(6か月のデータ)を指定 (5) 「Enter」キーで確定   (くれぐれもマウスでクリックしないよう)

Youyou
質問者

お礼

ありがとうございます。 これは簡単でいいですね。参考にさせていただきます。 本当、勉強になります。

全文を見る
すると、全ての回答が全文表示されます。
  • higekuman
  • ベストアンサー率19% (195/979)
回答No.2

質問者様は、どのような工夫をしてみたのでしょうか? 最新年月日は、MAX関数を使って求められます。 D列に、最新日から過去6ヶ月以内だったら1、そうじゃなかったら0になる数式を書きます。E列に、D列が1だったらB列、D列が0だったら0になる数式を書きます。B列×D列でもいいです。 D列の合計をE列の合計で割ると、過去6ヶ月の平均が求められます。 たぶん、この方法が、もっともスマートじゃないやり方だと思います。 もっとスマートな方法はいくらでもあります。 SUMPRODUCT関数を使えば、D列やE列の作業列を使わなくても、過去6ヶ月の平均を求められます。 でも、みっともなくても、まずは、自分が知っている知識を駆使することが大事だと思います。 それができた上で、もっとスマートな方法を探すべきです。 自分が何をしてみたのかも書かないで、質問だけするのは、課題の丸投げと取られてしまいますよ。

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

最新「年月日」からさかのぼると おっしゃいますが「過去6ヶ月」は どのように判断しますか? 「2008/5/31」が最新の年月日だったら 過去 6ヶ月は「何月何日から 何月何日まで」ですか? 「何月から何月」ではなく? 具体的に説明願います。

Youyou
質問者

補足

ありがとうございます。お返事が遅くなり申し訳ございません。 質問の仕方が不充分でした。 実はB列のデータは毎月1回限りのデータでして、過去6ヶ月とはB列の最終行から6行上まで、ということになります。 毎月1回何らかの数値をB列に入力し、その年月日をA列に入力の上、上書き保存をしていますので、常に最終行が最新の年月日と最新のデータになります。 従いまして、B列の最終行から5行上までの6行が常に過去6ヶ月分のデータになりますので、本来の質問の仕方は、 ━━━ B列に毎月1回何らかの数値を入れていきます。 このとき、他の列のとあるセル(ここでは「C1セル」とします)にB列の最終行からさかのぼって5行上までの計6列の平均値を表示させたいのですが、どのようにすればよいでしょうか? ━━━ とすべきでした。 大変失礼いたしました。

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

関連するQ&A

  • Excel:MID関数で(xxxx/yy/zz)の場合

    http://okwave.jp/qa3857919.html にて似たような質問をしました。 今回は数値ではなく日付の場合です。 Sheet1のB列に「xxxx/yy/zz」というように年月日が入力されています。 常にこの年月日の最新年月日の一ヶ月前の年月日をSheet2の指定セルに分割して表示させることは出来ないでしょうか? 例えば以下の場合、 Sheet1のB2に2008/1/31、B3に2008/2/29、B3に2008/3/31と入力されていた場合にSheet2のA18に「0」、B18に「8」、D18に「0」、E18に「2」、G18に「2」、H18に「9」と表示させたいのです。 Sheet1のB列には毎月年月日が追加されていきます。 Sheet1のB4に2008/4/30と追加されれば、Sheet2のA18に「0」、B18に「8」、D18に「0」、E18に「3」、G18に「3」、H18に「1」と表示されるようになります。 解りづらいかもしれませんが、よろしく御教示お願い致します。

  • Excel:月別の平均値を出したい

    Excel2003です。 A列に、「2000/5/30」「2000/6/30」「2000/7/31」・・・「2008/5/31」というふうに年月日が入力されています(必ず月に1日で、日付は不定)。 B列に何らかの数値が入力されています。 このとき、C列に「1月」「2月」「3月」・・・というふうに項目を作りその隣のD列に全ての年のその月の平均値を出すようにしたいのです。 この質問文で言えば2000年から2008年までの各月の平均値になります。 もちろん、毎月ひとつづつ数値は追加されていきますので、D列の最終行が最新値となります。 平均値の出し方は判るのですが、列の中から特定の条件を抽出する、という手順がわからず、つまづいています。 よろしくお願いいたします。

  • 【Excel】条件を満たすデータの集計について

    Excel2003を使用しています。 A列(A7セル以下) → 日付[yy/mm/dd 形式] B列(B7セル以下) → “-”(ハイフン)を含む11桁の数字[例:1234567-8900] C列(C7セル以下) → 文字列 D列(D7セル以下) → 数値 が入力されている表があります。 A列の日付が 06/09/29 以前で、かつ、B列のハイフン前の4桁が『4567』であるD列の数値を集計したいのですが、どのようにすればいいでしょうか? 前回、同様の質問(No.3403437)で回答をいただきましたが、例の挙げ方が良くなかったようで、実際には正しい計算結果を得ることができませんでした。 よろしくお願いします。

  • Excel_条件に合う範囲の平均値の求め方

    Excel関数についての質問です。 以下のようなデータが合った場合、条件に合う範囲のデータのみ 抜き出して平均値を求める方法を教えてください。 ■やりたいこと マイナスが続いている範囲を見つけ出し、マイナスが続いている 範囲のみの平均を算出する。 以下で言うとB4~B7の平均を自動で計算してくれる 関数を考えています。 A列:時間が入っていますが、これ自体も他の値を時間に換算したもの。 (式が入っています。) B列:データが入っており、プラスの領域とマイナスの領域を交互に繰り返す。    A  B 1 Time DATA 2  0   0.05 3  6   0.04 4  8   -0.02 5  11  -0.01 6  15  -0.03 7  17  -0.05 8  21  0.05 9  24  0.06 10  27  -0.03 ・・・(以下プラスとマイナスが交互に続きます。) DABERAGEなどの様に、条件に合うセルの平均ではなく、 ある範囲のセルの平均を出したいと思いますが 中々良い案がありません。 よろしくお願いします。

  • 【Excel】日付を条件のひとつに指定してデータ集計

    Excel2003を使用しています。 A列(A7セル以下) → 日付[yy/mm/dd] B列(B7セル以下) → 文字列 C列(C7セル以下) → 文字列 D列(D7セル以下) → 数値 が入力されている表があります。 例えば、A列の日付が 06/09/29 以前で、かつ、B列にある特定の文字(仮にえくせるとします)が含まれるD列の数値を集計したいのですが、どのようにすればいいでしょうか? 関数で試してみたのですが、うまくいかなかったので、質問させていただきました。 よろしくお願いします。

  • EXCEL2000 関数の使い方

    EXCEL2000 関数の使い方についておしえてください。 (状況) 1)シート1(請求書)とシート2(名簿)があります。 シート2は 列A 列B 列C    列D No 氏名 生年月日  年齢 1 A子 H11.11.1  7 2 B男 H13.8.18  5 ..と続いています。 2)シート1のセルB3(宛名欄)にシート2の名簿の中からB列「氏名」(「氏名」という名前で定義つけてあります)をリスト表示しています。 3)セルB3にリストから選択した人物の年齢をシート2から探して年齢(列D)をシート1のセルC32に表示させたいのですが、どのような数式になるでしょうか? VLOOKUP関数を使うのかな?と思ったのですが、シートが分かれていたり、リストとの合致の定義付けがよくわかりません。 検索個所:シート1のセルB3とシート2B列の一致した値 検索範囲:シート2のB1からD35(データという名前で定義付けています) 表示させたいセル個所:シート1のC32 数式の使い方など認識がまちがっていたり、わかりにくい説明になっているかもしれませんが、どうぞよろしくお願いします。

  • 複数あるブックの特定シートの特定範囲を1つにしたい

    EXCEL2010を使用しています。 あるフォルダに格納されている複数のブックの、特定シートを、1つのシートにまとめたいです。 複数のブックの作りは同じです。 1つのブックに、複数シートがあり、"(配置)"というシートだけを、新規のシートにまとめたいです。 <今ある各ブック> ファイル名は、2014年度特定措置_●●.xlsで、●●だけ、ブック名が違います。 シート名が"(配置)"です。 c3セルに部署名が入っています。 b4セルからe10セルまで数式が入っています。 <行いたいこと> 新規のシートのa列に、各ブックにあるc3セルの部署名を持ってきたい。 b列からe列に、各ブックにあるb4セルからe10セルまでの数式を値張りし、取り込みたい。 以上です。 つたない説明で恐縮ですが、大変困っております。 どうか、ご回答の程、どうぞよろしくお願いいたします。

  • excel 顧客人数の年代別集計

    excel2010を使用しています。 現在、会員のお客様の年代別集計表を作成しています。 A列に小学生以下、中学生、高校生、大学生以上と4項目に分けて該当する年代のお客様の人数の集計をしております。 <シート1> A列      B列 C列 D列 E列 小学生以下     ~  12 中学生     13  ~  15 高校生     16   ~  18 大学生以上  19   ~ <シート2> A列      B列          C列 会員No.    生年月日        年齢   A   19XX/XX/XX  =datedif(B2,today(),"Y")   B   19YY/YY/YY   =datedif(B3,today(),"Y")   C    19ZZ/ZZ/ZZ   =datedif(B4,today(),"Y") としてシート1のE1:E4にFREQUENCY関数を用いて{=frequency(Sheet2!C2:C4,Sheet1!D1:D3)}と、年齢毎の人数を求める表を作成したのですが、12歳でも中学生、15歳でも高校生、大学生でも18歳の方がいらっしゃるわけで、このままでは正しい結果が得られない為、現在頭を悩ませております。 どのようにすればシート1のA列に記載している通りの年代のお客様がシート1のE列に表示出来ますでしょうか? 上手く状況が説明出来ていないかもしれませんが、皆様のお知恵を拝借させていただけますと幸いです。

  • 条件が複数のSUMIF関数について

    sum関数なので、合計欄のセルに ex.=SUM(C1:C6)などと書くときに、 a列が"1"の場合かつb列が"zz"の場合の時の合計欄のセルに加算したい場合は どうやって書けばいいでしょうか? (zzは任意の文字) __A B C 1 1 zz 100 2 0 zz 200 3 1 xx 300 4 0 yy 400 5 1 zz 500 6 0 zz 600

  • 条件を付けて平均を求めたい!(Excel)

    列   A      B         C    商品名    ランク       金額    1みかん    A        1000 行 2みかん    C         300    3みかん    B         600    4みかん    C            5             合計 1900    6             平均A    7             平均B    8             平均C 説明をする為に適当に作ったので、何故こんな物の平均を?と思うかもしれませんが、そこはあまり気にせずご回答頂ければ幸いです。 例えば、こんな表があったとします。(勿論、データ量はもっと沢山。。。) 各ランクごとの平均を求めたいのですが、どんな関数を使い、どんな範囲選択をすれば宜しいのでしょうか?  条件を付けAVERAGEで求めれば良いことはなんとなく分かるのですが・・・ 範囲の設定や数式の順番が全然分かりません。 よろしくお願いします。 ※金額欄(C列)・・・ 実際に未入力のセルがあるので、未入力のセルを0(ゼロ)として考えてくれる数式をお願いします

専門家に質問してみよう