BITOR (OR bit a bit)

Un usuario Pregunto ✅

greg_deckler

En mi búsqueda reciente para crear o catalogar tantos equivalentes DAX para funciones de Excel, wCon DEC2BIN y BIN2DEC resueltos, podemos implementar una función OR bit a bit, BITOR:

BITOR = 
    VAR __Decimal1 = SELECTEDVALUE('Decimal1'[Decimal1],0)
    VAR __Decimal2 = SELECTEDVALUE('Decimal2'[Decimal2],0)
RETURN
    SWITCH(TRUE(),
        __Decimal1 = 0,__Decimal2,
        __Decimal2 = 0,__Decimal1,
            VAR __Table1 = 
                ADDCOLUMNS(
                    GENERATESERIES(0,LOG(__Decimal1,2),1),
                    "Bit",MOD(TRUNC(__Decimal1 / POWER(2,[Value])),2)
                )
            VAR __Table2 = 
                ADDCOLUMNS(
                    GENERATESERIES(0,LOG(__Decimal2,2),1),
                    "Bit",MOD(TRUNC(__Decimal2 / POWER(2,[Value])),2)
                )
            VAR __Table =
                ADDCOLUMNS(
                    ADDCOLUMNS(
                        GENERATESERIES(0,MAXX({ COUNTROWS(__Table1), COUNTROWS(__Table2) },[Value]) - 1),
                        "Or",IF(
                                OR(
                                    MAXX(FILTER(__Table1,[Value] = EARLIER([Value])),[Bit]),
                                    MAXX(FILTER(__Table2,[Value] = EARLIER([Value])),[Bit])
                                ),1,0
                            )
                    ),
                    "Decimal",POWER(2,[Value]) * [Or]
                )
        RETURN
            SUMX(__Table,[Decimal])
    )

NOTA: No admite números negativos, pero ¿y qué? Tampoco funciona la función BITOR de Excel.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *