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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
Syndicate_Admin
Administrator
Administrator

Contar dinámicamente a distintos individuos en grupos de edad

Hola y gracias de antemano por su ayuda. Estoy buscando una manera de poder obtener dinámicamente el recuento de distintos individuos por grupos de edad (<18, 18-64, 65+) en función de su edad en su fecha de servicio más reciente dentro de un período de tiempo seleccionado en una segmentación.

Idealmente, el recuento de las categorías de edad debe ser un recuento distinto de 'ServiceTable'[ID].

Tengo dos tablas con la siguiente información (más una tabla de calendario basada en la fecha de servicio en ServiceTable):

1. Tabla de servicio

IDENTIFICACIÓNFecha de servicio
A1/1/2021
A2/1/2021
A5/1/2021
B2/1/2021
B3/1/2021
C3/1/2021
C4/1/2021
C5/1/2021
D2/1/2021

2. Tabla de clientes

IDENTIFICACIÓNEDAD
A4/1/2003
B2/15/1956
C3/15/1956
D1/1/1981

(en este ejemplo, la persona A cumple 18 años en 2021, las personas B y C cumplen 65 años en 2021, la persona D cumple 40 años en 2021)

Si una segmentación se estableciera para el 1/3/21 - el 1/5/21, esperaría ver lo siguiente:

AgeCatContar
<180
18-641
65 +

2

(ID A = 18-64, ID B&C = 65+)

Para una segmentación de datos establecida entre 1/1/21 y 3/1/21:

AgeCatContar
<181(Identificación A)
18-642(ID C,D)
65 +1(Identificación B)

Y para una cortadora 1/1/21 - 5/1/21:

AgeCatContar
<180
18-642(ID A,D)
65 +2(ID B,C)
3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

¡Gracias, @v-kaiyue-msft ! ¿Podrías ayudarme a entender lo que estás haciendo? Parece que está creando una nueva tabla que une ID + DOB a SD en ID = ID2; y luego atribuir los meses a las diferentes categorías de edad; Luego, para cada categoría de edad, está contando el número de personas que caen en esa categoría.

Sin embargo, no estoy seguro de a qué se supone que hace referencia 'Table'[Value], pero me está dando un error. También me pregunto cómo esto "sabe" seleccionar la fecha de servicio más reciente.

¡Agradezco su ayuda!

Hola @user16940356 ,

Lamento haber olvidado mencionar en mi respuesta anterior que la tabla es la tabla de cálculo creada que contiene datos para diferentes categorías de edad con el fin de contar diferentes clientes.

vkaiyuemsft_0-1714984271877.png

CROSSJOIN (
SELECTCOLUMNS (
'ClientTable'.

"_DOB", 'ClientTable'[DOB]
),
SELECTCOLUMNS (
'ServiceTable'.

"_SD", 'ServiceTable'[SERVICE DATE]
)
)


Esta expresión anterior devuelve el producto cartesiano de todas las filas de ClientTable y ServiceTable. Las columnas de la tabla resultante son todas las columnas de ambas tablas.

vkaiyuemsft_1-1714984306012.png

El propósito de agregar un filtro a la capa externa es permitir que las dos tablas se conecten por ID, de forma similar a una clave principal.

vkaiyuemsft_2-1714984316729.png

La segmentación contiene la fecha de serviceTable y su filtrado afecta al resultado de la combinación de las dos tablas, lo que a su vez afecta al recuento general.

Aquí está la documentación de la función, espero que pueda ayudarte:
Función CROSSJOIN (DAX) - DAX | Microsoft Learn
Función SUMMARIZE (DAX) - DAX | Microsoft Learn
Función SELECTCOLUMNS (DAX) - DAX | Microsoft Learn

Si su período actual no se refiere a esto, por favor aclárelo en una respuesta de seguimiento.

Saludos

Clara Gong

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Syndicate_Admin
Administrator
Administrator

Hola @user16940356 ,

Cree una medida, escriba una expresión dax.

MEASURE = 
VAR _newvalue =
    SELECTEDVALUE ( 'Table'[Value] )
VAR _vtable =
    SUMMARIZE (
        SELECTCOLUMNS (
            FILTER (
                CROSSJOIN (
                    SELECTCOLUMNS (
                        'ClientTable',
                        "_ID", 'ClientTable'[ID],
                        "_DOB", 'ClientTable'[DOB]
                    ),
                    SELECTCOLUMNS (
                        'ServiceTable',
                        "_ID2", 'ServiceTable'[ID],
                        "_SD", 'ServiceTable'[Service Date]
                    )
                ),
                [_ID] = [_ID2]
            ),
            [_ID],
            "_Age",
                IF (
                    DATEDIFF ( [_DOB], [_SD], MONTH ) < 216,
                    "<18",
                    IF (
                        DATEDIFF ( [_DOB], [_SD], MONTH ) >= 216
                        && DATEDIFF ( [_DOB], [_SD], MONTH ) < 780,
                        "18-64",
                        IF ( DATEDIFF ( [_DOB], [_SD], MONTH ) >= 780, "65+" )
                    )
                )
        ),
        [_ID],
        [_Age]
    )
RETURN
    SWITCH (
        _newvalue,
        "<18", COUNTX ( FILTER ( _vtable, [_Age] = "<18" ), [_ID] ),
        "18-64", COUNTX ( FILTER ( _vtable, [_Age] = "18-64" ), [_ID] ),
        "65+", COUNTX ( FILTER ( _vtable, [_Age] = "65+" ), [_ID] )
    )

vkaiyuemsft_0-1714635449992.png

Si su período actual no se refiere a esto, por favor aclárelo en una respuesta de seguimiento.

Saludos

Clara Gong

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors