![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
vistaでエクセル2007を使用しています
たとえば縦軸に
9月
1日 33 44 55
2日 63 24 75
3日 43 64 35
:
:
とあります
最終行に月平均を出しているのですが
毎月30日の時はシートの平均を
AVERAGE(D4:D33)で出して
31日の時はD33を34にしたり
また翌月は33に変更したりしているのですが
これを自動で30日の時、あるいは10月なら30日とか
計算してくれるようにすることは
可能でしょうか?
入力データから
毎月複数のシートを変更しなくてはならず
面倒といったら面倒なんです。
30日用のデータと31日用のデータに分けて作って
月によって変更しようかとも
思ったのですが毎月些細な変更があり
そうもできないのです
出来ないのでしたらしょうがないのですが
なんとかうまくできる方法があれば
お教え願えますでしょうか
No.5ベストアンサー
- 回答日時:
回答No4です。
A4セルへの入力の式は次のようにしてください。
=IF(MONTH(DATE(YEAR($A$1),MONTH($A$1),ROW(A1)))<>MONTH($A$1),"",DATE(YEAR($A$1),MONTH($A$1),ROW(A1)))
<>の前に)が一つ足りませんでした。大変失礼いたしまいた。
式の意味はA1セルのデータを使って年や月は決めていますが日にちは1日から始まるのでROW(A1)としてA4セルでは1となります。それが下の行に移るにつれて、例えばROW(A32)となった場合には自動的に月の値が次の月に変わって日にちも変わることになります。その月がA1セルの月と変わらない間は日付を表示していきますが、A1セルの日付の月とROW関数を入れた日付の月が違う(<>)場合にはセルを空白にしなさいということになります。
A1セルに2009/10/1と入力すれば10月31日までは10月で表示されますが11月になれば空白のセルにすることになります。
No.4
- 回答日時:
AVERAGE関数は数値の合計を数値の入力されているセルの数で割って求めているので30日が31日になっても問題は無いでしょう。
どうやら月の変化による月末の日にちを問題にしているようですね。
月末の日にちはうるう年などでも変わりますので年のデータも必要となります。
例えば9月と行ってもいつの年かを設定したうえで9月と表示するようにしてはどうでしょう。
月と表示するセル例えばA1セルに2009/9/1と入力してから右クリックして「セルの書式設定」を選択し、「表示形式」タブの「ユーザー定義」で種類の窓に m"月" と入力してOKします。これでセルには9月と表示されます。
そこで例えばA4セルに1日、A5セルに2日、・・・・・表示させるためにはA4セルに次の式を入力して下方にオートフィルドラッグします。
=IF(MONTH(DATE(YEAR($A$1),MONTH($A$1),ROW(A1))<>MONTH($A$1),"",DATE(YEAR($A$1),MONTH($A$1),ROW(A1)))
その後にそれらのセルの「セルの書式設定」から表示形式のユーザー定義で d"日" とすればよいでしょう。これで指定された月の月末の日にちまでが自動的に表示されます。
なお、指定された月の月末の日にちは次の式で求めることができます。
=DAY(EOMONTH(A1,0))
AVERAGE(D4:D33)関数ではデータが無い空白のセルは当然無視されてデータが入っているセルのみが平均に使われます。データが入っていなくてもその月の日数で平均を求めたい場合には次のような式になりますね。
=SUM(D4:D34)/DAY(EOMONTH(A1,0))
長々と説明しましたがご参考になりましたら幸いです。
この回答への補足
仕事が立て込み遅くなり申し訳ありません
丁寧にお教えいただきましてありがとうございます
=IF(MONTH(DATE(YEAR($A$1),MONTH($A$1),ROW(A1))<>MONTH($A$1),"",DATE(YEAR($A$1),MONTH($A$1),ROW(A1)))
参考に入力テストを行っていたのですが
上記のとおり
A1セルに行って
A4セルに式を入力したのですが
この関数に関して多すぎる因数が入力されていますと
エラーが出ます
途中の""の部分です
どのような意味なのかわからずに困っています
再度お教えいただければ幸いです
No.3
- 回答日時:
こんばんは!
すでに回答は出ていますが・・・
AVERAGE関数は空白セルや文字列のセルは無視されますので、
極端に言えばD列全てを範囲指定して
=AVERAGE(D:D)
という数式でも希望の結果は得られると思いますよ。
(D列には平均値を求めたい数値だけということが前提です)
以上、参考になれば幸いですが、
的外れなら読み流してくださいね。m(__)m
No.2
- 回答日時:
そもそも
>31日の時はD33を34にしたり
>また翌月は33に変更したりしているのですが
これはやらなきゃダメですか?
全てを31日分の範囲にしてあげても良いのでは?と思います
数値を入れなければAVEは無視してくれるので結果が変わらないはずですよ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) エクセルの休日について教えてください。 1 2023/01/06 15:45
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/10 09:15
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/04/13 10:55
- Excel(エクセル) エクセル関数について 2 2022/04/13 18:25
- Excel(エクセル) 再質問です。エクセルでシートが1から31まであり、日付けが入力されているセルがあります。シート1から 4 2022/08/02 23:08
- Excel(エクセル) 最後の12個の修正平均を算出したい。 3 2022/04/30 18:24
- Excel(エクセル) Excelで残業を1月、2月、3月とシートに分けて記録してるのですが、30時間超えた人は別シート(名 4 2022/11/04 06:34
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- 転職 転職活動中で2社内定があり迷っています。皆様ならAとBどちらの方が良いと思いますか?理由もお願いしま 1 2023/02/06 12:20
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
「生産性ソフトウェア」とは何...
-
会社のOutlookにてメールを予約...
-
英数字のみ全角から半角に変換
-
Microsoft familyに追加されま...
-
Outlook で宛先が複数の場合の人数
-
【関数】○年○ヶ月と表示された...
-
エクセルでXLOOKUP関数...
-
VBAファイルの保存先について
-
Outlookを立ち上げたらGoogleロ...
-
outlookのメールが固まってしま...
-
Microsoft Formsの「個人情報や...
-
マイクロソフト 一時使用コード...
-
会社PCのメールが更新されない
-
Excel テーブル内の空白行の削除
-
teams設定教えて下さい。 ①ビデ...
-
タブレット Canva
-
office365って抵抗感ないですか?
-
VBAで横データを縦データに変換...
-
Outlook 電源OFFの受診の仕方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
英数字のみ全角から半角に変換
-
Excelで空白以外の値がある列の...
-
会社PCのメールが更新されない
-
Excel 日付を比較したら、同じ...
-
マイクロソフト 一時使用コード...
-
ウィンドウィズ メモ帳で日付だ...
-
MicrosoftOfficeの1ユーザー2...
-
Microsoft Formsの「個人情報や...
-
Officeの字体
-
エクセルでXLOOKUP関数...
-
Microsoft365で自動保存が出来...
-
Outlookで、任意のメールアドレ...
-
outlookのメールが固まってしま...
-
Microsoft 365 の一般法人向け...
-
Office2021を別のPCにインスト...
-
Microsoft 365のディフェンダー...
-
Excelに貼ったリンクについて E...
-
MicrosoftOffice2019なんですが、
-
Outlook で宛先が複数の場合の人数
おすすめ情報