Cómo insertar la función =ahora() en una celda automáticamente cuando escribo en otra y presiono enter

Cómo insertar la función =ahora() en una celda automáticamente cuando escribo en otra y presiono enter

Me gustaría saber cómo:

Automáticamente tengo la =now()función en la columna B de Excel, solo se muestra en cada celda (B1, B2, .. Bν) cada vez que escribo algo en la columna A en las respectivas celdas (A1, A2, .. Aν).

ingrese la descripción de la imagen aquí

Respuesta1

NUEVA RESPUESTA

Si desea tener una marca de tiempo que no se vuelva a calcular, deberá utilizar una técnica llamadaFórmulas circulares. Básicamente, esto permite que una celda realice una función basada en su propio contenido.

Debe habilitar esta funcionalidad yendo a Archivo > Opciones > Fórmulas y luego marcando la casilla Enable iterative calculation. Cambie el Número de iteraciones a 1. Presione Aceptar y guarde su hoja.

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

Explicación:

El primero IFes similar al de la respuesta original. Comprueba si A1está en blanco. <>es el significado del operador lógico not equal to. El segundo IFse verifica a sí mismo y se ejecuta si se ingresa contenido A1. Si B1está vacío, ingresa la fecha y hora actuales; de lo contrario, genera el contenido existente (la marca de tiempo original).


RESPUESTA ORIGINAL

Podrías probar esto en B1:

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

Explicación:

ISBLANKes una prueba lógica que prueba si la celda objetivo tiene alguna entrada. Devuelve o TRUEo FALSE. Está IFestructurado de modo que si la celda de destino está en blanco, generará una cadena vacía. Si se ingresa alguna entrada, A1generará la hora y fecha actuales.

Cabe señalar que cada vez que se recalcula la hoja, el valor generado NOW()cambiará a la hora actual.


Referencias:

Respuesta2

No siempre es aconsejable usar VBA para todo, pero este es un buen candidato, especialmente si desea realizar un seguimiento de cada vez que se cambió una fila, y no solo cuando se ingresó por primera vez. Inserte lo siguiente en el código de la hoja con la columna de marca de tiempo:

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

En este ejemplo, se vigilan las columnas A, C, D y E para detectar cambios y, cuando se producen cambios, la fecha y hora actuales se insertan en la columna B de la misma fila.

información relacionada