Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Syndicate_Admin
Administrator
Administrator

Trabajar con datos grandes, filtro dinámico para seleccionar el valor en una fecha específica

¡Hola!
Espero que alguien tenga una solución más fácil.

Tengo una lista de aproximadamente 8 millones de "números de compra" únicos con su valor actual y algunos detalles sobre la compra (clientes, propietario, etc.)

Luego tengo una lista de cada uno de los valores históricos de la compra

Tabla: Comprar

Número de compraValor
10
27
35
4etc

Tabla: BuyHistory

ComprarNúmeroFecha de cambioValor
115 enero 20236
123 enero 2023

12

130 enero 2023

0

22 febrero 2023

7

325 enero 2023

11

33 febrero 2023

5


Necesito crear un informe para mostrar cuál fue el valor de compra en fechas específicas (seleccionadas por 4 segmentadoras de datos diferentes) para obtener la siguiente salida:

Número de compraClienteCortadora 1:
23 de enero
Cortadora 2:
1 de febrero
Cortadora 3:
2 de febrero
Cortadora 4:
3 de febrero
1Cliente A12000
2Cliente Ano existe = 0no existe = 077
3Cliente Bno existe = 011115
Total: 12111812

Al principio traté de escribir medidas para cada fecha, para recoger el valor de los 4 valores seleccionados de la segmentación de datos, y funciona para pequeños datos filtrados, pero proporciona un error "Visual ha excedido los recursos disponibles" al trabajar sobre todos los números de compra de 8m, lo cual entiendo.

Mi siguiente idea fue usar Generar y Resumir, para generar una tabla para cada compra en los 4 valores de la segmentación y calcular el valor usando medidas o columnas calculadas.

Pero esto parece tardar mucho tiempo en generarse a lo largo del período de tiempo (alrededor de 12 años, que podemos acortar a 4/5 años si es necesario)

¿Hay una manera más fácil de hacer esto que me permita obtener los valores rápidamente y también poder resumir la tabla anterior por cliente si es necesario?

La medida que utilicé para escribir para Slicer 1 (BillRun 1) que funciona en una escala más pequeña de los datos:

______________________________________________________________________
ValueSlicer1 =

Dónde BR1 = filtro(ComprarHistoria,ComprarHistoria[Fecha modificada] <= [BillRun 1])
Dónde MaxValue = CALCULAR(..max(ComprarHistoria[Fecha modificada]),BR1)
DEVOLUCIÓN
calcular(
sumx(ComprarHistoria,Historial de compras[Valor]),
ComprarHistoria[Fecha modificada]=MaxValue)

___________________________________________________________________________
La tabla que intenté generar:

BR1 = generar(
filtro(
resumir(ComprarHistoria,ComprarHistoria[Comprarserie],ComprarHistoria[Fecha de compra],ComprarHistoria[Valor]),
ComprarHistoria[Fecha de compra]>=fecha(2023,01,01) && ComprarHistoria[Fecha de compra]<[BillRun 1] && [Valor]<>0
),
Filtro(
RESUMIR(Comprar,Comprar[Fecha]),
Comprar[Fecha]>fecha(2023,01,01))
)



Gracias de antemano!!!

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

@BlueBandit93 ,

Gracias por sus comentarios. Creo que el problema puede no ser que esté usando calculate(sumx(), puede ser algún otro cálculo que no devuelva el resultado correcto. Puede dividir su fórmula en varios pasos para verificar cada paso y ver si obtiene el resultado deseado en cada paso.

Además, puede consultar los siguientes vínculos para resolver el problema de valores totales incorrectos.

Por qué el total es incorrecto en Power BI: el concepto clave de DAX que debe comprender

Dax para Power BI: Corregir totales de medida incorrectos

Saludos

Syndicate_Admin
Administrator
Administrator

Gracias Rena!!
Esto parece estar funcionando, todavía hay que probarlo con toda la población.

Sin embargo, tuve que cambiar la fórmula para decir = _amenddate (en lugar de < _amenddate)

¿Dos preguntas si no te importa un seguimiento?

1. Noté que usaste SUMX(..., FILTER(....)) donde yo usé CALCULTE(SUMX(....)), ¿cuál es la razón de esto?

2. La medida anterior proporciona los valores correctos en las 4 fechas diferentes. Sin embargo, las columnas no se agregan correctamente:

BlueBandit93_1-1686493646636.png


¿Hay otra forma de modificar esto que crear otra medida como se indica a continuación para corregir los totales?

FECHA CORRECTA 1 = sumx(values(buyhistory[buyserial])),[Fecha de valor del activo 1])

BlueBandit93_3-1686494246165.png

¡Gracias!

Syndicate_Admin
Administrator
Administrator

@BlueBandit93 ,

Puede seguir los pasos a continuación para obtenerlo:

1. Cree una tabla de dimensiones de fecha y aplique el campo [Fecha] en la segmentación de datos

2. Cree una medida como se muestra a continuación

Measure =
VAR _seldate =
    SELECTEDVALUE ( 'Date'[Date] )
VAR _amenddate =
    CALCULATE (
        MAX ( BuyHistory[AmendedDate] ),
        FILTER ( BuyHistory, BuyHistory[AmendedDate] <= _seldate )
    )
RETURN
    SUMX (
        FILTER (
            BuyHistory,
            BuyHistory[BuyDate] >= DATE ( 2023, 01, 01 )
                && BuyHistory[BuyDate] < _amenddate
                && [Value] <> 0
        ),
        [Value]
    )

Si el anterior no puede ayudarlo, proporcione más datos brutosen su tabla 'Comprar' y 'ComprarHistorial' (Excluir datos confidenciales) con Mensaje de texto formato y su Resultado esperado ¿Con lógica de backend y ejemplos especiales? Por cierto, ¿hay alguna relación entre estas dos tablas? En caso afirmativo, proporcione la información relacionada. Sería útil encontrar la solución. Puede consultar los siguientes enlaces para compartir la información requerida:

Cómo proporcionar datos de ejemplo en el foro de Power BI

Y es mejor si puede compartir un archivo pbix simplificado. Puede consultar el siguiente enlace para cargar el archivo en la comunidad. Gracias.

Cómo subir PBI en Comunidad

Saludos

Helpful resources

Announcements
July 2024 Power BI Update

Power BI Monthly Update - July 2024

Check out the July 2024 Power BI update to learn about new features.

July Newsletter

Fabric Community Update - July 2024

Find out what's new and trending in the Fabric Community.

Top Kudoed Authors