• ベストアンサー

曜日別の平均を求める元データが毎日更新される時の計算式

A列に日付、B列に曜日、CからE列に各品目の数量、F列に平均があります。 今日の日付以降は数値が空欄です。 この表を元に、曜日別の平均の表を作りたいのですが、今は =SUMIF($B$2:$B$[今日の日付までのセル番号],"月",$Z$2:$Z$[今日の日付までのセル番号]) =COUNTIF($B$2:$B$[今日の日付までのセル番号],"月") この二つの式から求めています。 この方法だと、毎日今日のデータを入力した後、範囲を更新しなければなりません。 他に簡単な方法はないでしょうか。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 >今日の日付以降は数値が空欄です。 1行目は項目名で、数値データが入っていないのなら、列全体を指定すればいいのでは? =SUMIF($B:$B,"月",$Z:$Z) =COUNTIF($B:$B,"月")

monta86
質問者

お礼

ありがとうございました。こんな簡単なことだったとは思いませんでした。もっと勉強します。

その他の回答 (1)

  • shiga_3
  • ベストアンサー率64% (978/1526)
回答No.1

日付欄がA366までとして $B$[今日の日付までのセル番号]のところを INDIRECT(ADDRESS(MATCH(TODAY(),A2:A366,0)+1,2)) $Z$[今日の日付までのセル番号] INDIRECT(ADDRESS(MATCH(TODAY(),A2:A366,0)+1,26)) としてください。なお式は、 1)MATCH関数でA列で今日と同じ日付を探してそれが上から何番目かを返し、2列目からなのでそのセルの行番号にするために1を足す。 2)ADDRESS関数で、1)を行番号とし、次に書かれた数字を列番号とする(Aを1とする)番地を文字列として(絶対参照で)出力する。 3)INDIRECT関数で、2)で文字列として示された参照の指し示す値を表示する。 という意味です。 ただし日付が文字列でなく、数値(表示形式が「日付」)であることが条件です。

関連するQ&A