¿Existe una fórmula concisa de Excel para calcular (A1 * A6) + (B1 * B6) + (C1 * C6) ...?


45

Quiero saber cómo dar una fórmula concisa para la siguiente fórmula larga en la hoja de Excel:

= (A1*A6)+(B1*B6)+(C1*C6)...

¿Utilizo una función de suma o hay otra función para esto? Creo que usar el colon con la SUMfunción debería ayudar, pero no sé cómo usarlo.




77
Matemáticamente, esto se conoce como el producto punto o el producto escalar. Términos útiles si alguna vez necesita usar su motor de búsqueda favorito.
Philip Kendall

producto interno: Por lo general, transpondríamos este problema para que uno lo hiciera (A1 * B1 + A2 * B2 + C3 * B3 ....) .... Por supuesto, esto es solo una notación ...
JosephDoggie

Respuestas:


110

Está buscando la función SUMPRODUCT .

=SUMPRODUCT(A1:C1,A6:C6)

Esto devolverá la suma de los productos de los artículos correspondientes en dos (o más) rangos.

ingrese la descripción de la imagen aquí

Como puede ver en la documentación de Microsoft a la que he vinculado, los rangos no necesitan ser filas individuales o columnas individuales (aunque deben tener las mismas dimensiones).

SUMPRODUCT puede multiplicar valores de hasta 255 rangos diferentes. Por ejemplo =SUMPRODUCT(A1:C1,A6:C6,A11:C11)es lo mismo que =A1*A6*A11+B1*B6*B11+C1*C6*C11.


19

SUMLa función no funcionará ya que solo agrega los elementos. Debe multiplicar los valores antes de pasar a SUM como=SUM(A1*A6, B1*B6, C1*C6, D1*D6, E1*E6)

Por supuesto, también puede usar lo =A1*A6 + B1*B6 + C1*C6 + D1*D6 + E1*E6que resulta en casi el mismo esfuerzo de escrituraSUM

Hay muchas mejores soluciones. Una forma es usar la fórmula de matriz . Puedes ver un ejemplo exacto como el tuyo allí:

Sintaxis de la fórmula de matriz

En general, las fórmulas de matriz usan la sintaxis de fórmula estándar. Todos comienzan con un signo igual (=), y puede usar la mayoría de las funciones integradas de Excel en sus fórmulas de matriz. La diferencia clave es que cuando usa una fórmula de matriz, presiona Ctrl+ Shift+ Enterpara ingresar su fórmula. Cuando hace esto, Excel rodea su fórmula de matriz con llaves: si escribe las llaves manualmente, su fórmula se convertirá en una cadena de texto y no funcionará.

Las funciones de matriz son una forma realmente eficiente de crear una fórmula compleja. La fórmula de la matriz =SUM(C2:C11*D2:D11)es la misma que esta:

=SUM(C2*D2,C3*D3,C4*D4,C5*D5,C6*D6,C7*D7,C8*D8,C9*D9,C10*D10,C11*D11).

Para usar la fórmula de matriz en su caso, puede escribir (por supuesto, debe cambiar el último elemento de la matriz en consecuencia)

=SUM(A1:E1*A6:E6)

y luego presione Ctrl+ Shift+Enter


La fórmula de matriz es una herramienta muy poderosa. Sin embargo, úselo con cuidado. Cada vez que necesite editarlo, no debe olvidar presionar Ctrl+ Shift+Enter

¿Por qué usar fórmulas de matriz?

Si tiene experiencia en el uso de fórmulas en Excel, sabe que puede realizar algunas operaciones bastante sofisticadas. Por ejemplo, puede calcular el costo total de un préstamo durante un número determinado de años. Puede usar fórmulas de matriz para realizar tareas complejas, como:

  • Cuente el número de caracteres contenidos en un rango de celdas.

  • Suma solo los números que cumplen ciertas condiciones, como los valores más bajos en un rango o los números que se encuentran entre un límite superior e inferior.

  • Suma cada enésimo valor en un rango de valores.

