Fórmula de Excel para convertir valores booleanos en {0, 1}

25

¿Cuál es la fórmula de Excel para convertir los valores booleanos {FALSE, TRUE}en {0, 1}?

Suponiendo que haya uno más corto que =IF(cond,1,0).

anol
fuente
1
Curiosamente, =a1+a2devolverá la suma numérica de las lógicas, pero =sum(a1:a2)no lo hará. Excel 2013.
Carl Witthoft

Respuestas:

37

Podrías hacerlo fundiendo. La función "int" se redondea al entero más cercano. Si el valor booleano está en A1, la fórmula sería:

=INT(A1)
dangowans
fuente
Similar a esto, =ROUND(A1,0)hace lo mismo en este contexto.
dangowans
O=CEILING(A1,1)
dangowans
Gracias, el elenco era la forma "estándar" que estaba buscando. No me ocurrió probar que, en realidad estaba esperando a ser "más duro" ...
anol
13

--es la forma más común de convertir booleanos en int; es por eso que ves las funciones que tienen --en ellos por esta misma razón. convertirá una matriz de {TRUE, FALSE, FALSE} en {1,0,0} que se pueden usar para multiplicar otras matrices

Ejemplo:

devolviendo las ventas totales de la región que es 9 o menos:

Equipo de ventas
1 $ 20
2 $ 30
11 $ 90

fórmula:

=SUMPRODUCT(--(A2:A4<=9),B2:B4)

Cálculo

=SUMPRODUCT(--(True,True,False),($20,$30,$90))
=SUMPRODUCT((1,1,0),($20,$30,$90))
=1 * $20 + 1 * $30 + 0 * $90
=$20 + $30 + $0
=$50
SeanC
fuente
@ fixer1234, ¿eso edita la ayuda?
SeanC
Había visto en la web el --método, pero debo admitir que usar la fórmula INTes mucho más claro y elegante. :)
loved.by.Jesus
7

Multiplique por '1'. ex. Verdadero * 1 = 1 y falso * 1 = 0.

Por ejemplo, si la celda A1 contiene el valor booleano, en una celda vecina, ingrese la fórmula:

=A1*1

Nota: --Verdadero, verdadero + 0 y verdadero / 1 tienen el mismo efecto.

usuario142485
fuente
Esto no es necesariamente más legible, pero es "más corto" que la fórmula en la pregunta.
dangowans
Eso es bueno. ¿Pero eso significa que no hay una fórmula integrada para la conversión? ¿Algo como "BOOLVAL" o "BOOLINT"?
anol
Eso es bastante útil, pero estaba buscando una solución más "adecuada" como la de @ dangowans, así que aceptaré su solución. ¡Gracias de cualquier manera!
anol
Ambas respuestas funcionan según el mismo principio: la aplicación de una operación numérica a un valor booleano devolverá una respuesta numérica.
Excellll