google-sheets - hoy - google sheets mes de una fecha
Cadena ISO-8601 hasta la fecha en la celda de Google Sheets (3)
Tengo un montón de cadenas con formato ISO-8601 en una columna de mi hoja. ¿Cómo puedo obtener las hojas de Google para tratarlas como fechas para poder calcularlas (por ejemplo, la diferencia en minutos entre dos celdas)? Intenté solo =Date("2015-05-27T01:15:00.000Z")
pero no me alegro. Tiene que haber una manera fácil de hacer esto. ¿Algún consejo?
Lo encontré mucho más simple de usar =SUM(SPLIT(A2,"TZ"))
Formato yyyy-MM-dd HH:mm:ss.000
para ver el valor de la fecha como ISO-8601 nuevamente.
Para obtener un valor de fecha real que puede formatear utilizando el formato de número normal ...
=DATEVALUE(MID(A1,1,10)) + TIMEVALUE(MID(A1,12,8))
p.ej.
╔═══╦══════════════════════╦════════════════════╗
║ ║ A ║ B ║
╠═══╬══════════════════════╬════════════════════╣
║ 1 ║ 2016-02-22T05:03:21Z ║ 2/22/16 5:03:21 AM ║
╚═══╩══════════════════════╩════════════════════╝
- Asume que las marcas de tiempo están en UTC
- Ignora los milisegundos (aunque se podrían agregar fácilmente)
La función DATEVALUE()
convierte una cadena de fecha formateada en un valor, y TIMEVALUE()
hace lo mismo para los tiempos. En la mayoría de las hojas de cálculo, las fechas y los tiempos están representados por un número donde la parte entera es días desde el 1 de enero de 1900 y la parte decimal es la hora como una fracción del día. Por ejemplo, el 11 de junio de 2009 17:30 es aproximadamente 39975.72917.
La fórmula anterior analiza la parte de la fecha y la parte de la hora por separado, luego las suma.
Prueba esto
=CONCATENATE(TEXT(INDEX(SPLIT(SUBSTITUTE(A1,"Z",""),"T"),1),"yyyy-mm-dd")," ",TEXT(INDEX(SPLIT(SUBSTITUTE(A1,"Z",""),"T"),2),"hh:mm:ss"))
Donde A1 puede ser una celda con una cadena con formato ISO-8601 o la propia cadena.