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
4-3-3
Helper I
Helper I

¿Ayuda con la tabla virtual/resumen avanzado?

Hey equipo, me enfrento al siguiente escenario. Tengo datos financieros de recibos y facturas para nuestros clientes y necesito averiguar la cantidad de "deudores activos" al final de cada semana.

Soy capaz de resumir los datos cuando se establecen manualmente las informaciones de fecha (la fecha de finalización de la semana) pero necesito encontrar una manera de poder usar esto en una medida en comparación con la tabla de la semana.

He adjuntado los datos de ejemplo con las últimas tres semanas creadas manualmente con resumen. ¿Puedes ayudarme a que todo esto se haga con una sola medida?

Tabla de pruebas.pbix

Tia

12 REPLIES 12
amitchandak
Super User
Super User

@4-3-3

Usted tiene que crear una tabla de fechas y tener el inicio de la semana y el fin de semana allí. Busque el archivo de ejemplo.

https://www.dropbox.com/s/d9898a48e76wmvl/sales_analytics_weekWise.pbix?dl=0

Entonces usted puede tener una fórmula como esta

debt = CALCULATE(SUM(Data[Transaction Amount]), FILTER(Data, Data[Effective] <= max(Date[Date])  && Data[Leave Date] > max(Date[Date])))

debt customer =
sumx(SUMMARIZE(Data,Data[Customer ID], "Total Debt",[_debt] ),[_debt])

Este tipo de deudor diario, dependiendo de la fecha que elija cambiará si elige sesión de fin de semana visual se convertirá en deudor de semana

Para obtener lo mejor de la función de inteligencia de tiempo. Asegúrese de que tiene un calendario de fechas y se ha marcado como la fecha en la vista de modelo. Además, únase a él con la columna de fecha de su hecho/s. Consulte:
https://radacad.com/creating-calendar-table-in-power-bi-using-dax-functions
https://www.archerpoint.com/blog/Posts/creating-date-table-power-bi
https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/

Hola Amit,

gracias por tratar de ayudar, muy apreciado. Traté de usar las dos medidas que sugieres, pero tampoco consigo el resultado correcto.

Normalmente incluyo la tabla de calendario en mis archivos, ya que no se puede hacer mucho sin estos. He utilizado "tablas virtuales" antes de donde necesitaba tener un "calendario del mes" separado para obtener los datos históricos agrupados según sea necesario. Estoy atascado con el cálculo aquí, ya que no sé cómo cambiar el 'calendario del mes' en un calendario de la semana y luego no estoy seguro de cómo iterar correctamente a través de estos datos.

Aquí está el archivo con los cambios que sugirió, pero aún no obtiene el resultado correcto. La deuda para 15/03 debe ser 1566.90 (página 1), usando su método, estoy recibiendo -220.40 (página 2).

Archivo PBIX

En la página uno es > 0 filtro, lo comprué

Toda la fórmula es comentario también debe funcionar después de > 0 cambio

debtAmit = 
var _min = Minx('Calendar','Calendar'[Date])
return
// CALCULATE(SUM(Data[Transaction Amount]), FILTER(Data, Data[Effective] <= max(Calendar[Date])  && Data[Leave Date] > max(Calendar[Date])),CROSSFILTER('Calendar'[Date],Data[Effective],None))
 //CALCULATE(SUM(Data[Transaction Amount]), FILTER(Data, Data[Effective] <= _min  && Data[Leave Date] >_min),CROSSFILTER('Calendar'[Date],Data[Effective],None))
sumx(SUMMARIZE(CALCULATETABLE(Data,filter(all(Data),Data[Effective] <= _min  && Data[Leave Date] >_min)),Data[Customer ID],"_sum",sum(Data[Transaction Amount])),if([_sum]>0,[_sum],0))
//CALCULATE(sumx(SUMMARIZE(all(Data),Data[Customer ID], "Total Debt", CALCULATE(SUM(Data[Transaction Amount]), FILTER(Data, Data[Effective] <= DATE(2020,03,15)  && Data[Leave Date] > DATE(2020,03,15)))),[Total Debt]),CROSSFILTER('Calendar'[Date],Data[Effective],None))

A partir de ahora sólo un sin comentar y me fusioné en la medida


Aprecia tus Felicitaciones.

Wicked Amit. ¡Ya casi llegamos! ¿Sería capaz de ajustarlo para que muestre el importe por cliente y sólo los valores superiores a 0? ¿Como en esta captura de pantalla?

https://i.imgur.com/3ZDYYsk.png

Hola 4-3-3 ,

Su medida debe ser modificada como se indica a continuación:

debtAmit = CALCULATE(SUM(Data[Transaction Amount]), FILTER(Data, Data[Effective] <= MAX('Week Calendar'[Week End])  && Data[Leave Date] >MAX('Week Calendar'[Week End])))

A continuación, cree una medida:

Measure = SUMX(DISTINCT('Data'[Customer ID]),CALCULATE(IF([debtAmit]<=0,BLANK(),[debtAmit])))

Finalmente verá:

Annotation 2020-03-24 102857.png

Para el archivo .pbix relacionado, haga clic aquí.

Saludos
Kelly
¿Respondí a tu pregunta? ¡Marca mi puesto como solución!

Hola Kelly,

gracias por tratar de ayudar. Desafortunadamente esta no es la solución que estoy buscando. Lo que estoy buscando es conseguir que la 'debtAmit' y 'Measure' coincidan con el mismo valor (1566.90). La medida 'debtAmit' en su intento sigue enumerando todas las transacciones, incluso las <0 y es por eso que sólo está mostrando 810.15

¿Puedes eparecer lo otra vez?

littlemojopuppy
Community Champion
Community Champion

¡Hola!

No quiero sonar demasiado crítico, pero parece que todo tu enfoque es más difícil de lo que debería ser.

Tomé su archivo PBIX e hice algunas modificaciones. Puede descargarlo desde aquí.

  • He añadido una tabla calendario con los siguientes campos: año, nombre del mes, número de mes, día de la semana, número de día de la semana y, lo que es más importante, número de semana, junto con una jerarquía de fechas
  • Se ha creado una relación entre mi tabla Calendar y la tabla Data en Date.Date > Data.LeaveDate
  • He creado cuatro medidas: transacciones totales, facturas totales, recibos totales y facturas - Recibos. Adiviné en lo que la definición de estos debe ser y puedo ayudar a refinar si te gusta
  • Los puso en una matriz con una segmentación de fechas.

Usar una estructura como esta en lugar de crear tablas completamente separadas para cada semana debería simplificar enormemente lo que está tratando de hacer. Avísame si puedo ayudar más.

Hey, gracias montones por intentarlo, pero por desgracia esto no está dando el resultado deseado.

Estoy de acuerdo con el hecho de que la creación de una tabla semanal no es eficiente, pero eso estaba allí para demostrar lo que estoy buscando y actualmente sólo es capaz de lograr al crear las tablas semanales. Pero lo que empecé con casi me llevó a donde me dirigía, aunque necesito ser capaz de hacer sin crear toda la tabla de la semana con la siguiente medida.

SUMMARIZE(Data,Data[Customer ID], "Total Debt", CALCULATE(SUM(Data[Transaction Amount]), FILTER(Data, Data[Effective] <= {weekEnding}  && Data[Leave Date] > {weekEnding})))

Sus medidas sólo examinan la fecha de la licencia, mientras que tengo que mirar tanto la fecha de licencia como la fecha de vigencia de la transacción para asegurarme de que ambas serán devueltas cuando esto se aplique.

Este es el primer resumen para obtener las transacciones resumidas para cada ID de cliente para esa instantánea en particular (weekEnding), a continuación, con la segunda SUMA solo necesito agregar valores superiores a 0. Entonces necesito ser capaz de superponer estos datos a través del calendario de la semana para que obtenga esto:

screen2.png

¡Buenos días!

No habría esperado que mi respuesta fuera perfecta.

Cambié la relación entre Calendario y Datos para trabajar fuera de la fecha Creada en su lugar. Y agregué columnas de inicio/finalización de la semana a la tabla Calendario. Estos van de domingo a sábado... su visualización parece indicar que su calendario funciona de lunes a domingo, así que no dude en cambiar según corresponda. Puede utilizar los que están en su medida de la siguiente manera:

    SUMX(
        SUMMARIZE(
            Data,
            "Total Debt", 
            SUMX(
                FILTER(
                    Data,
                    Data[Effective] <= RELATED('Calendar'[Week Ending Date]) && 
                    Data[Leave Date] > RELATED('Calendar'[Week Ending Date])
                ),
                Data[Transaction Amount]
            )
        ),
        [Total Debt]
    )

Y aquí está el PBIX. ¡Espero que esto ayude!

4-3-3 , Asegúrese de que no hay unión entre la fecha de la semana y la fecha de salida / efectiva para esta fórmula, o ha utilizado crossfilter para eliminar que

recomienda

: https://community.powerbi.com/t5/Community-Blog/HR-Analytics-Active-Employee-Hire-and-Termination-tr...

Recuerdo que descargé el archivo inicial. Si me puede dar una salida de muestra, voy a tratar de

Lo siento, respondí a su primer post primero sin leer este. Tengo una unión entre las tablas del archivo que acabo de publicar.

Aunque acabo de quitar rápidamente la unión y todavía no estoy recibiendo la cantidad correcta. Está dando 810.15 ahora..

littlemojopuppy
Community Champion
Community Champion

¡Hola! ¿Me haces un favor y explicar cómo diferenciaría entre Recibos y Facturas en la tabla Datos?

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.