OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

Excel日付表示について

  • 暇なときにでも
  • 質問No.116276
  • 閲覧数78
  • ありがとう数2
  • 気になる数0
  • 回答数6
  • コメント数0

お礼率 33% (12/36)

こんな関数ありますか?
「入力した日を関数で表示する」

たとえば・・・
A列に入力した日にちをB列に表示できる関数ってありますか?
マクロではなく、関数でしたいんですけど
どなたかご存知ですか?
通報する
  • 回答数6
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.4
レベル13

ベストアンサー率 68% (791/1163)

やっと質問の意味が分かりました。無意味な回答をしてすいませんでした。

最初に思い浮かぶのは 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

お礼率 33% (12/36)

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

その他の回答 (全5件)

  • 回答No.1
レベル10

ベストアンサー率 33% (38/113)

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

日付を管理する関数自体は、いろいろあります。
「Fx」ボタンを押して、関数の種類のところで、日付を選べば出てきますよ。
用途に応じて利用してください。
補足コメント
imu_ka

お礼率 33% (12/36)

回答ありがとうございます。
補足を上記にまとめさせて頂きました。
投稿日時 - 2001-08-09 15:48:14

  • 回答No.2
レベル13

ベストアンサー率 68% (791/1163)

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

A1をセルの書式設定のユーザー設定でスペース(スペース1個)にしておけばA1には見た目何も表示されません。

回答になっている?入力者をごまかしている感じもしますが・・・
補足コメント
imu_ka

お礼率 33% (12/36)

ごめんなさい。説明が下手で(T-T)
もう一度説明し直すと・・・

A列が「今日やったこと」を入力。(この時、文字列で入力してます)
そんでB列に「A列を入力した日付」を関数で表示する。

という感じにしたかったのです。
意味分かって頂けるでしょうか?
お願いします。
投稿日時 - 2001-08-09 15:42:29
  • 回答No.3
レベル10

ベストアンサー率 31% (44/140)

非常に問題はありますが・・・・。 B列に =IF(A1<>"",NOW(),"") というよな設定をすればOKです。 ※例はA1のセルでB1を表示するものです。 ※Bセルの書式は日付フォーマットにする必要があります。 問題というのは、 1.「F9」キー等で更新してしまうと、Bセルの値が変わってしまいます。 2.複数のセルを上記設定する ...続きを読む
非常に問題はありますが・・・・。
B列に
=IF(A1<>"",NOW(),"")
というよな設定をすればOKです。
※例はA1のセルでB1を表示するものです。
※Bセルの書式は日付フォーマットにする必要があります。

問題というのは、
1.「F9」キー等で更新してしまうと、Bセルの値が変わってしまいます。
2.複数のセルを上記設定すると、1つ替えるとみんな変わってしまいます。

結局、更新によって各関数が動いてしまいますので無理かと思います。

参考までに、現時刻の入力は「Ctrl」+「;」(日付)、「Ctrl」+「:」(時刻)
で簡単にできますので、こちらで入れても楽かと思います。
補足コメント
imu_ka

お礼率 33% (12/36)

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

やっぱりExcelでは無理なのでしょうか?
投稿日時 - 2001-08-09 16:37:25
  • 回答No.5
レベル13

ベストアンサー率 68% (791/1163)

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

 ANo.#4の(1)ユーザー定義関数を利用する。

は再計算すると日付を変えてしまいます。無視して下さい。
(2)は問題ないと思います。失礼しました。
  • 回答No.6
レベル11

ベストアンサー率 37% (133/354)

んー。もしかして。 関数ではありません。 また、ご質問の意図と違いましたら、ご容赦ください。 もしかして、データの入力日を知りたい、というのは、他の方が、「古い」データを書き換えてしまう場合があるので、それを防ぎたい、ということではありませんか? でしたら、 変更箇所の確認というので、そのデータを反映するかしないか選べますので、そちらの方がいいとおもいます。 ツール→変更履歴の ...続きを読む
んー。もしかして。

関数ではありません。
また、ご質問の意図と違いましたら、ご容赦ください。

もしかして、データの入力日を知りたい、というのは、他の方が、「古い」データを書き換えてしまう場合があるので、それを防ぎたい、ということではありませんか?

でしたら、
変更箇所の確認というので、そのデータを反映するかしないか選べますので、そちらの方がいいとおもいます。

ツール→変更履歴の記録というのがありますので、
そこで、
変更箇所の表示というのを選びます。

何かデータが変わったら、
ツール→変更箇所の確認を選ぶと、
誰(といっても、そのパソコン上のユーザー名がでるとおもいますが。
たしか、ここの設定は変えられた思いますが、詳細設定は忘れました)が、
いつ、そのデータを変えたかの更新日時を知ることができますよ。

あとは、「反映する」、「反映しない」で、
そのデータを使うか使わないか選べます。

MOUSの上級試験範囲ですので、市販のMOUSExcel上級対策本みると、詳細が載っていると思いますよ。

関数じゃなくて申し訳ないんですが・・・。
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