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
Syndicate_Admin
Administrator
Administrator

Ayuda con la creación de una tabla a partir de la tabla existente

Hola, chicos

Tengo una tabla en mi conjunto de datos 'WorkItems Bloqueado (desde el 1 de enero 20) - No editar' que se ve así:

Screenshot 2021-02-28 at 17.53.41.png

Sólo quiero extraer esas filas para WorkItemID que tenían un TagNames que contenía la palabra 'Block' OR donde el WorkItemID tenía una columna Bloqueada que contenía 'Sí' (así como las veces que era 'No' para ese WorkItemID respectivo).

Anteriormente, cuando lo usaba solo para TagNames, tenía lo siguiente:

WorkItemsBlocked = 
FILTER (
    'WorkItems Blocked (since 1st Jan 20) - Do Not Edit',
    CALCULATE (
        COUNT ( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[TagNames] ),
        SEARCH ( "Block", 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[TagNames], 1, 0 ) > 0,
        ALLEXCEPT ( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit', 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[WorkItemId] )
    ) > 0
)

Pero no estoy seguro de cómo tener en cuenta tanto los TagNames que contienen bloqueados como los Bloqueados que contienen Sí.

¿Algún consejo?

2 ACCEPTED SOLUTIONS

No @FlowViz,

Gracias por el archivo de ejemplo, consulte la fórmula de tabla calculada a continuación

Sample Table = 
var filterTable = 
    CALCULATETABLE(
        VALUES( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[WorkItemId]), 
        FILTER('WorkItems Blocked (since 1st Jan 20) - Do Not Edit', 
        SEARCH("block", 
            'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[TagNames],1,0)>0 
            || lower( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[Blocked]) = "yes")
        )
return
CALCULATETABLE(
    'WorkItems Blocked (since 1st Jan 20) - Do Not Edit',  'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[WorkItemId] in filterTable, 
    lower( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[Blocked]) = "no" || lower( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[Blocked]) = "yes" 
    )

crea la siguiente tabla

richbenmintz_0-1614539547048.png

Gracias

View solution in original post

No @FlowViz,

añadido un adicional o condición

WorkItemsBlocked2 = 
VAR filterTable =
    CALCULATETABLE (
        VALUES ( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[WorkItemId] ),
        FILTER (
            'WorkItems Blocked (since 1st Jan 20) - Do Not Edit',
            SEARCH (
                "Block",
                'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[TagNames],
                1,
                0
            ) > 0
                || LOWER ( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[Blocked] ) = "yes"
        )
    )
RETURN
    CALCULATETABLE (
        FILTER (
            'WorkItems Blocked (since 1st Jan 20) - Do Not Edit',
            'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[WorkItemId]
                IN filterTable
                    &&( (
                        SEARCH (
                            "Block",
                            'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[TagNames],
                            1,
                            0
                        ) > 0
                            || LOWER ( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[Blocked] ) = "yes"
                    )
                    || LOWER ( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[Blocked] ) = "no"
                    || LOWER ( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[Blocked] ) = "")
        )
    )

richbenmintz_0-1614914424711.png

View solution in original post

13 REPLIES 13
Syndicate_Admin
Administrator
Administrator

¡Increíble! ¡Gracias, esto parece hacer el truco!

Syndicate_Admin
Administrator
Administrator

Para mayor claridad, la nueva tabla debe tener cualquier identificador de elemento de trabajo que haya tenido un TagNames que contenga "block" y el historial asociado (cada fila es el historial de cambios en un elemento) o cualquier identificador de elemento de trabajo que haya tenido un valor bloqueado de "Sí" y el historial asociado de la tabla original - WorkItems Blocked (desde el 1 de enero 20) - No editar

No @FlowViz,

Gracias por el archivo de ejemplo, consulte la fórmula de tabla calculada a continuación

Sample Table = 
var filterTable = 
    CALCULATETABLE(
        VALUES( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[WorkItemId]), 
        FILTER('WorkItems Blocked (since 1st Jan 20) - Do Not Edit', 
        SEARCH("block", 
            'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[TagNames],1,0)>0 
            || lower( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[Blocked]) = "yes")
        )
return
CALCULATETABLE(
    'WorkItems Blocked (since 1st Jan 20) - Do Not Edit',  'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[WorkItemId] in filterTable, 
    lower( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[Blocked]) = "no" || lower( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[Blocked]) = "yes" 
    )

crea la siguiente tabla

richbenmintz_0-1614539547048.png

Gracias

¡Muchas gracias!

feliz de ayudar

Acabo de hacer otra comprobación con otro conjunto de datos donde sólo utilizan la etiqueta de "bloqueado" y no utilizan bloqueado "sí" y obtendo una tabla en blanco que no es correcta.

He adjuntado este vínculo al archivo/conjunto de datos que menciono, esto debería tener datos, ya que tienen elementos donde se usa 'bloqueado' en TagNames...

No @FlowViz,

Lo sentimos por el retraso, aquí está la consulta de tabla actualizada, cambió la lógica en el filtro de tabla devuelto a incluidas ('bloqueada' o 'sí') o 'no' filas

WorkItemsBlocked2 =
VAR filterTable =
    CALCULATETABLE (
        VALUES ( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[WorkItemId] ),
        FILTER (
            'WorkItems Blocked (since 1st Jan 20) - Do Not Edit',
            SEARCH (
                "Blocked",
                'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[TagNames],
                1,
                0
            ) > 0
                || LOWER ( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[Blocked] ) = "yes"
        )
    )
RETURN
    CALCULATETABLE (
        FILTER (
            'WorkItems Blocked (since 1st Jan 20) - Do Not Edit',
            'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[WorkItemId]
                IN filterTable
                    && (
                        SEARCH (
                            "Blocked",
                            'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[TagNames],
                            1,
                            0
                        ) > 0
                            || LOWER ( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[Blocked] ) = "yes"
                    )
                    || LOWER ( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[Blocked] ) = "no"
        )
    )

Espero que esto ayude,

Así que eso está llegando. Todavía parece faltar filas para los elementos que en un momento dado tenían los TagNames 'bloqueados'.

Aquí hay un enlace a la antigua manera/ imagen a continuación de cómo me gustaría que fuera:

Screenshot 2021-03-03 at 21.05.19.png

Aquí hay un enlace a la nueva forma/imagen de cómo se ve actualmente:

Screenshot 2021-03-03 at 21.05.33.png

Así que aquellas 2 ocasiones en las que TagNames estaba en blanco/sin contener Bloqueado necesitan estar allí. ¿Se puede hacer eso?

No @FlowViz,

añadido un adicional o condición

WorkItemsBlocked2 = 
VAR filterTable =
    CALCULATETABLE (
        VALUES ( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[WorkItemId] ),
        FILTER (
            'WorkItems Blocked (since 1st Jan 20) - Do Not Edit',
            SEARCH (
                "Block",
                'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[TagNames],
                1,
                0
            ) > 0
                || LOWER ( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[Blocked] ) = "yes"
        )
    )
RETURN
    CALCULATETABLE (
        FILTER (
            'WorkItems Blocked (since 1st Jan 20) - Do Not Edit',
            'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[WorkItemId]
                IN filterTable
                    &&( (
                        SEARCH (
                            "Block",
                            'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[TagNames],
                            1,
                            0
                        ) > 0
                            || LOWER ( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[Blocked] ) = "yes"
                    )
                    || LOWER ( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[Blocked] ) = "no"
                    || LOWER ( 'WorkItems Blocked (since 1st Jan 20) - Do Not Edit'[Blocked] ) = "")
        )
    )

richbenmintz_0-1614914424711.png

Una pregunta más: ¿qué pasa con una instancia en la que no hay ninguna columna "Bloqueada" en la tabla de origen? He encontrado casos en los que este puede ser el caso... ¿Podría la tabla calculada explicar esto?

Syndicate_Admin
Administrator
Administrator

Claro, .pbix archivo aquí

Syndicate_Admin
Administrator
Administrator

No @FlowViz,

Me burlé de algunos datos de muestra, así que esto puede no ser perfecto, pero creo que el proceso es válido

- crear una variable con todos los workitemids que contienen etiquetas bloqueadas y están bloqueados es igual a sí

- filtrar la tabla por la tabla variable donde se bloquea = sí o no

Sample Table = 
var filterTable = CALCULATETABLE(VALUES('Table'[WorkItemId]), FILTER('Table', SEARCH("blocked", 'Table'[TagName],1,0)>0 && lower('Table'[Blocked]) = "yes"))
return
CALCULATETABLE('Table', 'Table'[WorkItemId] in filterTable, lower('Table'[Blocked]) = "no" || lower('Table'[Blocked]) = "yes" )

Espero que esto funcione para ti

Syndicate_Admin
Administrator
Administrator

No @FlowViz,

¿Puede proporcionar los datos como una tabla, hará las cosas mucho más fácil para la comunidad para ayudar.

Gracias

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.