Excel horizontal solo suma de una matriz (matriz)


0

Tengo una fórmula que genera un resultado de matriz 2D. Por ejemplo:

{=ROW(4:6)^TRANSPOSE(ROW(1:3))}

(Excel agrega los corchetes al presionar CTRL+ SHIFT+ ENTER )

Necesito sumar solo los elementos horizontales de la matriz (luego determinaré el máximo de estas sumas).

Si lo intento:

{=SUM(ROW(4:6)^TRANSPOSE(ROW(1:3)))}

Obtengo la suma total, pero lo que necesito es una fórmula de matriz que genere un resultado de matriz que contenga una columna (vertical) de la suma de cada fila. Me imagino algo como:

{=HORIZONTALSUM(ROW(4:6)^TRANSPOSE(ROW(1:3)))}

Lo cual, en mi ejemplo simple, contendría una matriz vertical de (24; 30; 36) Entonces podría obtener el máximo fácilmente con:

{=MAX(HORIZONTALSUM(ROW(4:6)^TRANSPOSE(ROW(1:3))))}

Y devuelve 36 como en mi caso de ejemplo.

Me doy cuenta de que podría escribir un UDF para hacer esto fácilmente, pero los UDF no son lo suficientemente portátiles, así que estoy buscando una solución nativa.

Respuestas:


1

¿Hace esto lo que quieres?

=MAX(ROW(4:6)*SUM(ROW(1:3)))

confirmar con CTRL+ SHIFT+ENTER

Si suma la segunda matriz, puede usarla para multiplicar la primera matriz porque será lo mismo que multiplicar los valores individualmente y luego sumar los resultados.

Editar: dados sus comentarios si la matriz inicial es fija, entonces puede usar una MMULTfunción como esta

=MAX(MMULT(ROW(4:6)*TRANSPOSE(ROW(1:3)),{1;1;1}))

el {1;1;1}cambiaría dado el número de columnas en la primera matriz


No. Mi fórmula de matriz de ejemplo es para proporcionar fácilmente una matriz. Mi fórmula actual es complicada y no se puede dividir de esta manera. Es lo primero que miré intentando también. Intentaré generar una matriz de ejemplo que claramente tenga las mismas limitaciones.
Mr Purple

Ahora he editado la fórmula de ejemplo para que represente con mayor precisión la esencia de las limitaciones con las que tengo que lidiar.
Mr Purple

También
edité

Agradable. Veo que en lugar de {1; 1; 1} podría hacer (ROW (1: N) ^ 0) donde N es el número de filas que quiero sumar.
Mr Purple

Tenga en cuenta que las "filas en la primera matriz" corroen a las columnas de la matriz que queremos sumar horizontalmente. Además, si usa la fórmula ROW (1: N) ^ 0, deberá usar INDIRECT si desea cambiar el número de N dinámicamente usando el valor en una referencia de celda. es decir, ROW (INDIRECT ("1:" & N)) ^ 0) donde N es una referencia o fórmula que contiene el número de columnas que desea sumar
Mr Purple

0

Post-multiplica tu matriz por una columna-vector de unos:

{= MMULT (themat, {1; 1; 1})}

donde themat es una referencia con nombre para su matriz.

Punta de sombrero para:

https://stackoverflow.com/questions/50565859/sum-rows-or-columns-of-a-2d-matrix-into-a-1d-array-in-an-excel-formula

PD: el ejemplo dado en la pregunta no se ejecuta en Excel.

PPS: esencialmente la misma solución se dio en una respuesta anterior, aunque su esencia se enterró en un intento de aclarar la entrada del OP.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.