• ベストアンサー

Excel日付表示について

こんな関数ありますか? 「入力した日を関数で表示する」 たとえば・・・ A列に入力した日にちをB列に表示できる関数ってありますか? マクロではなく、関数でしたいんですけど どなたかご存知ですか?

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.4

やっと質問の意味が分かりました。無意味な回答をしてすいませんでした。 最初に思い浮かぶのは now()ですが、これはどこかの時点で値に変えてしまわないとだめでしょうね。 自動的に値に変えることはできますが、マクロを使わなければかえって面倒になりますね。 関数では思い浮かばないので、以下は私だったらこうするという感想です。質問の主旨に合わなかったら読み飛ばして下さい。 下記の方法なら、ある意味、マクロを実行しているという感じにならないかもしれないので『マクロではなく、関数でしたいんですけど』を承知の上で書かせてもらいます。 (1)ユーザー定義関数を利用する。(B列には =ymd() と入力)  Public Function YMD()    YMD = Format(Now(), "yyyy/mm/dd")  End Function  または(B列には =ymd2(A1) のように入力。入力がなければ表示しない)  Public Function YMD2(rg As Range)    If rg <> "" Then      YMD2 = Format(Now(), "yyyy/mm/dd")    Else      YMD2 = ""    End If  End Function (2)ThisWorkbookに処理を書き込む。(シート側では、A列に入力すれば自動でB列にセットされます)  Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)    If Sh.Name = "Sheet1" Then 'Sheet1を変更      If Target.Count = 1 Then 'A列を変更        If Target.Column = 1 Then '1つのセルを変更          Application.EnableEvents = False 'イベントの発生を止める          If Target <> "" Then 'A列で入力した場合            Target.Offset(0, 1) = Format(Now(), "yyyy/mm/dd")          Else 'A列で消去した場合            Target.Offset(0, 1) = ""          End If          Application.EnableEvents = True        End If      End If    End If  End Sub

imu_ka
質問者

お礼

ありがとうございました。 結局、関数では出来ないと言うことですね(T-T) でも、マクロはとっても役に立ちました。 わざわざ作成して頂いてありがとうございます!!

その他の回答 (5)

  • himehime
  • ベストアンサー率37% (133/354)
回答No.6

んー。もしかして。 関数ではありません。 また、ご質問の意図と違いましたら、ご容赦ください。 もしかして、データの入力日を知りたい、というのは、他の方が、「古い」データを書き換えてしまう場合があるので、それを防ぎたい、ということではありませんか? でしたら、 変更箇所の確認というので、そのデータを反映するかしないか選べますので、そちらの方がいいとおもいます。 ツール→変更履歴の記録というのがありますので、 そこで、 変更箇所の表示というのを選びます。 何かデータが変わったら、 ツール→変更箇所の確認を選ぶと、 誰(といっても、そのパソコン上のユーザー名がでるとおもいますが。 たしか、ここの設定は変えられた思いますが、詳細設定は忘れました)が、 いつ、そのデータを変えたかの更新日時を知ることができますよ。 あとは、「反映する」、「反映しない」で、 そのデータを使うか使わないか選べます。 MOUSの上級試験範囲ですので、市販のMOUSExcel上級対策本みると、詳細が載っていると思いますよ。 関数じゃなくて申し訳ないんですが・・・。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.5

すいません。変な回答をしてしまいました。  ANo.#4の(1)ユーザー定義関数を利用する。 は再計算すると日付を変えてしまいます。無視して下さい。 (2)は問題ないと思います。失礼しました。

  • miya_777
  • ベストアンサー率31% (44/140)
回答No.3

非常に問題はありますが・・・・。 B列に =IF(A1<>"",NOW(),"") というよな設定をすればOKです。 ※例はA1のセルでB1を表示するものです。 ※Bセルの書式は日付フォーマットにする必要があります。 問題というのは、 1.「F9」キー等で更新してしまうと、Bセルの値が変わってしまいます。 2.複数のセルを上記設定すると、1つ替えるとみんな変わってしまいます。 結局、更新によって各関数が動いてしまいますので無理かと思います。 参考までに、現時刻の入力は「Ctrl」+「;」(日付)、「Ctrl」+「:」(時刻) で簡単にできますので、こちらで入れても楽かと思います。

imu_ka
質問者

補足

う~~ん。 更新日付の列を作成したかったので 「1つ変えてしまうと全部変わってしまう」のは辛いですね。 私も今のところ[Ctrl]+[;]でやっていますが、 どうも面倒くさくて・・・。 やっぱりExcelでは無理なのでしょうか?

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

質問の意味が?ですが、A1に入力した日にちをB1に表示するなら、B1には =A1 でしょうか。B1の書式設定は望む日付形式にします。 A1をセルの書式設定のユーザー設定でスペース(スペース1個)にしておけばA1には見た目何も表示されません。 回答になっている?入力者をごまかしている感じもしますが・・・

imu_ka
質問者

補足

ごめんなさい。説明が下手で(T-T) もう一度説明し直すと・・・ A列が「今日やったこと」を入力。(この時、文字列で入力してます) そんでB列に「A列を入力した日付」を関数で表示する。 という感じにしたかったのです。 意味分かって頂けるでしょうか? お願いします。

  • masakaji
  • ベストアンサー率33% (38/113)
回答No.1

それでしたら、関数は不要です。 表示させたいセルをクリックして、 =を入力後、 もともと日付を入力しているセルをクリックして、Enterキーを押すだけで OKです。 日付を管理する関数自体は、いろいろあります。 「Fx」ボタンを押して、関数の種類のところで、日付を選べば出てきますよ。 用途に応じて利用してください。

imu_ka
質問者

補足

回答ありがとうございます。 補足を上記にまとめさせて頂きました。

関連するQ&A

  • 月のみ表示する

    添付画像のようにA列に日にちを入れ、B列に月のみ表示するには、B列にどのような関数を入力すればいいのでしょうか?

  • Excel関数で任意の日付を表示させるには?

    Excel関数を用いて、任意の日付を表示させる方法を 教えていただけますか? 例えば、今日からちょうど1年半後の日付を 知りたい場合、セルA1に今日の日付 20040829 と入力すると、セルB1に 20060229 と表示させるような関数は、何をどのように 使えば良いのでしょうか? date という関数を試してみたのですが、 「日」は加算できるのですが、 「年」や「月」に+1、+6と入力しても、 「日」の方に加算されてしまい、 うまくいかないんです。 良い方法を御存知の方がいらっしゃいましたら、 ご回答、よろしくお願いします。

  • 日付が過ぎたら表示させる方法

    いつもお世話になっています。 入金表みたいなのを作ろうと考えています。 そこで、A列に名前が入り、B列に振込や現金などの入金状況を表示するようになっています。 例えば、C1に入金日(2009/01/31)を入力して、入金日が過ぎるとB列が空白になってるところに“未入金”っと記入したい。 しかし、A列に名前の記載がない場合は空白のまま。 このような、関数を教えてください。

  • EXCEL2003 日付関数で曜日を入れたい

    宜しくお願いします。EXCEL2003です。 シート1   平成20年4月 シート2   平成20年5月 シート3   平成20年6月 …       … 平成21年3月までのシート1~シート12まであります。 日付関数を使って曜日を入れたい。そして、土曜日・日曜日・休日のところのA列(日)B列(曜日)C列(摘要)の3列を塗りつぶしたいのですが出来ますか。宜しくお願いします。 シート1の A1に4月と入っています。 A2~A32まで1~30まで日にちが入っています。 B2~B32のところに平成20年4月の曜日を入れたい どのようにしたらよいのでしょうか。 シート2以降はシート1の複写です。ですから同じ位置に曜日が入るようになっています。 宜しくお願いします。

  • EXCEL2003で日付をソートしたい

    エクセル2003で出納帳を作成しています。 日付をソート(若い順)するにはどうしたらよいでしょうか?? A列 6/1 6/2 6/3 6/1 6/2 これを A列 6/1 6/1 6/2 6/2 6/3 という感じにしたいです。 B列以降C,D,E~には、文字列、関数、数値等が入力されており、それも同時に動かしたいのですが… よろしくお願いします。

  • Excel:セルに入力されている日付の、半年後の日付を自動表示させたい

    誰か教えてください。 A列のセルに「2004/3/4」という日付が入っていたとします。 A列の日付を参照して、B列に「半年後」、C列に「16ヶ月後」という日付を自動表示させたいのですが、そういう事って出来ますか? 出来るとしたらどんな関数を書けばいいのでしょう? 教えてください!

  • Excel関数で指定した日付の間の数値を取得し

    エクセルに以下のようなデータがあります。 A列    B列      C列 2012/4/1 2013/3/31 100 2011/4/1 2012/3/31 90 2010/4/1 2011/3/31 82 2009/4/1 2010/3/31 70 2008/4/1 2009/3/31 60 その場合に、2011/5/1と入力したらその隣の列に90 2010/6/15と入力したらその隣の列に82と表示する関数を 作りたいのですが、どのようにしたら良いのでしょうか? 検索したら、Vlookupを使えばできるのかなーと思ったのですが、 どうにもうまくいきません。

  • excel:日付け処理

    Excelの表で、 B列には、C列のデータがある申請処理が済んでいる(1)か済んでいない(0)かのデータ、1,0が入っています。 C列の2行目から、所属期間が次のように入っています。 処理(B列):所属期間(C列) 1:2006/1/1~2/28 0:2006/1/1~3/1 1:2006/12/1~2006/1/31 0:2006/1/1~2/28 1:2006/1/1~3/1 1:2005/12/1~2006/1/31 1:2006/1/1~2/151:a~b(と説明のため表記) ------------------------- などの所属期間情報が日付の属性として入っているものとします。このときB列の値が0のものに対して、現在日を元に、(現在日-14)≦b値≦(現在日+14)を満足していれば、処理しなければいけないということでセルを黄色に表示するようにしたい。なおもし以上の処理をする前に色の付いたC列のセルがある場合は、いったん色をクリアしてから黄色付けするようにする。 以上をマクロで書くには、どうすればよいか。もしC列に対する処理が大変ならC列のa~bというデータが、最初からC列,D列に分離されているとしてもいいです。 よろしくお願いします。

  • Excel2007 日付関数について教えて下さい。

    A1に例えば「2012/5/22」と入力すると B2に翌々月10日の日付を入力するため 関数「=DATE(YEAR(A1),MONTH(A1)+2,10)」 と関数を入れました。 A1に日付が入れば翌々月10日の日付を返してくれるのですが A1が空白だと「1900/3/10」の値を返してきます。 日付が入っているとややこしいので消すもしくは日付じゃない値を返すことは出来ないでしょうか よろしくお願いします。

  • エクセルの「&関数」で日付の結合について

    すみませんが、できればとっても嬉しいのですが・・・・ たとえば、A列に下記のように日付が入っているとし、「&」を利用してB1に関数で「="誕生日は"&B3&"です"」と入力し、「誕生日は平成19年8月6日です」表示させようとすると、「誕生日は39300です」と表示されてしまいます。 これの解決方法はあるのでしょうか?? よろしくお願いします。 ____A列_______B列____ 1 平成19年8月6日 2

専門家に質問してみよう