Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Esta es una continuación de la publicación anterior: Resuelto: Re: Ayuda con la suma agrupada - Microsoft Power BI Community
Tengo estas dos tablas A y B.
Todos ConsumerIdtaskcodes en la tabla A también están en la tabla B.
Enlaces a CSV A y B:
https://drive.google.com/file/d/1-PquFaIlYsS_qeY-D1D1uiwXl2NZSUH8/view?usp=sharing
https://drive.google.com/file/d/1_pOz3eAUAxr5-tAdXAeZxrXwPbRLVQOE/view?usp=sharing
Hay algunos consumerIdtaskcode en B pero no en A.
La tabla B tiene la columna confidencescores, pero la tabla A no.
La tarea fisrt es crear una medida para contar el ConsumerIdTaskcode en la tabla B con puntuación de confianza (agregada por ConsumeridTaskcode) por encima de un threshhold (por ejemplo, 71). La medida siguiente trabaja para ésa:
Contar más de 71 =
COUNTROWS (
FILTRO (
VALORES ( 'informe ConsumerTaskCodes' [ConsumerIdTaskcode] ),
CALCULAR ( SUMA ( 'report ConsumerTaskCodes'[confidenceScore] ) ) > 71
)
)
Resultado de la Tabla B
Pregunta 1:
Aquí está mi siguiente tarea:
Identifique y cree una medida para determinar SOLO el recuento distinto de ConsumerIdtaskcodes en la tabla A que también están en B con confidencescore (en B) por encima de 71.
La respuesta debe ser 2: De la Tabla A
Resultado de la tabla A
Pregunta 2. Por extensión, cree un cálculo de dax para
Enumere los códigos que están en la tabla B pero no en A (todavía con Confidencescore > 71.
Enlaces a CSV A y B:
https://drive.google.com/file/d/1-PquFaIlYsS_qeY-D1D1uiwXl2NZSUH8/view?usp=sharing
https://drive.google.com/file/d/1_pOz3eAUAxr5-tAdXAeZxrXwPbRLVQOE/view?usp=sharing
Solved! Go to Solution.
@Olajumi Pregunta 1:
Count Over 71 Distinct =
VAR __TableA = DISTINCT('dataTableA'[ConsumerIdTaskcode])
VAR __TableB =
SELECTCOLUMNS(
FILTER(
SUMMARIZE(
'report ConsumerTaskCodes',
[ConsumerIdTaskcode],
"__Confidence",SUM('report ConsumerTaskCodes'[confidenceScore])
),
[__Confidence] > 71
),
"ConsumerIdTaskcode",[ConsumerIdTaskcode]
)
RETURN
COUNTROWS(INTERSECT(__TableA,__TableB))
Pregunta 2:
Count Over 71 Distinct Reverse =
VAR __TableA = DISTINCT('dataTableA'[ConsumerIdTaskcode])
VAR __TableB =
SELECTCOLUMNS(
FILTER(
SUMMARIZE(
'report ConsumerTaskCodes',
[ConsumerIdTaskcode],
"__Confidence",SUM('report ConsumerTaskCodes'[confidenceScore])
),
[__Confidence] > 71
),
"ConsumerIdTaskcode",[ConsumerIdTaskcode]
)
RETURN
COUNTROWS(EXCEPT(__TableB,__TableA))
@Olajumi Probar:
Count Over 71 Distinct Reverse =
VAR __TableA = DISTINCT('dataTableA'[ConsumerIdTaskcode])
VAR __TableB =
SELECTCOLUMNS(
FILTER(
SUMMARIZE(
'report ConsumerTaskCodes',
[ConsumerIdTaskcode],
"__Confidence",SUM('report ConsumerTaskCodes'[confidenceScore])
),
[__Confidence] > 71
),
"ConsumerIdTaskcode",[ConsumerIdTaskcode]
)
VAR __Ids = EXCEPT(__TableB,__TableA)
VAR __Table = FILTER('report ConsumerTaskCodes',[ConsumerIdTaskcode] IN __Ids)
RETURN
CONCATENATEX(__Table,[taskCode],",")
Puede probar esto
Measure =
VAR tbl=SUMMARIZE('dataTableB',dataTableB[ConsumerIdTaskcode],"sum",sum(dataTableB[confidenceScore]))
return COUNTROWS(FILTER(tbl,[sum]>71))
Measure 2 =
VAR tbl=ADDCOLUMNS(SUMMARIZE('dataTableB',dataTableB[ConsumerIdTaskcode],"sum",sum(dataTableB[confidenceScore])),"check",if(maxx(FILTER(dataTableA,dataTableA[ConsumerIdTaskcode]=dataTableB[ConsumerIdTaskcode]),dataTableA[ConsumerIdTaskcode])<>"","Yes"))
return COUNTROWS(FILTER(tbl,[sum]>71&&[check]="Yes"))
@Olajumi Pregunta 1:
Count Over 71 Distinct =
VAR __TableA = DISTINCT('dataTableA'[ConsumerIdTaskcode])
VAR __TableB =
SELECTCOLUMNS(
FILTER(
SUMMARIZE(
'report ConsumerTaskCodes',
[ConsumerIdTaskcode],
"__Confidence",SUM('report ConsumerTaskCodes'[confidenceScore])
),
[__Confidence] > 71
),
"ConsumerIdTaskcode",[ConsumerIdTaskcode]
)
RETURN
COUNTROWS(INTERSECT(__TableA,__TableB))
Pregunta 2:
Count Over 71 Distinct Reverse =
VAR __TableA = DISTINCT('dataTableA'[ConsumerIdTaskcode])
VAR __TableB =
SELECTCOLUMNS(
FILTER(
SUMMARIZE(
'report ConsumerTaskCodes',
[ConsumerIdTaskcode],
"__Confidence",SUM('report ConsumerTaskCodes'[confidenceScore])
),
[__Confidence] > 71
),
"ConsumerIdTaskcode",[ConsumerIdTaskcode]
)
RETURN
COUNTROWS(EXCEPT(__TableB,__TableA))
En la pregunta 2,¿cómo determino los códigos de tarea reales (no ConsumerIdTaskcode) que están en la tabla B pero no en A (todavía con Confidencescore > 71? Aquí es donde me dirigía y pude averiguarlo, pero resultando difícil. Gracias. Creo que primero está bien.
La primera parte de ConsumerIdTaskcode es un número entero (longitud variable) mientras que la otra parte es un texto. Por ejemplo, para ConsumerIdTaskcode 1961L160, el Taskcode es L160. Así que necesito elegir el texto de ConsumerIdTaskcode para representar el Taskcode.
@Olajumi Utilice CONCATENATEX(EXCEPT(__TableB,__TableA), RIGHT([ConsumerIdTaskcode,4),", ") ?
Gracias de nuevo, @Greg_Deckler , ¿podemos informar de esto basado en la columna Taskcode en su lugar? En los datos de la vida real, la parte Taskcode de ConsumerIdTaskcode no siempre tiene 4 caracteres, varía mucho. También lo hace el ConsumerId. Por lo tanto, es más seguro informar de la columna Taskcode independiente.
@Olajumi Probar:
Count Over 71 Distinct Reverse =
VAR __TableA = DISTINCT('dataTableA'[ConsumerIdTaskcode])
VAR __TableB =
SELECTCOLUMNS(
FILTER(
SUMMARIZE(
'report ConsumerTaskCodes',
[ConsumerIdTaskcode],
"__Confidence",SUM('report ConsumerTaskCodes'[confidenceScore])
),
[__Confidence] > 71
),
"ConsumerIdTaskcode",[ConsumerIdTaskcode]
)
VAR __Ids = EXCEPT(__TableB,__TableA)
VAR __Table = FILTER('report ConsumerTaskCodes',[ConsumerIdTaskcode] IN __Ids)
RETURN
CONCATENATEX(__Table,[taskCode],",")
¡Usted es increíble!
Hice algunas comprobaciones puntuales y se ve bien hasta ahora.
¿Se puede hacer una lista distinta y ordenar en una columna?
@Olajumi Bueno, no puede devolver una tabla en una medida. Tendría que ser una tabla calculada. Siento que estoy trabajando con como la mitad de la información sobre lo que estás tratando de lograr.
Gracias. Seguiré adelante y aceptaré la solución. Funciona para mí; Trato la visualización de la columna como otro problema fuera de esta copia.
Mientras tanto, ¿puede proporcionar una pista sobre cómo hacer que este resultado sean valores distintos para que los códigos no se repitan?
Count Over 71 Distinct Reverse = VAR __TableA = DISTINCT('dataTableA'[ConsumerIdTaskcode]) VAR __TableB = SELECTCOLUMNS( FILTER( SUMMARIZE( 'report ConsumerTaskCodes', [ConsumerIdTaskcode], "__Confidence",SUM('report ConsumerTaskCodes'[confidenceScore]) ), [__Confidence] > 71 ), "ConsumerIdTaskcode",[ConsumerIdTaskcode] ) VAR __Ids = EXCEPT(__TableB,__TableA) VAR __Table = FILTER('report ConsumerTaskCodes',[ConsumerIdTaskcode] IN __Ids) RETURN CONCATENATEX(__Table,[taskCode],",")