ここから本文です

EXcelの質問です。

ich********さん

2015/6/910:46:54

EXcelの質問です。

関数を使用してセルに末日をセルに表示して
その末尾まで異なるセルで1~末日まで数字を左に加算して表示してるのですが
末日の31日から30日に変えると30日まで表示するが、末日を30日から31日に変えると
31日が表示しない。
参照しているセル
=DATE(YEAR(B2),MONTH(B2)+1,1)-1,B4セル
=DAY(B4)
表示させている関数
=IF($C$4<E6,"",D6+1)
誰かわかる方教えてください。

ちなみにEXcel2010とExcel2000で試しました同じ結果になります。

補足c4には、末日を
E6には、日付を
つまり、日付を右セルへ加算しながらシフトし日付を表示するつもり
です。
他のセルで年月を入力して
入力した月の末日まで別セルに1日~末日まで日付を右に表示しようしています。
一度は表示するのですが、
例えば8月を入力して31日迄表示をします。
6月を入力して30日迄表示します。
また8月を入力して31日を表示させたいのですが、30日以上が表示
しません。

閲覧数:
110
回答数:
6

違反報告

ベストアンサーに選ばれた回答

x_q********さん

2015/6/911:36:06

=IF($C$4<E6,"",D6+1)の意味が不明なので、月最終日数の収納セル番地の記載もありませんので下記の方法としましたので、参考になれば修正下さい。

B2に日付が記入されているので、day(B4)にしないで直接その月に最終日を入力出来ます。
月に日数は28日まで必ずあるのでそれまでは関数は不要です。
数値のオートフィルで28まで作成で良いわけです。
日付データで他のセルに関数使用しているのでしたら2日目のセルはD5となりますので、D5式=C5+1でAD5までコピー

下図のようなやり方でも可能だと思います。
月最終日をB5としています。

B5式
=DAY(DATE(YEAR(B2),MONTH(B2)+1,1)-1)

C5が1日目

29日目のセルはAE5
AE5式
=IF(ISERROR(IF(AD5+1>$B$5,"",AD5+1)),"",IF(AD5+1>$B$5,"",AD5+1))
AG5までコピー

エラー処理は2000を使用されてるようなのでISERROR関数としています。
2010だけならIfERROR関数の方が簡単な式になります。

=IF($C$4&lt;E6,&quot;&quot;,D6+1)の意味が不明なので、月最終日数の収納セル番地の記...

ベストアンサー以外の回答

1〜5件/5件中

並び替え:回答日時の
新しい順
|古い順

all********さん

2015/6/914:04:49

>EXcel2010とExcel2000で試しました同じ結果になります
当然ですが
=IF($C$4<E6,"",D6+1)

C4 E6 D6 このセルの値がなになのかが判らないと
また
>その末尾まで異なるセルで1~末日まで数字を左に加算して表示してるのですが
末尾 でなく末日と思いますが 左に加算??
この事がよく判りません

B2の月末は
=DATE(YEAR(B2),MONTH(B2)+1,0)
または
=EOMONTH(B2,0)
で出来ます

mit********さん

2015/6/913:07:21

ご質問の意味をよく理解していませんがたとえばB2セルに月の初日を2015/6/1のように入力してからC2セルには次の式を入力して右横方向にドラッグコピーすれば月末までの日付を表示することができます。

=IF(B$2="","",IF(MONTH(B$2+COLUMN(A1))=MONTH(B$2),B$2+COLUMN(A1),""))

これで大の月でも小の月でも閏年でも対応できます。
表示の日付を1日から月末での日付を日で表示させるのでしらB2セルから横の列を選択してから右クリックして「セルの書式設定」の「表示形式」で「ユーザー定義」を選び種類の窓には d日 と入力してOKすればよいでしょう。

プロフィール画像

カテゴリマスター

tai********さん

2015/6/912:14:33

これは推理ものですね。

D6,E6に1,2、と入れて右にコピー
D7あたりに1といれて
E7に
=IF($C$4<E6,"",D6+1)
右にコピー


質問文の数式を全部そのままコピーで入れてすべてうまく(?)表示しています。

※推理は外れるときがあります。

これは推理ものですね。

D6,E6に1,2、と入れて右にコピー
D7あたりに1といれて
E7に...

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

was********さん

2015/6/912:02:17

日付および日付にかかわる関数をご確認ください。
1~末日の数値・・・月初日(日付)~末日(日付)にしましょう。
表示形式で日付の日のみを表示させれば、数値を表示させているときと同じになります。
>=DATE(YEAR(B2),MONTH(B2)+1,1)-1,B4セル
B2セルの日付の月の末日を返しているのですね。(翌月の月初日の前日?)
次式で同じことです。
B4セル=EOMONTH(B2,0)

で、その日付の日を数値化して1~31の数値と比較していますね。
C4セル=DAY(B4)

比較するときにも日付のままで良いですね。
普通はB4セルの末日と比較するのではなく、B2セルの日付の月と日付表示セルの月とを比較します。
(月末日と表示日付の)日が大きい=月が大きい

以下のようにしてはいかがでしょうか。
D6セル=B2
B2セルが月初日でない場合には次式になります。
D6セル=EOMONTH(B2,-1)+1
E6セル=IF(D6="","",IF(MONTH(D6+1)>MONTH($B2),"",D6+1))
E6セルを右にコピーします。
(B4セルもC4セルもいらなくなります。)

プロフィール画像

カテゴリマスター

kky********さん

2015/6/911:02:34

=DATE(YEAR(B2),MONTH(B2)+1,1)-1
この式がB4に入っていること以外、あとのセルの内容がわかりません。

=DAY(B4)
はどのセルですか。C4なのかと想像しましたが。

=IF($C$4<E6,"",D6+1)
ここに出てくるセルの内容も説明して下さい。

E6とD6に何が入っているのかわかりません。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる