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.
Hola, estoy tratando de calcular un índice para mostrar sobre o debajo de la representación de los valores relativos al total.
las filas son dimensión. así que lo que quiero hacer es primero el cálculo de la fila como se muestra ya y luego dividirlo por el coloum total para cada celda. por ejemplo, la primera celda debe calcular 0.16% dividido por 0.22%. Por favor, ayuda
Solved! Go to Solution.
@vikash_1108 - Divertido, pensé que aquí es donde se dirigía esto así que en realidad lo cocó de esa manera anoche antes de irme a la cama. No lo publí porque esta versión de la medida realmente devuelve los mismos números exactos que si tomas la primera medida, lo agregas al objeto visual y luego eliges Mostrar valores como . Porcentaje del total de la columna. Sólo quería hacerlo para probar que podía hacerlo. Pero, aquí está con PBIX actualizado adjunto, misma página 9, Tabla 9. El código antiguo son las líneas con comentarios //. Por último, recuerda a mí cuando respondas, casi perdí la pista de este hilo!!
Measure 9 Column % of Row % =
VAR __Age = MAX([Age - Category])
VAR __Table = ADDCOLUMNS(SUMMARIZE(FILTER(ALL('Table (9)'),[Age - Category]=__Age),[District - Category]),"__Measure",[Measure 9 Row %])
// VAR __All = SUMX(__Table,[__Measure])
VAR __All = IF(HASONEVALUE('Table (9)'[District - Category]),CALCULATE([Measure 9 Row %],ALLEXCEPT('Table (9)','Table (9)'[Age - Category])),[Measure 9 Row %])
VAR __Cell = [Measure 9 Row %]
RETURN
//IF(HASONEVALUE('Table (9)'[District - Category]),DIVIDE(__Cell,__All,0),[Measure 9 Row %])
DIVIDE(__Cell,__All,0)
@vikash_1108 - Oh, sí, ya lo tengo, duh. Actualizado PBIX, Página 17, Tabla (17). La segunda medida es idéntica a los cambios de referencia en los nombres de medida y tabla.
Measure 17 Row % =
VAR __Age = MAX([Age - Category])
VAR __District = MAX([District - Category])
VAR __Cell = SUM([Member Count])
VAR __All = IF(HASONEVALUE('Table (17)'[District - Category]),SUMX(FILTER(ALL('Table (17)'),[District - Category] = __District),[Member Count]),SUMX(ALL('Table (17)'),[Member Count]))
RETURN
DIVIDE(__Cell,__All,0)
Measure 17 Column % of Row % =
VAR __Age = MAX([Age - Category])
VAR __Table = ADDCOLUMNS(SUMMARIZE(FILTER(ALL('Table (17)'),[Age - Category]=__Age),[District - Category]),"__Measure",[Measure 17 Row %])
// VAR __All = SUMX(__Table,[__Measure])
VAR __All = IF(HASONEVALUE('Table (17)'[District - Category]),CALCULATE([Measure 17 Row %],ALLEXCEPT('Table (17)','Table (17)'[Age - Category])),[Measure 17 Row %])
VAR __Cell = [Measure 17 Row %]
RETURN
//IF(HASONEVALUE('Table (17)'[District - Category]),DIVIDE(__Cell,__All,0),[Measure 17 Row %])
DIVIDE(__Cell,__All,0)
@vikash_1108- En el área Valores del panel Visualizaciones, haga clic en la flecha desplegable de la medida/columna y vea la captura de pantalla:
Greg gracias por su sugerencia - Lo que ha dado como solución ya está hecho para obtener la tabla inicial. Después de obtener la tabla inicial, quiero que los valores de cada celda se dividan por su total de columna relativa para dar o bajo representación.
@vikash_1108 Tratar:
Percent Column Total =
DIVIDE(
SUM('R07_Table'[Value],
SUMX(
CALCULATETABLE(
'R07_Table',
ALL(R07_Table[Category1]_
),
[Value]
)
)
Ese es el concepto básico del Capítulo 4, Receta 7 de DAX Cookbook. https://github.com/gdeckler/DAXCookbook Ahora, eso probablemente no funcionará para usted porque tiene, en efecto, una medida en su matriz por lo que necesita calcular eso para la fila / columna en la que se encuentra y luego también calcular eso para el caso "ALL". Sin embargo, no puedo ser específico porque no ha proporcionado suficiente información. Por ejemplo, si supiera lo que está usando para filas en su matriz, probablemente podría ser específico, pero específicamente lo cortaste de tu captura de pantalla. Conocer la estructura de datos subyacente y los datos de ejemplo ayudaría aún más.
Por lo tanto, al final del día, No hay suficiente información para continuar, por favor, primero compruebe si su problema es un problema común enumerado aquí: https://community.powerbi.com/t5/Community-Blog/Before-You-Post-Read-This/ba-p/1116882
Además, consulte este post sobre cómo obtener respuesta a su pregunta rápidamente: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490
Las partes más importantes son:
1. Datos de muestra como texto, utilice la herramienta de tabla en la barra de edición
2. Salida esperada de los datos de muestra
3. Explicación en palabras de cómo obtener de 1. a 2.
ID de miembro | Edad - Categoría | Distrito - Categoría |
A | 23 | z |
b | 23 | z |
c | 23 | x |
d | 29 | s |
e | 29 | s |
f | 29 | z |
g | 36 | z |
h | 36 | x |
i | 36 | x |
j | 36 | z |
k | 67 | z |
Hola greg
He incluido datos de muestra.
1. Así que en primera instancia tendrá pivote de Distrito (fila) sobre la Edad (coloum), contando miembros.
2. Luego, en cada nivel de distrito, encontrará la proporción del conteo de miembros
3. entonces como calc final obtendrá la proporción de recuento de miembros en (2) dividido por la proponiendo total del conteo de miembros para esa columna (es decir, edad)
Espero que esto le ayude a eliminar el formulario
Gracias Vikash
@vikash_1108 - OK, lo hice así, no estoy seguro de si es correcto o lo que estás buscando. En primer lugar, creé una medida para calcular el % total de fila ya que es lo que mostró su imagen original (de ahí que tenga 100% en los totales de fila).
Measure 9 Row % =
VAR __Age = MAX([Age - Category])
VAR __District = MAX([District - Category])
VAR __Cell = COUNT([Member ID])
VAR __All = IF(HASONEVALUE('Table (9)'[District - Category]),COUNTROWS(FILTER(ALL('Table (9)'),[District - Category] = __District)),COUNTROWS(ALL('Table (9)')))
RETURN
DIVIDE(__Cell,__All,0)
Luego calculé el total de la columna % de esa manera:
Measure 9 Column % of Row % =
VAR __Age = MAX([Age - Category])
VAR __Table = ADDCOLUMNS(SUMMARIZE(FILTER(ALL('Table (9)'),[Age - Category]=__Age),[District - Category]),"__Measure",[Measure 9 Row %])
VAR __All = SUMX(__Table,[__Measure])
VAR __Cell = [Measure 9 Row %]
RETURN
IF(HASONEVALUE('Table (9)'[District - Category]),DIVIDE(__Cell,__All,0),[Measure 9 Row %])
Sin embargo, tenga en cuenta que si pone la primera medida en la matriz y luego hace lo que mencioné originalmente con el valor Mostrar como . Porcentaje del total de la columna, obtiene un resultado diferente para no estar seguro de lo que desea.
De todos modos, el archivo PBIX se adjunta a continuación sig. Página 9, Tabla (9).
Hi Greg,
Thanks for your endurance in doing this. The first calculation you have done is correct. However, the second calculation is not giving the desired outcome. Following is what the 1st and then the 2nd calculation should give as outcome when we pivot it.
1st Calculation | Age Category | ||||||
23 | 29 | 36 | 67 | ||||
District Category | s | 0% | 100% | 0% | 0% | 100% | |
x | 33% | 0% | 67% | 0% | 100% | ||
z | 33% | 17% | 33% | 17% | 100% | ||
Grand Total | 27% | 27% | 36% | 9% | 100% | ||
2nd Calculation | Age Category | ||||||
23 | 29 | 36 | 67 | ||||
District Category | s | 0.00 | 3.67 | 0.00 | 0.00 | 1.00 | |
x | 1.22 | 0.00 | 1.83 | 0.00 | 1.00 | ||
z | 1.22 | 0.61 | 0.92 | 1.83 | 1.00 | ||
1.00 | 1.00 | 1.00 | 1.00 | 1.00 |
Thanks in advance. I think we are almost there.
Regards
Vikash
@vikash_1108 - Divertido, pensé que aquí es donde se dirigía esto así que en realidad lo cocó de esa manera anoche antes de irme a la cama. No lo publí porque esta versión de la medida realmente devuelve los mismos números exactos que si tomas la primera medida, lo agregas al objeto visual y luego eliges Mostrar valores como . Porcentaje del total de la columna. Sólo quería hacerlo para probar que podía hacerlo. Pero, aquí está con PBIX actualizado adjunto, misma página 9, Tabla 9. El código antiguo son las líneas con comentarios //. Por último, recuerda a mí cuando respondas, casi perdí la pista de este hilo!!
Measure 9 Column % of Row % =
VAR __Age = MAX([Age - Category])
VAR __Table = ADDCOLUMNS(SUMMARIZE(FILTER(ALL('Table (9)'),[Age - Category]=__Age),[District - Category]),"__Measure",[Measure 9 Row %])
// VAR __All = SUMX(__Table,[__Measure])
VAR __All = IF(HASONEVALUE('Table (9)'[District - Category]),CALCULATE([Measure 9 Row %],ALLEXCEPT('Table (9)','Table (9)'[Age - Category])),[Measure 9 Row %])
VAR __Cell = [Measure 9 Row %]
RETURN
//IF(HASONEVALUE('Table (9)'[District - Category]),DIVIDE(__Cell,__All,0),[Measure 9 Row %])
DIVIDE(__Cell,__All,0)
Hi @Greg_Deckler @Ashish_Mathur
Thank you so much. This is exacktly what I wanted.
I have one more questions though. What would be the code for the 2 calculations if the data is already summarised. Below are the details of the summarised Raw table and what final results would be expected ..
Member Count | Age - Category | District - Category |
2 | 23 | z |
6 | 23 | z |
5 | 23 | x |
4 | 29 | s |
1 | 29 | s |
2 | 29 | z |
9 | 36 | z |
10 | 36 | x |
24 | 36 | x |
9 | 36 | z |
27 | 67 | z |
Raw Pivot | Row Labels | 23 | 29 | 36 | 67 | Grand Total | |
s | 5 | 5 | |||||
x | 5 | 34 | 39 | ||||
z | 8 | 2 | 18 | 27 | 55 | ||
Grand Total | 13 | 7 | 52 | 27 | 99 | ||
1st Calculation | Age Category | ||||||
23 | 29 | 36 | 67 | ||||
District Category | s | 0% | 100% | 0% | 0% | 100% | |
x | 13% | 0% | 87% | 0% | 100% | ||
z | 15% | 4% | 33% | 49% | 100% | ||
Grand Total | 13% | 7% | 53% | 27% | 100% | ||
2nd Calculation | Age Category | ||||||
23 | 29 | 36 | 67 | ||||
District Category | s | 0.00 | 14.14 | 0.00 | 0.00 | 1.00 | |
x | 0.98 | 0.00 | 1.66 | 0.00 | 1.00 | ||
z | 1.11 | 0.51 | 0.62 | 1.80 | 1.00 | ||
1.00 | 1.00 | 1.00 | 1.00 | 1.00 |
Thanks a Million 🙂
@vikash_1108 - Si entiendo correctamente, lo único que cambiaría sería:
Measure 9 Row % =
VAR __Age = MAX([Age - Category])
VAR __District = MAX([District - Category])
VAR __Cell = SUM([Member ID])
VAR __All = IF(HASONEVALUE('Table (9)'[District - Category]),COUNTROWS(FILTER(ALL('Table (9)'),[District - Category] = __District)),COUNTROWS(ALL('Table (9)')))
RETURN
DIVIDE(__Cell,__All,0)
Por __Cell, COUNT cambiaría a SUM
HI Greg,
I Also thought that would work, but it did not.
Regards
Vikash
@vikash_1108 - Oh, sí, ya lo tengo, duh. Actualizado PBIX, Página 17, Tabla (17). La segunda medida es idéntica a los cambios de referencia en los nombres de medida y tabla.
Measure 17 Row % =
VAR __Age = MAX([Age - Category])
VAR __District = MAX([District - Category])
VAR __Cell = SUM([Member Count])
VAR __All = IF(HASONEVALUE('Table (17)'[District - Category]),SUMX(FILTER(ALL('Table (17)'),[District - Category] = __District),[Member Count]),SUMX(ALL('Table (17)'),[Member Count]))
RETURN
DIVIDE(__Cell,__All,0)
Measure 17 Column % of Row % =
VAR __Age = MAX([Age - Category])
VAR __Table = ADDCOLUMNS(SUMMARIZE(FILTER(ALL('Table (17)'),[Age - Category]=__Age),[District - Category]),"__Measure",[Measure 17 Row %])
// VAR __All = SUMX(__Table,[__Measure])
VAR __All = IF(HASONEVALUE('Table (17)'[District - Category]),CALCULATE([Measure 17 Row %],ALLEXCEPT('Table (17)','Table (17)'[Age - Category])),[Measure 17 Row %])
VAR __Cell = [Measure 17 Row %]
RETURN
//IF(HASONEVALUE('Table (17)'[District - Category]),DIVIDE(__Cell,__All,0),[Measure 17 Row %])
DIVIDE(__Cell,__All,0)
@vikash_1108 ¡¡Hurra!! 🙂
Hola
Por favor, comparta el resultado exacto que está esperando.
@vikash_1108: intente hacer clic en la flecha hacia abajo de la medida/columna en el área Valores del panel Visualizaciones. A continuación, elija Mostrar valor como y, a continuación, Porcentaje del total de la columna.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |