- ベストアンサー
Excel 2003 自動日付出力
質問1) セルA1 に 入力されたら A4に入力した時点の日付(例: 4月9日)を自動で出力したいのですがどうしたらよいでしょうか? A3には =A4,"",""A4 (こんな感じです。ハッキリ覚えていません IFがついてた?) で、A4に日付を入れると A3に今年の年が表示されます(例:平成23年)。 質問2) 質問1をすることによりA3はA4に自動出力された時に引き継がれるでしょうか? また、=A4,"",""A4 この意味を教えてもらえたら助かります。 これを作ったか人が辞めたため、聞こうにも聞けません、宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
=A4,"",""A4 何でしょうね? 似たような形式でIFが付いてるとなると =IF(A4="","",A4) こう?でもこれじゃ=A4と同じ意味だし?? >セルA1 に 入力されたら A4に入力した時点の日付(例: 4月9日)を自動で出力したいのですがどうしたらよいでしょうか? これも踏まえると =IF(A1="","",A4) 計算式の意味:A1セルが空欄なら空欄、何かの入力があればA4の情報を表示 たぶんこれなんでしょうね
その他の回答 (3)
- tom04
- ベストアンサー率49% (2537/5117)
No.2.3です! No.3をもう一度読み返してみると、ちゃんとした回答になっていないようですので・・・ セルの表示形式をユーザー定義で日付の設定をする場合、あくまで当方の個人的な解釈ですが、 g ← 元号の略・ e ←エンペラー(天皇)の略だと思って使っています。(間違っていたらごめんなさい) 仮にご自分の誕生日を西暦で入力しセルの表示形式でユーザー定義を色々変えてみてください。 (たとえば昭和50生まれとした場合) e だけだと 50 ge だと S50 gge だと 昭50 ggge だと 昭和50 のように表示されると思います。 世界にはイスラム教・儒教等々元号的なものがあるかもしれませんが、とりあえず日本国内でExcelの日付の表示形式に関しては[$-411]と入力しなくても使えるような感じです。 (Excelが勝手に[$-411]としてしまうこともあるようですが・・・) この程度ですが参考にならなかったらごめんなさいね。m(__)m
- tom04
- ベストアンサー率49% (2537/5117)
No.2です! 補足を読ませていただきました。 前回の数式は「空白以外」の場合のみで、空白の場合の数式を入れていませんでした。 尚、前回の「TEXT関数」使ってしまうと、A3セルの表示形式の変更だけでは対応できないと思いますので、 A4セルの表示形式はユーザー定義から m月d日 としておいて、数式を =IF(A1="","",TODAY()) または =IF(A1<>"",TODAY(),"") に訂正してください。 そしてA3セルの表示形式は、ユーザー定義から e年 として =IF(A4="","",A4) だけで大丈夫だと思います。 補足にある >A3には表示形式が [$-411]e"年" となっていました。・・・ に関しては↓のURLの最後部分に >[$-411]というのは「ロケール指定子」というもので、各種言語に対応しており、日本語が 16進数で0411になるようです。「日本語の」というような意味です と書かれていますので参考にならないでしょうか? http://www11.plala.or.jp/koma_Excel/contents1/mame1003/mame100301.html 実際角括弧の中はあまり考えなくても良いと思います。 (本来は必要なのかもしれませんが、当方はあまり意識していません) 参考になれば良いのですが・・・m(__)m
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! >質問1) セルA1 に 入力されたら A4に入力した時点の日付・・・ A1セルは通常は空白で、データを入力した時点での日付であれば関数で可能です。 もし、A1セルのデータが変わるたびにA4セルをその日の日付に変更したいのであればVBAになってしまいます。 仮に前者(A1セルは常に空白で何かを入力したときの日付)の場合は A4セルに =IF(A1<>"",TEXT(TODAY(),"m月d日")) としてみてください。 そして 質問2)に関してはA3セルの数式は =IF(A4="","",A4) としていてセルの表示形式を変えているものと思われます。 そうであれば、数式の意味は 「もしA4セルが空白の場合は空白に!そうでなければA4セルの値を!」ということだと思います。 セルの表示形式に手を加えないようにする場合、A3セルの数式は =IF(A4="","",TEXT(A4,"ggge年")) としておけば大丈夫だと思います。 尚、質問1)に戻りますが、もしA1セルのデータが変わるたびにその日の日付をA4セルに表示したい場合はVBAになるといいましたので、とりあえずコードを載せておきます。 画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので、 ↓のコードをコピー&ペーストして、A1セルのデータを変更してみてください。 (今日の日付ですので見た目には変化ないように思われます) Private Sub Worksheet_Change(ByVal Target As Range) 'この行から If Target = Range("A1") Then With Range("A4") .Value = Now() .NumberFormatLocal = "m月d日" End With End If End Sub 'この行まで 以上、長々と失礼しました。m(__)m
お礼
ありがとうございます。 なるほど、質問1)は<>を使えば空白でない時になるわけですね! 質問2)も理解できたような気がします。1年以上関数、VBAから離れてたもので、 ど忘れしていました(汗)・・・どちらにしても私には出来なかったと思いますが。。 後日職場に行きますので確認してみます。
補足
A3には表示形式が [$-411]e"年" となっていました。 (例では 平成23年 と 書きましたが、23年 のみの表示でした) どういう意味なんでしょうか? また、教えていただいたやり方(関数)でできそうなのですが、A1に入力が無い時にA4にFALSE が表示されてしまいます。これを出ないようにしたいのですができないでしょうか? 間違えていたのですが A3はC3 A4はD4でした。すみません。(これを行方向にコピーして使用します)
お礼
ありがとうございます。 思い出しました。 =IF(A4="","",A4) これです。 何故これだけでA4に日付入れただけで A3に 平成23年とでるのか不思議です。 マクロでも入ってるのかもしれません。後日職場に行くので確認してみます。