Las fórmulas de matriz también ofrecen estas ventajas:

  • Consistencia: si hace clic en cualquiera de las celdas desde E2 hacia abajo, verá la misma fórmula. Esa consistencia puede ayudar a garantizar una mayor precisión.

  • Seguridad: no puede sobrescribir un componente de una fórmula de matriz de varias celdas. Por ejemplo, haga clic en la celda E3 y presione Eliminar. Debe seleccionar todo el rango de celdas (E2 a E11) y cambiar la fórmula para toda la matriz, o dejar la matriz como está. Como medida de seguridad adicional, debe presionar Ctrl+ Shift+ Enterpara confirmar el cambio en la fórmula.

  • Tamaños de archivo más pequeños: a menudo puede usar una fórmula de matriz única en lugar de varias fórmulas intermedias. Por ejemplo, el libro de trabajo usa una fórmula de matriz para calcular los resultados en la columna E. Si hubiera usado fórmulas estándar (como = C2 * D2, C3 * D3, C4 * D4 ...), habría usado 11 fórmulas diferentes para calcular Los mismos resultados.

También es más rápido ya que el patrón de acceso ya se conoce. Ahora, en lugar de hacer 11 cálculos diferentes por separado, se puede vectorizar y hacer en paralelo, utilizando múltiples núcleos y unidades SIMD en la CPU


77
Sin embargo, tenga en cuenta que las funciones de matriz son muy frágiles. Si los copia y pega, por ejemplo, las cosas pueden romperse muy mal. Con frecuencia, no se actualizarán correctamente sin una actualización forzada si son muy grandes. Característica excelente y poderosa, pero perspicaz en comparación con las fórmulas regulares.
JKreft

3
@StianYttervik: Creo que la respuesta es útil. ¿Qué pasa si alguien abre una hoja con este tipo de fórmula y nunca la ha visto antes? Esta respuesta sería útil para esos usuarios.
Bad_Bishop

3
La fórmula de matriz @StianYttervik es una herramienta poderosa en la mano correcta. No es lento en absoluto, ya que puede optimizarse y vectorizarse más fácilmente. Y ahorra memoria. Incluso los documentos de Google lo admiten. Y no respondas a esto. No responderé más
phuclv

2
@StianYttervik Ciertas funciones (p MOD. Ej. ) Harán SUMPRODUCTque se rompa, y luego tendrá que reemplazarlo con una fórmula Array. Sin mencionar que todas las versiones de Office lanzadas han agregado fórmulas de matriz más comúnmente utilizadas como funciones oficiales (por ejemplo, MAXIFSen 365) Si su fórmula de matriz es lenta, torpe y se rompe, probablemente necesite optimizar su código. Y, por supuesto, dado que PowerQuery es una extensión de complemento adicional, muchas empresas (por diversos motivos) no lo incluirán en su paquete de compilación corporativa, lo que lo convierte en una solución inferior para fines comerciales distribuidos.
Chronocidal

1
@Chronocidal Sí, hay casos, pero son pocos ... Y luego las consultas de energía son la solución. O el modelo de datos. O funciones de cubo. O todo lo anterior. Las matrices y el cálculo / ejecución fila por fila simplemente no pueden estar a la altura.
Stian Yttervik

7

Otro enfoque es poner en A7 la expresión = A1 * A6 y copiar a la derecha todo lo que desee, luego sumar la fila $ 7 $ para obtener la respuesta final. No lo hace en una celda como desea, pero a veces es útil tener los productos intermedios. He usado ambas versiones. Este se siente más Excel-ish para mí, pero su gusto puede ser diferente.


1

Si coloca la lista de números en columnas en lugar de filas (digamos dos columnas A y B), puede usar la función = Sumproduct (A: A, B: B) de esa manera. le dará el producto de tantos números como haya en las columnas A y B.

Puede usar tantas columnas en la función Sumproduct como necesite


2
Sumproduct (1: 1,2: 2) también funciona de la misma manera para las filas.
Máté Juhász

0

Si no hay nada más en las filas 1 y 6 que no sea para lo que desea tener una SUMPRODUCT(), puede usar la idea mencionada en este comentario . En su caso, como se describe en su pregunta, usaría=SUMPRODUCT(1:1,6:6)


44
En realidad, esto no brinda información adicional sobre lo que ya se ingresó en las respuestas y comentarios.
Máté Juhász

1
@ MátéJuhász - ¿Qué respuesta proporciona mi respuesta? Su comentario a la respuesta proporcionada por @AjayC da SUMPRODUCT(1:1,2:2)y yo proporcioné una respuesta basada en ese comentario explicando cómo se puede usar en función de la pregunta original y cuál sería la limitación.
Chris Rogers
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.