Forum Discussion
Sintaxis [_1]
Hola expertos, ¿podrían explicar lo que hace la siguiente medida? Especialmente la sintaxis "_1" y [_1] .
Medida 3 ?
var _cnt - CALCULATE(DISTINCTCOUNT( Sheet1[Nombre del curso]),ALLSELECTED(Sheet1))
devolución
Sumx(filter(SUMMARIZE(Sheet1,Sheet1[Partner], "_1",DISTINCTCOUNT(Sheet1[Nombre del curso])),[_1] _cnt),[_1])
Para explicar esto, he modificado la medida
Measure 3 = VAR _cnt = CALCULATE ( DISTINCTCOUNT ( Sheet1[Course Name] ), ALLSELECTED ( Sheet1 ) ) VAR _summarizedTable = SUMMARIZE ( Sheet1, Sheet1[Partner], "_1", DISTINCTCOUNT ( Sheet1[Course Name] ) ) RETURN SUMX ( FILTER ( _summarizedTable, [_1] = _cnt ), [_1] )"_1" es un nombre de columna que ha definido en la función SUMMARIZE.
A continuación se muestra la sintaxis de SUMMARIZE
SUMMARIZE (<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, <name>, <expression>]…)El primer parámetro es Tabla, luego agrupar por columna y, a continuación, un nuevo nombre de columna. En su caso, ha especificado "_1". Entonces expresión. La salida de la expresión se almacenará en la columna recién creada "_1".
A continuación se muestra la sintaxis de SUMX.
SUMX(<table>, <expression>)El primer parámetro es una tabla. y el segundo parámetro es una expresión. (La expresión que se va a evaluar para cada fila de la tabla)
En el ejemplo, desea pasar una tabla filtrada. Es por eso que ha utilizado FILTER()
A continuación se muestra la sintaxis de FILTER()
FILTER(<table>,<filter>)El primer parámetro es una tabla. En la medida original, ha especificado directamente el ARCHIVO RESUME() que devolverá una tabla.
Para explicar esto he almacenado el resultado en una variable. A continuación, el segundo parámetro es una condición de filtro. es decir, [_1] - _cnt
Ahora llegando al contexto de SUMX(). SUMX devolverá la suma de la columna "_1" en la tabla temporal "_summarizedTable".
2 Replies
- AllisonKennedy
Community Champion
Los corchetes indican un nombre de columna o medida. En este caso [_1] es el nombre de la columna que ha creado mediante la función SUMMARIZE: https://docs.microsoft.com/en-us/dax/summarize-function-dax
Medida 3 ?
--esta línea a continuación crea una variable llamada _cnt que tomará el recuento distinto de nombres de curso en la tabla Hoja 1, ignorando todos los "filtros" de la visualización, básicamente le da un gran recuento total de cursos distintos en la Hoja 1 basado en sus selecciones de segmentación de datos
var _cnt - CALCULATE(DISTINCTCOUNT( Sheet1[Nombre del curso]),ALLSELECTED(Sheet1))
devolución
--this line crea una tabla virtual mediante la función SUMMARIZE, por lo que agrupa la tabla Sheet1 por Partner (creando 1 fila para cada asociado distinto),
Sumx(filter(SUMMARIZE(Sheet1,Sheet1[Partner]
--then agrega una nueva columna a esa tabla virtual, llamando a esa columna "_1", y rellenando esa columna con un recuento distinto de nombres de curso para cada Partner
, "_1",DISTINCTCOUNT(Sheet1[Nombre del curso]))
-- luego filtra la nueva tabla virtual para que solo se dejen los Socios que tienen el mismo recuento diferenciado de cursos que el total general _cnt que calculamos en la variable anterior
,[_1]-_cnt)
-- finalmente suma todos los recuentos distintos, por lo que básicamente toma _cnt * número de socios que tienen el mismo total de cursos distintos que _cnt
,[_1])¿Eso ayuda/tiene sentido?
- nandukrishnavs
Community Champion
Para explicar esto, he modificado la medida
Measure 3 = VAR _cnt = CALCULATE ( DISTINCTCOUNT ( Sheet1[Course Name] ), ALLSELECTED ( Sheet1 ) ) VAR _summarizedTable = SUMMARIZE ( Sheet1, Sheet1[Partner], "_1", DISTINCTCOUNT ( Sheet1[Course Name] ) ) RETURN SUMX ( FILTER ( _summarizedTable, [_1] = _cnt ), [_1] )"_1" es un nombre de columna que ha definido en la función SUMMARIZE.
A continuación se muestra la sintaxis de SUMMARIZE
SUMMARIZE (<table>, <groupBy_columnName>[, <groupBy_columnName>]…[, <name>, <expression>]…)El primer parámetro es Tabla, luego agrupar por columna y, a continuación, un nuevo nombre de columna. En su caso, ha especificado "_1". Entonces expresión. La salida de la expresión se almacenará en la columna recién creada "_1".
A continuación se muestra la sintaxis de SUMX.
SUMX(<table>, <expression>)El primer parámetro es una tabla. y el segundo parámetro es una expresión. (La expresión que se va a evaluar para cada fila de la tabla)
En el ejemplo, desea pasar una tabla filtrada. Es por eso que ha utilizado FILTER()
A continuación se muestra la sintaxis de FILTER()
FILTER(<table>,<filter>)El primer parámetro es una tabla. En la medida original, ha especificado directamente el ARCHIVO RESUME() que devolverá una tabla.
Para explicar esto he almacenado el resultado en una variable. A continuación, el segundo parámetro es una condición de filtro. es decir, [_1] - _cnt
Ahora llegando al contexto de SUMX(). SUMX devolverá la suma de la columna "_1" en la tabla temporal "_summarizedTable".