Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
zudar
Post Patron
Post Patron

Inverso de FIRSTNONBLANK

Hola a todos

Estoy buscando una manera de recuperar un valor en blanco de una lista de valores, si hay un valor en blanco en la lista. Algo así como el inverso de FIRSTNONBLANK, así que me gustaría obtener FIRSTBLANK.

Lo usaré en una fórmula como (nueva columna en la Tabla1):

Lookup Blanks =
CALCULATE (
FIRSTBLANK ( Table2[Value]),
FILTER ( ALL ( Table2 ), Table2[LookupID] = Table1[UniqueID] )
)

¿Alguna idea de cómo hacer esto?

El objetivo es crear una hoja que compruebe si hay valores en blanco que deben rellenarse, no es necesario saber de qué Table2[LookupID] se trata, solo si hay algo que no se rellena para un Table2[LookupID]. Un Table1[UniqueID] puede tener varios Table2[LookupID].

6 REPLIES 6
v-zhenbw-msft
Community Support
Community Support

No @zudar,

Necesitamos crear dos columnas en Table2, luego podemos crear la columna de resultado en Table1.

1. Cree dos columnas para juzgar si el ID tiene un espacio en blanco.

Judge blank = 
IF(
    Table2[Value]=BLANK(),0,1)

ifisblank = CALCULATE(MIN(Table2[Judge blank]),FILTER(Table2,Table2[LookupID]=EARLIER(Table2[LookupID])))

inverse1.jpg

2. Luego podemos crear la columna de resultados en Tabla1.

Column = 
VAR _sum =
    CALCULATE (
        SUM ( Table2[ifisblank] ),
        FILTER ( Table2, Table2[LookupID] = Table1[UniqueID] )
    )
RETURN
    IF (
        ISBLANK ( _sum ),
        "No values found",
        IF (
            _sum = 0,
            "Contains empty value",
            CONVERT (
                CALCULATE (
                    MIN ( Table2[Value] ),
                    FILTER ( Table2, Table2[LookupID] = Table1[UniqueID] )
                ),
                STRING
            )
        )
    )

inverse2.jpg

Nota: el tipo de la columna es TEXTO.

Saludos

Equipo de apoyo a la comunidad _ zhenbw

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

BTW, pbix como adjunto.

zudar
Post Patron
Post Patron

@v-zhenbw-msft

Gracias por su respuesta.

Veo que podría explicarme mejor. He intentado usar tu solución, pero no es exactamente lo que estoy buscando. Lo que me gustaría ver es lo siguiente:

Tabla 1:

Uniqueid

A

B

C

D

E

Tabla 2:

LookupID, Valor

A, 1

A, 2

A, nulo
B, 2

C, 1

C, 3

C, 2

D, nulo

Tabla 1 con la columna de resultado deseada:

UniqueID, Resultado

A, Contiene el valor vacío!

B, 2

C, 1

D, Contiene el valor vacío!

E, ¡No se han encontrado valores!

Así que Table1[Result] es una columna calculada que devuelve 3 resultados posibles (y en este orden de prioridad):

  • En primer lugar, si no hay coincidencias en la Tabla 2, da '¡No se han encontrado valores!'
  • En segundo lugar, si uno de los valores coincidentes buscados está vacío, da 'Contiene el valor vacío!'
  • En tercer lugar, si se rellenan todos los valores coincidentes de búsqueda, proporcione el valor mínimo.

Espero que esto lo haga más comprensible. ¡Gracias por tu ayuda!

Hola

Escriba esta fórmula de columna calculada en la Tabla1

Calculated Column 1 = if(ISBLANK(CALCULATE(COUNTROWS(Table2),FILTER(Table2,Table2[LookupID]=EARLIER(Table1[UniqueID])))),"No value found",if(CALCULATE(COUNTBLANK(Table2[Value]),FILTER(Table2,Table2[LookupID]=EARLIER(Table1[UniqueID])))>0,"Contains blank",convert(CALCULATE(min(Table2[Value]),FILTER(Table2,Table2[LookupID]=EARLIER(Table1[UniqueID]))),string)))

Espero que esto ayude.

Untitled.png


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
v-zhenbw-msft
Community Support
Community Support

No @zudar,

¿Quiere decir que obtiene el valor mínimo cuando la columna Búsqueda está en blanco? Por ejemplo, necesitamos mostrar el 1 en tres filas en blanco.

inverse1.jpg

En caso afirmativo, debe crear una medida.

Measure = 
CALCULATE(MIN(Table1[value]),Table1[Lookup]=BLANK())

Si no cumple con sus requisitos, ¿podría proporcionar una muestra de maqueta basada en datos falsos o describir los campos de cada tabla y las relaciones entre tablas simplemente?

Será útil si puede mostrarnos el resultado esperado exacto basado en las tablas.

Cargue sus archivos en OneDrive para la Empresa y comparta el enlace aquí. Por favor, no contenga ninguna Información Confidencial o Datos Reales en su respuesta.

Saludos

Equipo de apoyo a la comunidad _ zhenbw

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Syndicate_Admin
Administrator
Administrator

El primer paso sería encontrar todos aquellos con valores en blanco. A partir de ahí encontrar el primer valor que estás buscando (no está exactamente claro lo que es).

No estoy seguro de lo que estás consiguiendo.

En este momento, estoy usando:

Lookup =
CALCULATE (
MIN( Table2[Value]),
FILTER ( ALL ( Table2 ), Table2[LookupID] = Table1[UniqueID] )
)

Sin embargo, esta medida no me informa si hay un Table2[Value] en blanco para un solo Table1[UniqueID].. simplemente devuelve el número más bajo (usando MIN(...)). Quiero priorizar el valor en blanco, y después de eso mostrar el número más bajo.

¿Tiene sentido?

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.