En una hoja de cálculo de Excel tengo entradas de texto ,,,, H23
etc. y quiero sumar las partes numéricas de estas, es decir ,,,, .w67
P45
23
67
45
tengo la formula
=SUMPRODUCT((0&MID($H2:$S2,1+ISERROR(LEFT($H2:$S2)+0),10))+0)
que hace el trabajo, pero no estoy seguro de lo que hace y detesto usarlo sin entenderlo completamente. ¿Alguien puede explicar la fórmula?
Respuesta1
Comience con una fórmula de una sola celda para evitar confusiones.
=SUMPRODUCT((0&MID($H2,1+ISERROR(LEFT($H2)+0),10))+0)
- Todos sus datos de muestra comienzan con una letra, pero deben
ISERROR(LEFT($H2:$S2)+0)
buscar un número o una letra como primer carácter y agregar1si es una carta. Elfunción IZQUIERDAEl valor predeterminado es un único carácter situado más a la izquierda y se considera VERDADERO.1y FALSO es0. Si el carácter más a la izquierda es alfabético, se generará un error al usarlo en cualquier operación matemática (p. ej.<personaje>+ 0) entonces1se agregará a la1en elnúmero_inicioparámetro de lafunción mediay comenzará en2. Si no se genera ningún error entonces0se agregará a la1en elnúmero_inicioparámetro. - El10es el número máximo de caracteres que la función MID intentará recuperar. Puede haber menos disponibles y los recuperará.
- Si no hay ningún número, elFunción SUMAPRODUCTOse va a ahogar al intentar convertir una cadena de longitud cero (esencialmente en blanco) en un número. Para protegerse contra esto, un0va precedido del resultado devuelto por la operación MID.
- El resultado de la operación MID (y el adjunto0) es una cadena, no un número. Siempre que todo haya ido bien, el resultado debería ser todo dígitos. Una cadena que contiene todos los dígitos se puede convertir en un número verdadero sin cambiar su valor numérico multiplicando por1o agregando0. por ejemplo, si agrega0a"123"obtienes un número real de123.
Esas son todas las operaciones internas. Todo lo que tiene que hacer es expandir esto a varias columnas y permitir el procesamiento de matrices con elFunción SUMAPRODUCTOcomo envoltorio.
=SUMPRODUCT((0&MID($H2:$S2,1+ISERROR(LEFT($H2:$S2)+0),10))+0)
Con las columnas bloqueadas como absolutas pero las filas restantes relativas, complete las filas siguientes.