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
Syndicate_Admin
Administrator
Administrator

Algunas preguntas sobre el modelado de datos y el último cliente basado en la última fecha

Hi Expertos,

Aquí está el ejemplo de informe .pbix Vínculo al archivo de ejemplo

Relationship_DataModel.JPG

Necesito la siguiente ayuda

En el archivo de Power BI adjunto, tiene el modelo de datos anterior (imagen)

Al usar visualizaciones como tabla, filtro, etc., ¿cuál es la mejor práctica y hay alguna excepción en el uso de los datos de hecho frente a los datos de dimensión? Por favor, ¿puede corregir o confirmar mi comprensión?

1. Los registros como Nombre, Cliente, etc. deben ser de la tabla DImension (Cliente, Nombre, dDate ?)

2. Los registros como los datos asociados como las funciones agregadas como Count, Sum, avg, etc. son de la tabla de hechos (datos de prueba) ?

3. Creé la fecha máxima en la tabla de hechos y cuando solía asignar datos de dimensión, obtuve la última fecha a la que accedió el usuario, pero ¿cómo puedo obtener el último cliente al que ha accedido el vendedor (nombre)? En resumen, ¿Cómo mostrar el GroupBy de nombre (con el cliente y la última fecha modificada en DAX)? con ayuda, ahora soy consciente de hacer esto en código M

4. En la visualización de Dax, ¿Cómo puedo formatear la fecha a dd / mm / aa en lugar de detalles como columnas como (Trimestre, Año, Mes, da, etc.)

5. En el momento en que agrego la fecha de dimensión "dDate" o "Cliente" obtengo datos completos en lugar de registros únicos

Gracias en Advanced

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Espero que las respuestas a continuación ayuden. También he reunido el adjunto en función de su archivo.
Archivo de ejemplo

1. Los registros como Nombre, Cliente, etc. deben ser de la tabla DImension (Cliente, Nombre, dDate ?)

Sí, las tablas de dimensiones deben contener cualquier cosa por la que desee dividir los datos.
Creo que algunos de los problemas posteriores que estás teniendo se deben a las dos filas de AA que obligan a que la relación sea mucha. Una dimensión debe ser una lista de registros distintos. Puede ordenar esto en power query con "Quitar duplicados" o crear una nueva tabla en DAX usando DISTINCT.

Si tiene que ser de muchos a muchos, siempre especifique una dirección de filtro en lugar de dejarla bidireccional.

2. Los registros como los datos asociados como las funciones agregadas como Count, Sum, avg, etc. son de la tabla de hechos (datos de prueba) ?

Sí. Normalmente diríamos que una tabla de hechos contiene una descripción de un evento. Siempre comience preguntándose qué representa una fila. Esto se llama el grano.

3. Creé la fecha máxima en la tabla de hechos y cuando solía asignar datos de dimensión, obtuve la última fecha a la que accedió el usuario, pero ¿cómo puedo obtener el último cliente al que ha accedido el vendedor (nombre)? En resumen, ¿Cómo mostrar el GroupBy de nombre (con el cliente y la última fecha modificada en DAX)? con ayuda, ahora soy consciente de hacer esto en código M

En el archivo de demostración moví todas sus medidas a la tabla de hechos y oculté el resto de los campos para que Power Bi lo formatee como una tabla de medidas.

Luego creé una medida de Último cliente y Última fecha:

Last Customer = 
VAR LatestVisibleDate = LASTDATE ( 'Test Data'[Last Modified Date] )

RETURN
CALCULATE (
    SELECTEDVALUE ( Customer[Customer] ),
    CROSSFILTER ( Customer[Customer], 'Test Data'[Customer], Both ),
    LatestVisibleDate
)
Latest Date = 
MAX ( 'Test Data'[Last Modified Date] )

En sus datos de prueba, el cliente aparece en la tabla de hechos, por lo que podría pasar el paso lateral del filtro cruzado, pero normalmente tendría que leer desde la dimensión.

4. En la visualización de Dax, ¿Cómo puedo formatear la fecha a dd / mm / aa en lugar de detalles como columnas como (Trimestre, Año, Mes, da, etc.)
Le reconstruí una tabla de fechas y luego la marqué como una tabla de fechas que elimina la jerarquía de fecha automática:

dDate = 

VAR EarliestYear = YEAR( MIN( 'Test Data'[Last Modified Date] ) )
VAR LatestYear = YEAR( MAX ( 'Test Data'[Last Modified Date] ) )
VAR BaseCalendar = 
    CALENDAR(
        DATE( EarliestYear, 1, 1 ),
        DATE( LatestYear, 12, 31 )
    )

RETURN
    GENERATE (
        BaseCalendar,
        VAR RowDate = [Date]
        VAR RowYear = YEAR ( [Date] )
        VAR RowDay = FORMAT ( RowDate, "mmm" )
        VAR RowMonth = MONTH ( RowDate )
        VAR RowMonthYear = DATE ( RowYear, RowMonth, 1 )
        RETURN
            ROW (
                "Year", RowYear,
                "Day", RowDay,
                "Month", RowMonth,
                "Month Year", RowMonthYear
            )
        )

5. En el momento en que agrego la fecha de dimensión "dDate" o "Cliente" obtengo datos completos en lugar de registros únicos.

No estoy 100% seguro de lo que quieres decir con esto. ¿Te refieres a una cortadora? ¡Házmelo saber y le daremos una mejor respuesta!

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

@bcdobbs Muchas gracias, esto realmente me ayuda mucho. Usted también ha respondido a la última pregunta. Estaba agregando la lista de clientes de la tabla de dimensiones de "Cliente" esperando la solución que usted ayudó al agregar la Medida. Muchas gracias.

Syndicate_Admin
Administrator
Administrator

Espero que las respuestas a continuación ayuden. También he reunido el adjunto en función de su archivo.
Archivo de ejemplo

1. Los registros como Nombre, Cliente, etc. deben ser de la tabla DImension (Cliente, Nombre, dDate ?)

Sí, las tablas de dimensiones deben contener cualquier cosa por la que desee dividir los datos.
Creo que algunos de los problemas posteriores que estás teniendo se deben a las dos filas de AA que obligan a que la relación sea mucha. Una dimensión debe ser una lista de registros distintos. Puede ordenar esto en power query con "Quitar duplicados" o crear una nueva tabla en DAX usando DISTINCT.

Si tiene que ser de muchos a muchos, siempre especifique una dirección de filtro en lugar de dejarla bidireccional.

2. Los registros como los datos asociados como las funciones agregadas como Count, Sum, avg, etc. son de la tabla de hechos (datos de prueba) ?

Sí. Normalmente diríamos que una tabla de hechos contiene una descripción de un evento. Siempre comience preguntándose qué representa una fila. Esto se llama el grano.

3. Creé la fecha máxima en la tabla de hechos y cuando solía asignar datos de dimensión, obtuve la última fecha a la que accedió el usuario, pero ¿cómo puedo obtener el último cliente al que ha accedido el vendedor (nombre)? En resumen, ¿Cómo mostrar el GroupBy de nombre (con el cliente y la última fecha modificada en DAX)? con ayuda, ahora soy consciente de hacer esto en código M

En el archivo de demostración moví todas sus medidas a la tabla de hechos y oculté el resto de los campos para que Power Bi lo formatee como una tabla de medidas.

Luego creé una medida de Último cliente y Última fecha:

Last Customer = 
VAR LatestVisibleDate = LASTDATE ( 'Test Data'[Last Modified Date] )

RETURN
CALCULATE (
    SELECTEDVALUE ( Customer[Customer] ),
    CROSSFILTER ( Customer[Customer], 'Test Data'[Customer], Both ),
    LatestVisibleDate
)
Latest Date = 
MAX ( 'Test Data'[Last Modified Date] )

En sus datos de prueba, el cliente aparece en la tabla de hechos, por lo que podría pasar el paso lateral del filtro cruzado, pero normalmente tendría que leer desde la dimensión.

4. En la visualización de Dax, ¿Cómo puedo formatear la fecha a dd / mm / aa en lugar de detalles como columnas como (Trimestre, Año, Mes, da, etc.)
Le reconstruí una tabla de fechas y luego la marqué como una tabla de fechas que elimina la jerarquía de fecha automática:

dDate = 

VAR EarliestYear = YEAR( MIN( 'Test Data'[Last Modified Date] ) )
VAR LatestYear = YEAR( MAX ( 'Test Data'[Last Modified Date] ) )
VAR BaseCalendar = 
    CALENDAR(
        DATE( EarliestYear, 1, 1 ),
        DATE( LatestYear, 12, 31 )
    )

RETURN
    GENERATE (
        BaseCalendar,
        VAR RowDate = [Date]
        VAR RowYear = YEAR ( [Date] )
        VAR RowDay = FORMAT ( RowDate, "mmm" )
        VAR RowMonth = MONTH ( RowDate )
        VAR RowMonthYear = DATE ( RowYear, RowMonth, 1 )
        RETURN
            ROW (
                "Year", RowYear,
                "Day", RowDay,
                "Month", RowMonth,
                "Month Year", RowMonthYear
            )
        )

5. En el momento en que agrego la fecha de dimensión "dDate" o "Cliente" obtengo datos completos en lugar de registros únicos.

No estoy 100% seguro de lo que quieres decir con esto. ¿Te refieres a una cortadora? ¡Házmelo saber y le daremos una mejor respuesta!

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.