2010-07-20 13 views
10

Tratando de descifrar algunas fórmulas de Excel y veo algunas cosas como SUMPRODUCT (- Izquierda (...) ...)¿Qué ocurre en Excel?

¿Qué es - hacer? Naturalmente, me parece decreciente, pero no pude encontrar ninguna documentación sobre él.

Gracias.

Respuesta

14

El tablero doble se conoce como operador unario doble.

tratar este enlace: Why use -- in SUMPRODUCT formulae

Específicamente:

SUMPRODUCT() ignora entradas no numéricos. Una comparación devuelve un valor booleano (VERDADERO/FALSO), que no es numérico. XL coacciona automáticamente valores booleanos a valores numéricos (1/0, respectivamente) en operaciones aritméticas (por ejemplo, TRUE + 0 = 1).

La forma más eficaz de forzar el valor es aplicar primero el operador unario negativo, forzando TRUE/FALSE a -1/0, y luego aplicarlo de nuevo para anular el valor, por ejemplo, +1/0.

un solo operador unario (-) coacciona verdadero/falso valores en -1/0. Al utilizar el operador unario doble, forzamos los valores nuevamente a 1/0.

4

El operador unario (-) es un método abreviado para convertir un enunciado verdadero/falso en -1/0.

un solo operador convertirá - (verdadero) en -1, por lo que un operador doble unario se utiliza para convertir que de nuevo en 1:

-(-(true)) = -(-(1)) = 1 
-(-(false)) = -(-(0)) = 0 
0

He estado usando SUMPRODUCT por un tiempo y tengo siempre utilizó el símbolo * en lugar del --. Estoy seguro de que hice la misma pregunta que me hizo, pero no recuerdo la razón por la que me dieron, pero me dijeron que realmente no era necesario -- ya que sumproducto se manejaba muy bien sin él.

De todos modos, =sumproduct(()*()*()*()) siempre ha funcionado para mí, y es menos confuso.

+0

- puede forzar una sola matriz a la vez. – Noumenon

0

Los valores booleanos TRUE y FALSE en excel se tratan como 1 y 0, pero tenemos que convertirlos. Para convertirlos en números 1 o 0, realice alguna operación matemática. El operador Unario niega el booleano (operación matemática), por lo tanto, convierte el valor booleano en número. Lo mismo funciona en TRUE * FALSE = 0

Cuestiones relacionadas