• ベストアンサー

連続する日付毎に 値が入っている表があります。

連続する日付毎に 値が入っている表があります。 「月曜日の平均」 「土曜日の平均」 というように、7行毎に出現する任意の曜日の平均を とりたいと思います。 =b1+b8+b15 ・・・ のように、ひとつずつ数式を書くという方法 VBを使う方法 以外で、 なにか方法はありませんでしょうか。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんばんは! 曜日の列が手入力で文字列の場合は簡単です。 その場合↓の画像の場合F3セルに =IF(E2="","",SUMPRODUCT((B2:B2000=E2)*(C2:C2000))/COUNTIF(B2:B2000,E2)) という数式をいれれば大丈夫だと思います。 (2000行目まで対応できる数式です) しかし、仮にB列(B2セル)を =A2 としてオートフィルで下へコピーし、 表示形式だけを aaa や aaaa としている場合はシリアル値になりますので 数式が少し長くなります。 その場合の方法です。 ↓の画像のようにH2~I8セルに 日~土までを 1~7 の表にしておきます。 そして、F3セルに =IF(E2="","",SUMPRODUCT((WEEKDAY(B2:B2000)=VLOOKUP(E2,H2:I8,2,0))*(C2:C2000))/SUMPRODUCT((WEEKDAY(B2:B2000)=VLOOKUP(E2,H2:I8,2,0))*(C2:C2000<>""))) という数式を入れればE2セルに曜日を入力すると、その曜日の平均が表示されると思います。 以上、参考になれば良いのですが 外していたらごめんなさいね。m(__)m

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

その他の回答 (6)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.7

No.5です! たびたびごめんなさい。 別案です。 一番簡単な方法はSUBTOTAL関数ではないでしょうか? 前回の画像の表をそのまま使わせてもらいます。 SUBTOTAL関数はオートフィルタと併用になりますので、 オートフィルタで非表示の行に数式を入れたのでは見えなくなってしまいます。 そこで1行目だと必ず表示されますので、1行目に表示するようにします。 E1でもF1でもどこでも良いのですが、 =SUBTOTAL(1,C:C) という数式を入れ、オートフィルタで好みの曜日を選択してみてください。 その平均が表示されるはずです。 どうも何度も失礼しました。m(__)m

全文を見る
すると、全ての回答が全文表示されます。
  • layy
  • ベストアンサー率23% (292/1222)
回答No.6

excelですから、 >連続する日付毎に 値が入っている表 を 曜日順に並べ替えたシートを別途作成する、 という手もいいのではないでしょうか。 sumproductやweekdayを知らなくても、バージョンが2007や2010だろうが、 これなら曜日毎の件数や合計も出すのに単純な手順になるかと思います。 関数等を駆使した求め方ばかり考えるではなくて、 知っている仕掛けで求めたいようにするのも手です。 (今回は平均という基本的な計算だったから、ですが・・・・。) A   B  C 1 2005/9/26 月  1 1737 2010/6/28 月 34 月曜の件数 月曜の合計 月曜の平均 2 2005/9/27 火  0 1738 2010/6/29 火 39 火曜の件数 火曜の合計 火曜の平均 3 2005/9/28 水  1 1739 2010/6/30 水 26 水曜の件数 水曜の合計 水曜の平均 4 2005/9/29 木  2 木曜の件数 木曜の合計 木曜の平均 ::: 基本的には「便利なもの」じゃなくて 「確実に自分自身で理解できて使えるもの」「使いこなせるもの」を使ってください。

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

(1)何処かの列に、曜日の文字列(月曜日なあど)があるとか、曜日コードがあるなら (2)曜日コードや文字列を入れる列を作業列として1列使っても良いなら (3)2007を使っているなら AVERAGEIF関数で解決する単純な話だと思う。 エクセル・バージョンを質問には書くこと。2007を使っておれば、質問異もならない質問。 ーー 2007以外なら、SUMIFとCOUNTIFを使い、両者を割り算して出すとか。 条件が2つ以上なら、SUMPRODUCTも使える。 ーー 配列数式というのも使える 例データ A列(日付)       B列(データ) C列(参考) C列はアザ際実際はシート上に無い。関数は=WEEKDAY(A2)を下方向に式複写。確認用。 2010/7/10 1 7 2010/7/11 2 1 2010/7/12 3 2 2010/7/13 4 3 2010/7/14 5 4 2010/7/15 6 5 2010/7/16 7 6 2010/7/17 8 7 2010/7/18 9 1 2010/7/19 10 2 2010/7/20 11 3 2010/7/21 12 4 2010/7/22 1 5 2010/7/23 2 6 2010/7/24 3 7 2010/7/25 4 1 2010/7/26 5 2 2010/7/27 6 3 2010/7/28 7 4 どこか結果を入れるセルに =AVERAGE(IF(WEEKDAY(A2:A23)=2,B2:B23,"")) とト入れてSHIFT+CTRL+ENTER(3つのキーを同時押しすること) 結果 3、10、5の平均で 6

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

月曜日の場合 =SUMIF(B:B,"月",C:C)/COUNTIF(B:B,"月") ただし、B1セル =TEXT(A1,"aaa")

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

計算結果に間違いが無いように、例えば、以下のようにデータを見やすくしてみてはいかがでしょう。 C2セル=IF($A2=C$1,$B2,"") C23セル=AVERAGE(C2:C22) 曜日 データ 月曜日 火曜日 水曜日 木曜日 金曜日 土曜日 日曜日 月曜日 1 火曜日 2 水曜日 3 木曜日 4 金曜日 5 土曜日 6 日曜日 7 月曜日 1 火曜日 2 水曜日 3 木曜日 4 金曜日 5 土曜日 6 日曜日 7 月曜日 1 火曜日 2 水曜日 3 木曜日 4 金曜日 5 土曜日 6 日曜日 7 曜日の 平均

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

sumif関数とcountif関数を使う方法や、sumproduct関数を使う方法 があります。曜日を現わす文字列がどこかの列にあるのならsumifと countifが判りやすいですし、日付からいきなりやるならsumproduct が汎用的です。sumifやcountifは条件に関数を使えないので。 本当は質問で表の構造を書いておいてくれるといいんですが、B列を 足し算しているところからA列が日付でB列が値という構造だとしま す。そうするとsumproduct関数で =sumproduct((weekday(A1:A500,1)=2)*B1:B500)/sumproduct((weekday(A1:A500,1)=2)*1) の様に「weekday関数の返り値が月曜日に相当する」という論理値に B列の値をかけると月曜日の合計になり、1だけかけると月曜日のカ ウントになることを利用します。もちろんweekday関数の代わりに text関数で書式"aaa"の返り値が"月"になるんでもオッケーです。

moto039
質問者

補足

早速ありがとうございます。 教えていただいた式をシートに書いてみたのですが、 うまくいきませんでした。 表は以下のようなものです。 よろしければ、この表の番地で教えていただけませんでしょうか。 -------------------------------------------------- A   B  C 1 2005/9/26 月  1 2 2005/9/27 火  0 3 2005/9/28 水  1 4 2005/9/29 木  2 : : : 1737 2010/6/28 月 34 1738 2010/6/29 火 39 1739 2010/6/30 水 26

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

関連するQ&A

  • エクセルで日付同日連続

    B列4行目以降 (同日が2行連続した日付)に、例えば月の初めを入力すると 下記のように同日が連続(ここでは2行分)させる方法はどのようにしたら よろしいでしょうか? 1,日付は月の初めから月末まで。 2,日付は週の初め(月曜日)から1週間分(次週の月曜日)。 3,2,の日付は不特定日(但し、月曜日から)です。  等々といろいろ条件が出来てしまいますが、 ここでは1,から3,を行いたいです。 B列4行目以降の日付 H23年9月1日(木) H23年9月1日(木)・・・・上行と同日 H23年9月2日(金) H23年9月2日(金) H23年9月3日(土) H23年9月3日(土) H23年9月4日(日) H23年9月4日(日) H23年9月5日(月) H23年9月5日(月) H23年9月6日(火) H23年9月6日(火) H23年9月7日(水) H23年9月8日(木) H23年9月8日(木)    ・    ・    ・ エクセル2000です。 3行分など自由行にしたい場合は、改めて質問させていただく方がよろしいいでしょうか? 初心者ですがよろしくお願いします。

  • エクセルで表を作っていますがある曜日の日付を

    エクセルで表を作っていますがある曜日の日付を 欄に連続入力する方法はありますか?1週間置きの金曜日の日付を欄に連続入力したいのですが。

  • エクセルで日付けの連続入力

    エクセルで日付けの連続入力をしたいのですが… 例えばカレンダーを作るのに1.2.3と1つ1つ入力しなくてもやる方法があるみたいで…同じく曜日も… 何方か教えていただけないでしょうか?

  • 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を使ってみましたが、うまくいきません。 ご指導、お願いいたします。

  • 日付に自動で色を付けたいのですが?

    A列に日付 B列に曜日を入れています。 B列の曜日は条件付き書式を使って土曜日は青・日曜日は赤で自動的に色が付くようにしています。 B列に自動的に色が付いた所にあるA列の日付も自動的に色が付く方法はないでしょうか? よろしくお願いします。

  • 検索でヒットしたセルの隣のセルの値を計算したい

    A列に曜日、B列に数字(値)の一覧があります。 曜日ごとにB列の合計値を計算したいのですが、どういった方法がいいのか見当もつきません。 お分かりになる方がいましたら、是非ご教授の程よろしくお願いいたします。 A列   B列 月曜日  10     火曜日  5 水曜日  20 木曜日  10     金曜日  5 土曜日  20 日曜日  10     月曜日  5 火曜日  20 月曜日合計 15 火曜日合計 25 というイメージです。 関数だけでできるのか、その他にいい方法があるのかまったくわかっていない初心者なのですがどうぞよろしくお願いいたします。

  • エクセルで作成した売り上げ表から土日のみの集計を出す方法について

    詳しい方教えて下さい。 A行に日付 B行に曜日 C行に売上額があるとします。 一ヶ月(1日から31日までの集計や平均売り上げ額の計算式はわかるのですが土日のみの売り上げ額の平均や合計を出したいのですがどのようにすればよいのでしょうか? よろしくお願いします。

  • エクセルで日付を10行づつ連続でいれたい

    エクセル2010を利用しております。 約97000行までのデーターがあります。 あとえばB2に日付(2018/02/07)をいれます。 B2からB11までは2018/02/07 B12からB21までは2018/02/08 B22からB31までは2018/02/09・・・ と10行づつで最下部まで簡単に日付を入力したいのですがよい方法はありますでしょうか? よろしくお願い致します。

  • 数式を使用して日付を表示させたい

    「A1」に「10/1」と入力すると「1日・2日・3日・・・・・・31日」と、31日で終了するように、 「A31」まで自動的に日付が表示されるように設定する数式(オートフィルでなく)があれば教えてください。 (尚、日付は「1日・2日・3日・・・・」の形で表示させたい。) 「B1」には曜日が「月」と表示するように数式を入力しています。 「B1」にも上記のように、月末まで「月・火・水・・・・」と表示させる数式があれば教えてください。 なるべく早く、回答を頂ければうれしいのですが・・・ 宜しくお願いいたします。

  • マクロで当番表

    Excelマクロで当番表を作成しているのですが、わからない事があるのでお教えください。 例えば1週間毎にAさん、Bさん、Cさん、Dさん4人を振り分けたいのですが、分岐、判断方法がわかりません。 1年間のカレンダーは出来上がっています。 当方の企業は完全週休2日で祝祭日も休みです。カレンダーの休日にはセルを塗りつぶしています。(マクロで34の薄い水色です。) そこで、休日セルの塗りつぶしを背景で、日曜日~土曜日までを曜日で情報を受け取り作成したいのですが、うまくいきません。 月曜から金曜までをAさん、次の週の月曜から金曜までをBさんにしたいのです。 また、Dさんが終わればAさんに戻る。 下記は曜日と背景の例です。 if then ElseでもDo until loopでも他の方法でもよろしいのでお教えください。 曜日=Right(Sheets("カレンダー").Cells(行, 列).Value, 1) 背景 = Cells(行, 曜日列).Interior.ColorIndex

このQ&Aのポイント
  • イエローのインクが切れて純正の新品に交換しようとしたのですが、「インクが検知されません」と表示されます。
  • 接続されている環境はWindows10であり、無線LAN接続です。
  • ブラザー製品に関するトラブルであり、インクの問題が発生しています。
回答を見る

専門家に質問してみよう