¿Cómo devuelvo el valor máximo de varios valores en una sola celda?

¿Cómo devuelvo el valor máximo de varios valores en una sola celda?

Tengo algunas celdas en mi hoja de cálculo que tienen varias fechas separadas por un punto y coma ;.

Después de buscar en Google, descubrí que TEXTSPLITprobablemente sea la mejor fórmula para dividir esto, pero produce varias columnas de datos. Espero comparar los valores dentro de la celda antes de que se separen y devuelvan un valor que sea el mayor del grupo.

es posible? Una cosa en la que acabo de pensar es en tener una máquina un poco complicada que divide los valores en una hoja separada y otra fórmula que toma el valor máximo de esas filas. Me gustaría evitar el uso de varias hojas si puedo.

Aquí está el ejemplo: Ejemplo de fórmula TextSplit

Respuesta1

Si he entendido correctamente, entonces la siguiente fórmula debería funcionar:

ingrese la descripción de la imagen aquí


  • Fórmula utilizada en la celda.B1

=MAX(--TEXTSPLIT(A1,"; "))

O usar BYROW()para obtener toda la salida una vez, ¡sin completarla!

ingrese la descripción de la imagen aquí


=BYROW(A1:A3,LAMBDA(α, MAX(--TEXTSPLIT(α,"; "))))

Con los datos de muestra existentes, la fórmula anterior también funciona y aquí hay una demostración de muestra.

ingrese la descripción de la imagen aquí


Explicaciones:

  • Uso de TEXTSPLIT()la función: ayuda a dividir las cadenas por el delimitador semi-colon with a space--> ;en columnas. (Consulte lo .gifque se muestra).

Dado que es una función que se incluye en la biblioteca de funciones.Textopor lo tanto, uno puede darse cuenta de que cuando se usa dividirá las cadenas de fechas como texto, lo que crea un problema para futuras manipulaciones de datos (Nota: En Excel las fechas y horas se almacenan como números, por lo tanto la parte entera representa las fechas mientras que la decimal es la hora de la fecha.)

Por lo tanto, como lo menciona el usuario en OP, DATEVALUE()se puede convertir a fechas verdaderas o usando double unary, sumando, 0multiplicando o 1buceando 1, lo que eventualmente convierte.


  • Una vez hecho lo anterior, podemos envolverlo dentro de MAX()la función para devolverúltimo/mayor/máximo/más alto(lo que convenga decir) fecha.

Razones:

Por qué el usuario obtenía 0mientras usaba la fórmula proporcionada por mí, mientras obtenía el resultado respectivo usando DATEVALUE(), para explicar, la captura de pantalla lo aclara.

ingrese la descripción de la imagen aquí


  • El usuario estaba usando el delimitador solo punto y coma ;mientras yo usaba punto y coma y un espacio;
  • Entonces, cuando se envolvía MAX()con el doble unario, devolvía un error, ya que solo convertía el primero en un número, mientras que el segundo devolvía un error porque tenía un espacio inicial. Pero el que tiene un punto y coma delimitador y un espacio debería funcionar, consulte las capturas de pantalla.

ingrese la descripción de la imagen aquí


  • Al usar DATEVALUE()la función, se ocupa del espacio inicial y lo convierte en un número y, por último, envolverlo dentro MAX()proporciona el resultado deseado. Se han mencionado formas alternativas al principio usando ;, y otra forma de lidiar con esto es usarTRIM()

=MAX(--TRIM(TEXTSPLIT(A3,";")))

Respuesta2

no lo he probadola respuesta proporcionada por @MayukhBhattacharya, pero agradezco la información proporcionada, así que le di la respuesta a ese usuario.

Determiné que las respuestas debían cambiarse a DateValue, así que inserté la fórmula DATEVALUE entre las fórmulas MAX y TEXTSPLIT.

La fórmula que utilicé fue:

=MAX(DATEVALUE(TEXTSLIT(A2, ";")))

Vea el ejemplo a continuación:

Incert DATEVALUE en la fórmula

Asegúrese de formatear la celda usando el campo de fecha corta.

información relacionada