[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『エラー値を出さずにするには?』(みち)
日付ちついてなんですけど、年と月を変えるだけで、日付・曜日が出てくるようにしたんです。
たとえば、C1に年、C2に月、C5:C35に日付
=DATE($C$1,$C$2,1) =IF(MONTH($C$5)=MONTH($C$5+ROW()-ROW($C$5)),$C$5+ROW()-ROW($C$5),"") てな感じです。 その時に、年と月を入力してない状態だと、エラー値がでてくるので、入力してなくてもエラー値がでてこない方法を教えてください!! あと、年・月のセルに、「年」「月」と入力しても、数式がちゃんとでてくるようにもしたいんです。 おしえてください☆
C5に=IF(COUNT(C1:C2)=2,DATE(C1,C2,1),"")、 C6に=IF(C5<>"",IF(C$2=MONTH(C5+1),C5+1,""),"")として、C6を下にフィルドラッグ。 ということでは、どうでしょう? (LOOKUP)
衝突しました。 C5に=IF($C$1*$C$2=0,"",DATE($C$1,$C$2,ROWS($5:5))) 以下コピー。 ( ̄0 ̄;アッ LOOKUPさんは、翌月になったときの空白処理もされてるんですね。 さすがです。m(._.)m (川野鮎太郎)
2回衝突です・・・。
C5が1日目でC35が31日目を表しているんですよね? だったらC6に =IF($C$2=MONTH(C5+1),C5+1,"") で下にコピーでも同じかと思います。 結局はひとつずつしか値は増えていかないと思うので。 あとC5の月はC2を元にしているのでMONTH($C$5)はC2と同じになりますよね? 余計なお世話だったらごめんなさい。
本題ですが・・・ ・入力してなくてもエラー値がでてこない方法 これはIF文を使い =IF(OR($C$1="",$C$2=""),"",日付の式) とやればOKだと思います。 と思ったんですが、(LOOKUP)さんの式の方が簡潔でいいですね(^^)
・年・月のセルに、「年」「月」と入力しても、数式がちゃんとでてくるようにもしたい これは表示形式で対応するといいと思います。 表示形式を「ユーザー定義」でC1は#"年"、C2は#"月"とします。 (gloomy)
>年・月のセルに、「年」「月」と入力しても、数式がちゃんとでてくるようにもしたいんです。 の意味が判りませんでした。gloomyさんのおっしゃるものがよいのですが、C1に2004年、 C2に10月などと漢字を含めて入力した場合にも対応するものは、C5の数式を =IF(COUNT(C1:C2)=2,--(C1&"/"&C2),IF(COUNT(C1&C2),--(C1&C2),""))のようにすることで、 よいと思います。 C6以下には、=IF(C5<>"",IF(MONTH(C5)=MONTH(C5+1),C5+1,""),"")を複製です。 (LOOKUP) =IF(DAY(SUM(C5,1))>1,C5+1,"")とするのもよいようです。
D5に=TEXT(C5,"aaa")として、これを下にフィルドラッグしますと、 曜日が、文字列で該当セルに戻ります。 D5以下のセルの書式設定、表示形式、ユーザー定義でaaaとしておきますと、D5の数式は、単に =C5でしょう?
また、C列の日付の表示形式をd (aaa)としておきますと、曜日も 同時に表示できますので、D列の欄は、不要となります。 (LOOKUP)
またまた衝突・・・。ややこしくなるかもしれませんが一応。
>=IF(TEXT(WEEKDAY(C5),"aaa"),WEEKDAY(C5),"aaa","") これってIF文自体が間違えているのでは? IF(条件式,真の場合,偽の場合)という式になるはずですから引数が1つ多い状態になっていると思います。 式自体がエラーになってしまうと思うのですが・・・。(アシスタントから何も言われてないですか?) あとTEXT(WEEKDAY(C5),"aaa")は条件式には使えません。 文字列ですので数値とは判断できないのです。ですので#VALUE!と表示されるのです。
=IF(C5="","",C5)とし、表示形式をaaaとしてみてはいかがでしょうか? みちさんの式をそのまま使う場合は =IF(C5="","",TEXT(C5,"aaa")) でいけると思います。 (gloomy) 一部式を訂正いたしました。
(みち)
>「--」や、&が式の中に入ってますけど、意味はなんですか?式の理解がしたいので、 >教えてください
任意のセルに2004/9と入力すると、Sep-04。2004年9月と入力すると、2004年9月と表示し、 数式バーを見ますと、両方とも2004/9/1と表示されるでしょう? 年月だけ上の方法で入力しますと、その年月の1日日付のシリアル値がセルに入りますね。
これを数式で実行してみましょう。
1.A1に2004、A2に9。B1に2004年、B2に9月と入力します。 2.A3に=A1&"/"&A2。&は、との意味です。形が似ているでしょう?A1と/とA2ということです。 3.B3に=B1&B2。とします。 4.A4に=--A3。B4に--B3。--は、数値に変換できる文字列を数値に変換する算術演算子です。 両方とも38231と表示されるでしょう?シリアル値です。 5.A4:B4を選択し、セルの書式設定、表示形式、分類を日付、種類に1997/3/4を指定すると、 2004/9/1と表示され、両方とも当該年月の1日日付ということが、判ります。
A B 1 2004 2004年 2 9 9月 3 2004/9 2004年9月 4 38231 38231 ↓ ↓ 2004/9/1 2004/9/1 (LOOKUP)
(みち)
問題解決されたようなんですが気になったので・・・。 LOOKUPさんの"年","月"入力対応の式で --(C1&"/"&C2)とありますよね? 自分はこれを入力した際に、#VALUE!となってしまったのですが・・・。 LOOKUPさんは問題ありませんでしたか?
ちなみに自分はWin2000,Excel2000です。 (gloomy)
>LOOKUPさんは問題ありませんでしたか?
記載のとおりです。=--(2004&"/"&9)、=--("2004年"&"9月")ともに38231が戻ります。 文中のように入力は、--(2004&"/"&9)と=を除いても同様の結果となります。(Excel97 sr2)
ツール、オプション、移行、シートオプション、計算方法を変更するにチェックしますと、 そのような動作になるのですが。。 (LOOKUP)
連休で返答が遅くなってしまい、申し訳ありませんでした。 上記の変更を行ったところ、解決しました。 このような方法もあるんですね。初めて知りました。
やっぱりまだまだ勉強不足です。ありがとうございました。 みちさん、スレお借りしてすみませんでした。 (gloomy)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.