cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Helper II
Helper II

DAX para DISTINCT Count ID en la tabla de muchas a muchas relaciones

Hola a todos

Tengo dos tablas con muchas a muchas relación, estoy tratando de crear una columna para encontrar el recuento distinto de "Id" y agruparlo por hora de inicio y finalización. No lo quiero como medida porque voy a usar el valor de la nueva columna para compararlo con otra columna.

TABLA A

ID.- Start_Time de la casa de los End_Time de la casa de los 15_Min_Time
1 ? 2020-01-02 10:01:00 2020-01-02 10:08:00 2020-01-02 10:00:00
2 ? 2020-01-02 10:01:00 2020-01-02 10:08:00 2020-01-02 10:00:00
3 ? 2020-01-02 10:06:00 2020-01-02 10:12:00 2020-01-02 10:00:00
4 ? 2020-01-02 10:18:00 2020-01-02 10:30:00 2020-01-02 10:15:00

TABLA B

Tiempo de tiempo ? Info_Value ? 15_Min_Time
2020-01-02 10:00:00 2 ? 2020-01-02 10:00:00
2020-01-02 10:01:00 1 ? 2020-01-02 10:00:00
2020-01-02 10:02:00 3 ? 2020-01-02 10:00:00
2020-01-02 10:03:00 4 ? 2020-01-02 10:00:00
2020-01-02 10:04:00 5 ? 2020-01-02 10:00:00
2020-01-02 10:05:00 1 ? 2020-01-02 10:00:00

TABLA A y TABLA B tienen una relación M:M con 15_Min_Time

Salida esperada:

Quiero una columna con un recuento distinto de id pero agrupada por Start_Time

ID.- Start_Time de la casa de los End_Time de la casa de los 15_Min_Time ? New_Column
1 ? 2020-01-02 10:01:00 2020-01-02 10:08:00 2020-01-02 10:00:00 2
2 ? 2020-01-02 10:01:00 2020-01-02 10:08:00 2020-01-02 10:00:00 2
3 ? 2020-01-02 10:06:00 2020-01-02 10:12:00 2020-01-02 10:00:00 1

Probé la siguiente fórmula

New_Column: CALCULATE(DISTINCTCOUNT(Table A[id]), GroupBy(Table A[Start_Time], Table A[End_Time]))

Error --- Error de dependencia circular

New_Column: SUMMARIZE(Tabla A,Tabla A[start_time],Tabla A[End_time],"ID distinto",DISTINCTCOUNT(Tabla A[id]))

Error ---- La expresión hace referencia a varias columnas.

1 ACCEPTED SOLUTION

Solucioné este problema revisando el artículo https://www.sqlbi.com/articles/understanding-circular-dependencies/ utilicé la función ALLExcept para superar el problema.

New_Col de la casa de los 20o CALCULATE(DISTINCTCOUNT(Table A[id]),GROUPBY(Table A,Table A[start_time], Table B[End_time]),ALLEXCEPT(Table A,Table A[Calculated_Col]))

Nota:
Calculated_Col es una columna que creé para obtener el promedio de la tabla B(Info_Value), power bi considera todas las columnas de la tabla mientras crea "New_Col", por lo que estaba recibiendo un error de dependencia circular, ALLExcept resuelve ese problema.

View solution in original post

3 REPLIES 3
Super User IV
Super User IV

@nikeshv En primer lugar, recomendaría tratar de deshacerse de cualquier relación directa de muchos a muchos. Utilice una mesa de puente para conectar esas dos mesas y su vida será más fácil.

En cuanto a tus errores. El segundo es porque SUMMARIZE devuelve una tabla, no un solo valor escalar.

El primer error, las dependencias circulares son difíciles de resolver sin más información.


No es realmente suficiente información para seguir adelante, 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.


---------------------------------------

@ me in replies or I'll lose your thread!!!

I have a NEW book! 
DAX Cookbook from Packt
Over 120 DAX Recipes!




Did I answer your question? Mark my post as a solution!

Proud to be a Super User!




@Greg_Deckler Gracias por compartir la información, voy a trabajar en la resolución de la cardinalidad M a M, he actualizado mi pregunta con más información, espero que esto ayude a resolver el problema.

Solucioné este problema revisando el artículo https://www.sqlbi.com/articles/understanding-circular-dependencies/ utilicé la función ALLExcept para superar el problema.

New_Col de la casa de los 20o CALCULATE(DISTINCTCOUNT(Table A[id]),GROUPBY(Table A,Table A[start_time], Table B[End_time]),ALLEXCEPT(Table A,Table A[Calculated_Col]))

Nota:
Calculated_Col es una columna que creé para obtener el promedio de la tabla B(Info_Value), power bi considera todas las columnas de la tabla mientras crea "New_Col", por lo que estaba recibiendo un error de dependencia circular, ALLExcept resuelve ese problema.

View solution in original post

Helpful resources

Announcements
secondImage

Happy New Year from Power BI

This is a must watch for a message from Power BI!

December Update

Check it Out!

Click here to read more about the December 2020 Updates!

Community Blog

Check it Out!

Click here to read the latest blog and learn more about contributing to the Power BI blog!

Get Ready for Power BI Dev Camp

Get Ready for Power BI Dev Camp

Mark your calendars and join us for our next Power BI Dev Camp!.

Top Solution Authors