こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excelで一定の数値の場合だけセルを非表示にしたい

Windows98でExcel2000を使っています。

Exceelで勤務集計表を作成し
毎月同じ形式で使っていこうと思っています。
「12/1」という風に日付が横に並んでいて
下段に曜日が並んでいます。

日付と曜日は、報告日を入力すると
それぞれ表示されるようになっています。
(関数を使用)
また、日曜日は色がつくようにしています。
(条件書式1つ使用)

そこで、最後の31日がある月とない月がありますよね。
その場合、翌月の1日が表示されるのですが、
それを非表示にしたいのです。
列自体はあったほうがいいのですが(印刷の為)
日付と曜日のセルだけ空白にしたいのです。

出来れば、マクロの使用は避けたいのですが
仕方ないですかね・・・(泣)

どうすればいいでしょうか?
宜しくお願いします。

投稿日時 - 2002-12-13 16:54:05

QNo.427072

すぐに回答ほしいです

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

再びmaruru01です。

日付のセルが、B2~AF2とします。
B2に、

=IF(MONTH($A$1)=MONTH(DATE(YEAR($A$1),MONTH($A$1)-1,COLUMN(B2)-1)),"",DATE(YEAR($A$1),MONTH($A$1)-1,COLUMN(B2)-1))

と入力して、フィルハンドルでAF2までコピーします。
なお、式中の
「COLUMN(B2)-1」
は、入力するセルの列番号から、日数を出しています。(こうすると、フィルハンドルで一気にコピー出来るので。)
日付のセルがB列(2番目の列)から開始しているので、1を引いているわけです。
もし、日付のセルがC列(3番目の列)から開始しているのであれば、2を引くことになります。
実際の位置で変更して下さい。
ちなみに、曜日は、

=IF(B2="","",TEXT(B2,"aaa"))

で表示出来ます。

投稿日時 - 2002-12-16 14:57:11

お礼

早速の回答ありがとうございます!

出来ました。
って当然ですね。こんなに親切丁寧に
回答を頂けば・・・(汗)
というわけで解決いたしました。
後は応用出来るようにこれから復習致します。

投稿日時 - 2002-12-16 16:19:04

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.4

勤務表私も作りました。12枚のシートに一年分入っています。
これは、エクセル関数だけです。ウルー年についても対応しています。
その年の最初の月の1日の日付を入力すれば一年分日付と曜日が自動で出るようにしてあります。
ここで書くと少し長くなるので、下記のURLで一回、回答していますのでそちらを参考にしてください。
もし、疑問があればそのときはまた回答します。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=397463

投稿日時 - 2002-12-13 17:47:47

お礼

返事が遅くなってすいません。
早速の回答ありがとうございました。
無事解決致しました。
参考になりました。

投稿日時 - 2002-12-16 16:20:40

ANo.3

こんにちは。maruru01です。

日付を表示するセルにどのような式が入っているか分からないので、安易なIFを使用した方法です。
ところで、2月を考えると29~31日のセルを考えないといけないですよね。
一応それを考慮して、(今入っている式を"関数式"とします。)
29~31日の日付のセルを、

=IF(DAY(関数式)<29,"",関数式)

要は、入力される日付の日が1とか2などの小さい値なら非表示にするということです。(別に29未満でなくても、3以下でもOK)

あとは、報告日の月と比較して違ったら非表示とするという方法もあります。
例えば報告日がA1に"2002/12/13"のように入っていたとすると、

=IF(MONTH(関数式)<>MONTH($A$1),"",関数式)

この場合1~31日の全部に同じ式を入れても大丈夫ですね。(つまりフィルハンドルでコピー出来る。)

今入っている関数式によってはもっと簡単になるかも知れません。

投稿日時 - 2002-12-13 17:27:26

補足

返事が遅くなってすいません。
ありがとうございます。

>日付を表示するセルにどのような式が入っているか分からないので、安易なIFを>使用した方法です。

日付のセルには1日であれば
=DATE(YEAR($A$1),MONTH($A$1)-1,1)
というように入っています。
日付に11月が並ぶ時、A1には12月1日が入っています。

教えていただいた式にこれを当てはめると
何やら不思議になってしまいます。
すいませ~ん(涙)
2月のこともうっかりしてました・・・。
申し訳ないですが、もう少し教えて頂けると
嬉しいですぅぅぅるるる(泣)

投稿日時 - 2002-12-16 13:37:05

翌月だったら表示しないのなら、条件つき書式で文字色を白く(または背景と同じ色に)
してしまうのはどうでしょう。

数式が: =month(AD1)<>month($B$2)
書式: 文字色=白

ちなみに31日だけじゃなくて29、30、31の3日間に設定しないと、2月に泣きますよ。

投稿日時 - 2002-12-13 17:27:21

補足

返事が遅くなってすいません。
回答ありがとうございます。

例えば
報告日が12/1(C7)、
表の日付が11/1~30(C9~AK9)
なんですが・・・。
めちゃくちゃ甘えてしまってすいません(泣)
もし良ければ、回答の式の「AD1」と「B2」に
当てはまるセルを頂ければ幸いです。

投稿日時 - 2002-12-16 13:48:23

ANo.1

日付部分はどのように入力されているんでしょうか?
報告日を入力ということは、関数ですよね?
日付部分、曜日部分でIF関数を使われてはどうでしょう。
勤務集計表と言うことは、報告日の前月分になるんでしょうか?

例えば報告日がA1セルに入ってるとして、(報告日の前月の勤務表を作るとして)
=if(month(日付部分に入れている関数)=month(A1),"",(日付の関数)
という形でになると思います。
曜日は日付から判断していると思いますからこれも
=if((日付のセル)="","",(曜日の関数)
とします。
分かりにくかったらごめんなさい。
言いたかったことは、日付から月を割り出し、その月が翌月かどうか比較して
翌月の時は空白を返すIF関数を組むと言うことなんですが。

投稿日時 - 2002-12-13 17:20:19

補足

返事が遅くなってすいません。
回答ありがとうございます。

>日付部分はどのように入力されているんでしょうか?
G9~AK9に横並びに入れています。
例えばG9には
=DATE(YEAR($C$7),MONTH($C$7)-1,1)

>報告日を入力ということは、関数ですよね?
すいません。間違いで、報告日は手入力してます。

>勤務集計表と言うことは、報告日の前月分になるんでしょうか?
そうなんですっ!
なんかカユイ所に手が届いた感じです!

>=if(month(日付部分に入れている関数)=month(A1),"",(日付の関数)
「日付部分に入れている関数」と「日付の関数」は同じ式を
入れるのでしょうか?
報告日と同じ月だったら空白、違ったら日付を表示してね、っていう
式ですよね。
そのまま当てはめていくと、なんだか上手くいきません。
もし呆れてなかったら、また教えて下さい(泣)

投稿日時 - 2002-12-16 14:35:13

あなたにオススメの質問