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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
Syndicate_Admin
Administrator
Administrator

DAX, ¿cómo comparo dos columnas de fecha y cuento los valores si el mes es el mismo mediante una segmentación de datos?

Hola, por favor, ¿puedes ayudarme con lo siguiente?

En DAX, ¿cómo comparo dos columnas de fecha y cuento los valores si el mes es el mismo, mientras se omiten los valores en blanco o nulos en la segunda columna, mediante la instrucción SELECTEDVALUE de una segmentación de datos que utiliza la primera columna de fechas?

He probado el siguiente DAX, pero acabo de obtener un valor en blanco que se devuelve:

Stage2Count Año fiscal =

VAR SelectedDate = SELECTEDVALUE('Queja (rk_complaint)'[c_DateReceived])

DEVOLUCIÓN

COUNTROWS(

FILTRO(

«Denuncia (rk_complaint)»,

NOT(ISBLANK('Queja (rk_complaint)'[Stage2StartDate])) &&

MONTH('Queja (rk_complaint)'[Stage2StartDate]) = MONTH(SelectedDate) &&

YEAR('Queja (rk_complaint)'[Stage2StartDate]) = YEAR(SelectedDate)

)

)

Ejemplo de columna sin filtrar:

StevenHarrison_0-1714729227801.png

Uso de la columna de fecha c_DateReceived como segmentación:

StevenHarrison_1-1714729227804.png

usando un conteo simple en Stage2StartDate, obtengo un valor de 1, pero la medida devuelve un valor en blanco:

Screenshot 2024-05-03 103513.jpg

Gracias de antemano.

1 ACCEPTED SOLUTION

Hola @v-linyulu-msft , La forma más sencilla de solucionar este problema fue crear una tabla duplicada y filtrar las fechas de la Etapa 2 que tienen un valor y crear una tabla de fechas separada para vincularlas.

StevenHarrison_1-1715256615702.png

La única razón por la que no hice esto para empezar fue que los requisitos de las partes interesadas no destacaron esto como un parámetro del informe para empezar, solo a través del uso del informe surgió.

Gracias por su ayuda en esto.

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Hola@StevenHarrison

En primer lugar, según tengo entendido, su solicitud es devolver el número de filas con valores que son iguales al año del mes del valor seleccionado, en función del valor de la segmentación seleccionada en la primera columna. Si mi entendimiento es erróneo, por favor dé su opinión relativa:

Con respecto a la cuestión que planteaste, mi solución es la siguiente:

1.Primero he creado la siguiente tabla y los nombres de las columnas y los datos son los datos que ha proporcionado:

vlinyulumsft_0-1714974764902.png

2.A continuación, creé la siguiente medida:

Stage2Count Fiscal Year = 
VAR month1 = SELECTEDVALUE('Complaint (rk_complaint)'[c_DateReceived].[Month])
VAR year1 = SELECTEDVALUE('Complaint (rk_complaint)'[c_DateReceived].[Year])

var cow= CALCULATE(COUNTROWS('Complaint (rk_complaint)'),
        FILTER(
            'Complaint (rk_complaint)',
            NOT(ISBLANK('Complaint (rk_complaint)'[Stage2StartDate])) &&
            'Complaint (rk_complaint)'[Stage2StartDate].[Month]= month1 &&
            'Complaint (rk_complaint)'[Stage2StartDate].[Year]= year1
        )
    )
RETURN cow

3. Aquí está mi resultado final, que espero cumpla con sus requisitos.

vlinyulumsft_0-1714975260879.png

¿Pueden compartir datos de muestra y salida de muestra en formato tabular si no estoy entendiendo bien? O un pbix de muestra después de eliminar datos confidenciales. Podemos entender mejor el problema y ayudarle.

Hola @v-linyulu-msft , gracias por la respuesta

Vea la captura de pantalla a continuación:

StevenHarrison_0-1715069710513.png

lo que busco es que, si selecciona un mes de la segmentación, usa las fechas en la primera columna (campo c_DateReceived), pero quiero contar las entradas de la Etapa 2, por lo que en este caso, si selecciono marzo de 2023, quiero contar esa entrada.

Entonces, aunque c_DateReceived es 23/11/2023 y Stage2StartDate es 13/03/2023, quiero poder seleccionar marzo de 2023 y devolver un recuento de 1 o los que haya, si eso tiene sentido.

Me las arreglé para llegar a algún lugar con lo siguiente, pero solo devuelve el número del mes, por lo que es necesario contar los valores y no devolver el número del mes:

Fechas coincidenteszzzzz =
CALCULAR (
MÁXIMO ( «Denuncia (rk_complaint)»[Stage2StartDate].[Nº de mes]),
FILTRO (
TODO ( «Denuncia (rk_complaint)»),
«Denuncia (rk_complaint)»[Stage2StartDate].[Mes] = SELECTEDVALUE ( «Denuncia (rk_complaint)»[c_DateReceived].[Mes] ) &&
«Denuncia (rk_complaint)»[Stage2StartDate].[Año] = SELECTEDVALUE ( «Denuncia (rk_complaint)»[c_DateReceived].[Año] )
)
)
StevenHarrison_1-1715070352812.png

Hola@StevenHarrison

En primer lugar, de acuerdo con su presentación, encuentro que hay un error en la dificultad de la comunicación entre nosotros. A partir del gráfico que me diste, entiendo que tu solicitud es que quieres que marzo de 2024 se cuente en la segunda columna, pero en tu presentación es marzo de 2023, así que si me equivoco en mi comprensión, ¿podrías hacérmelo saber en forma de imagen?

vlinyulumsft_0-1715160456126.png

Para su solicitud, tengo entendido que desea buscar la columna c_DateReceived con el mismo valor que su mes en la columna Stage2StartDate con el mes ya seleccionado por la segmentación y contar su total.

1. Basándome en mi comprensión de sus requisitos, he creado la siguiente medida:

Matching dateszzzzz = 
 
var mm=CALCULATE (
    MAX ( 'Complaint (rk_complaint)'[Stage2StartDate].[MonthNo]),
    FILTER (
        ALL ( 'Complaint (rk_complaint)'),
        'Complaint (rk_complaint)'[Stage2StartDate].[Month] = SELECTEDVALUE ( 'Complaint (rk_complaint)'[c_DateReceived].[Month] ) &&
        'Complaint (rk_complaint)'[Stage2StartDate].[Year] = SELECTEDVALUE ( 'Complaint (rk_complaint)'[c_DateReceived].[Year] )
    )
)
RETURN CALCULATE(COUNTROWS('Complaint (rk_complaint)'),FILTER('Complaint (rk_complaint)','Complaint (rk_complaint)'[c_DateReceived].[MonthNo]=mm))

2. Aquí está mi resultado final, que espero cumpla con sus requisitos.

vlinyulumsft_1-1715160502749.png

¿Pueden compartir datos de muestra y salida de muestra en formato tabular si no estoy entendiendo bien? O un pbix de muestra después de eliminar datos confidenciales. Podemos entender mejor el problema y ayudarle. Para que me resulte más fácil entender tus necesidades, también puedes comunicarme tus necesidades en un dibujo.

Saludos

Leroy Lu

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

Hola @v-linyulu-msft , En primer lugar, acepte mis disculpas, tiene razón, la fecha debería haber sido marzo de 2024, creo que había llegado a un lugar donde no podía ver el bosque por los árboles :).

De sus fotos, el conteo es 8, pero lo que necesito es que el conteo sea 1, ya que solo hay una fecha de etapa 2 en la lista.

StevenHarrison_0-1715167218626.png

además, si las dos fechas están en meses diferentes como la siguiente escena, tendría que contar la columna Stage2StartDate al seleccionar marzo de 2024 (aunque la segmentación usa la columna c_DateReceived)

StevenHarrison_1-1715167371649.png

Hola @v-linyulu-msft , La forma más sencilla de solucionar este problema fue crear una tabla duplicada y filtrar las fechas de la Etapa 2 que tienen un valor y crear una tabla de fechas separada para vincularlas.

StevenHarrison_1-1715256615702.png

La única razón por la que no hice esto para empezar fue que los requisitos de las partes interesadas no destacaron esto como un parámetro del informe para empezar, solo a través del uso del informe surgió.

Gracias por su ayuda en esto.

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel1

Power BI Monthly Update - May 2024

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