Ingresar o importar horas sin dos puntos (Microsoft Excel)
Cuando ingresa una hora en una celda, Excel ingresa la presencia de los dos puntos entre las partes de la hora y los minutos. Sin embargo, debido a la posición de los dos puntos en el teclado, ingresar dos puntos por cada valor de tiempo que ingrese puede ralentizarlo, especialmente si tiene bastantes valores de tiempo para ingresar.
Por esta razón, es posible que se pregunte si hay una manera de omitir el ingreso de dos puntos y hacer que se ingresen automáticamente o todos a la vez.
Ingresarlos automáticamente requiere un poco más de trabajo, requiriendo el uso de una macro, y se tratará en breve. Ingresar los dos puntos de una vez se puede hacer con una fórmula, como en la siguiente:
=TIMEVALUE(REPLACE(A1,3,0,":"))
Esta fórmula asume que el valor de tiempo (sin dos puntos) está en la celda A1 y que está compuesto por cuatro dígitos. Por lo tanto, si la celda A1 contiene un valor como 1422, la fórmula devuelve 14:22 como valor de tiempo real. (Es posible que deba formatear la celda como un valor de tiempo).
Si su celda de entrada original puede contener una hora que usa solo tres dígitos, como 813 en lugar de 0813, entonces necesita usar una fórmula ligeramente diferente:
=TIME(LEFT(A1,LEN(A1)-2),RIGHT(A1,2),0)
Si prefiere que la inserción de los dos puntos se realice automáticamente, puede utilizar una macro. Puede crear una macro que examinará un rango de celdas en las que planea agregar fechas a la hoja de trabajo y luego insertar los dos puntos en la entrada. Esto se hace creando una macro que es activada por el evento SheetChange. La siguiente macro es una de ellas:
Private Sub Workbook_SheetChange(ByVal Sh As Object, _ ByVal Target As Excel.Range) Dim TimeStr As String On Error GoTo EndMacro If Application.Intersect(Target, Range("C7:D15")) Is Nothing Then Exit Sub End If If Target.Cells.Count > 1 Then Exit Sub End If If Target.Value = "" Then Exit Sub End If Application.EnableEvents = False With Target If .HasFormula = False Then Select Case Len(.Value) Case 1 ' e.g., 1 = 00:01 AM TimeStr = "00:0" & .Value Case 2 ' e.g., 12 = 00:12 AM TimeStr = "00:" & .Value Case 3 ' e.g., 735 = 7:35 AM TimeStr = Left(.Value, 1) & ":" & _ Right(.Value, 2) Case 4 ' e.g., 1234 = 12:34 TimeStr = Left(.Value, 2) & ":" & _ Right(.Value, 2) Case Else Err.Raise 0 End Select .Value = TimeValue(TimeStr) End If End With Application.EnableEvents = True Exit Sub EndMacro: MsgBox "You did not enter a valid time" Application.EnableEvents = True ActiveCell.Offset(-1, 0).Select End Sub
Lo primero que hace la macro es verificar si los datos recién ingresados estaban en el rango C7: D15. Si no fue así, la macro sale. También verifica para asegurarse de que solo haya una celda seleccionada y que la celda no esté vacía. Si se cumplen todos estos criterios, la macro verifica la longitud del valor en la celda y lo rellena con ceros iniciales, según sea necesario. Esta macro se basa en una macro que se encuentra en el sitio de Chip Pearson, aquí:
http://cpearson.com/excel/DateTimeEntry.htm
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (2412) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:
link: / excelribbon-Entering_or_Importing_Times_without_Colons [Ingresando o importando tiempos sin dos puntos]
.