別のセルに入力して Enter キーを押すと、=now() 関数が自動的にセルに挿入される方法

別のセルに入力して Enter キーを押すと、=now() 関数が自動的にセルに挿入される方法

以下の方法を知りたいです:

Excel の列 B に関数を自動的に設定し=now()、列 A の各セル (A1、A2、... Aν) に何かを書き込むたびに、各セル (B1、B2、... Bν) にのみ表示します。

ここに画像の説明を入力してください

答え1

新しい答え

再計算されないタイムスタンプが必要な場合は、循環式これにより、基本的にセルは自身のコンテンツに基づいて機能を実行できるようになります。

この機能を有効にするには、[ファイル] > [オプション] > [数式] に移動して にチェックマークを付ける必要がありますEnable iterative calculation。反復回数を に変更します1。[OK] を押してシートを保存します。

=IF(A1<>"",IF(B1="",NOW(),B1),"")

説明:

1 つ目はIF、元の回答のも​​のと似ています。 がA1空白かどうかをチェックします。<>は を意味する論理演算子ですnot equal to。 2 つ目はIF自身をチェックし、 にコンテンツが入力されている場合は実行されますA1。 がB1空の場合は現在の日付と時刻を入力し、それ以外の場合は既存のコンテンツ (元のタイムスタンプ) を出力します。


オリジナルの回答

B1 でこれを試すことができます:

=IF(ISBLANK(A1),"",NOW())

説明:

ISBLANKは、ターゲット セルに入力があるかどうかをテストする論理テストです。 または を返しますTRUEFALSEIF、ターゲット セルが空白の場合は空の文字列を出力するように構成されています。 に入力がある場合は、A1現在の時刻と日付を出力します。

シートが再計算されるたびに、出力される値がNOW()現在の時刻に変更されることに注意してください。


参考文献:

答え2

すべてに VBA を使用するのが常に賢明というわけではありませんが、特に行が最初に入力されたときだけでなく、変更されたときにも追跡したい場合は、これが良い候補です。タイムスタンプ列のあるシートのコードに次のコードを挿入します。

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Dim intersection As Range
    ' Change A:A,C:E to whatever range you want to watch.
    Set intersection = Application.Intersect(Target, Me.Range("A:A,C:E"))
    If Not intersection Is Nothing Then
        Dim r As Range
        For Each r In intersection.Rows
            ' Change B1 to whichever column is the timestamp.
            r.EntireRow.Range("B1").Value = Now
        Next
    End If
    Application.EnableEvents = True
End Sub

この例では、列 A、C、D、E の変更が監視され、変更が発生すると、現在の日付と時刻が同じ行の列 B に挿入されます。

関連情報