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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
hahl
Helper I
Helper I

ALLEXCEPT no ignora los filtros

En última instancia, estoy construyendo una medida que se ve así:

CALCULATE(SUM(Table[Amount]), FILTER(ALLEXCEPT(Table, Table[Project]), Table[Date] <-SELECTEDVALUE(Table[Week])))


Esto calcula un importe JTD basado en la [Semana] seleccionada. La medida funciona bien en su mayor parte, pero hay ciertos proyectos que devuelven un valor en blanco. Al profundizar en los datos reales de estos proyectos, existen y tienen una cantidad JTD que debe devolver. Cuando devuelven un espacio en blanco, creo que es porque el proyecto no contiene SELECTEDVALUE(Table[Week]).


Por lo tanto, comencé a probar para comprobar si era la parte SELECTEDVALUE(Table[Week]) la que estaba causando los espacios en blanco.

Para probar, he creado una medida como esta: CALCULATE(MAX(Table[Week]), ALLEXCEPT(Table, Table[Week]))
Esto funciona bien en su propio, pero tan pronto como agrego un filtro para Table[Project] devuelve un valor en blanco.

Todos los datos provienen de la misma tabla.
[Semana] y [Fecha] son fecha y hora
[Proyecto] es texto
[Importe] es el número


¿Alguna idea de lo que estoy haciendo mal?



15 REPLIES 15
az38
Community Champion
Community Champion

@hahl

Tratar

CALCULATE(SUM(Table[Amount]), ALLEXCEPT(Table, Table[Project]), FILTER(ALL(Table), Table[Date] <=SELECTEDVALUE(Table[Week])))

do not hesitate to give a kudo to useful posts and mark solutions as solution
LinkedIn

Intenté esto, pero todavía devuelve balas de fogueo.

amitchandak
Super User
Super User

@hahl Lo que está tratando de lograr utilizando estas medidas.

En caso de que usted está buscando esta semana, la semana pasada semana rodante etc refer :https://www.dropbox.com/s/d9898a48e76wmvl/sales_analytics_weekWise.pbix?dl=0

Gracias, no estoy buscando filtrado de fecha relativo. Necesito cantidades jtD donde la semana es la fecha de finalización, por lo que filtrar por la semana sólo no me daría lo que necesito.

az38
Community Champion
Community Champion

@hahl

¿qué más filtro necesita? filtrar por proyecto se incluye en mi declaración


do not hesitate to give a kudo to useful posts and mark solutions as solution
LinkedIn

Lo siento @az38 no soy bueno para etiquetar con quién estoy hablando 🙂

Lo has entendido bien, el filtro de proyecto es el único filtro que necesito además de mirar hacia atrás en todos los datos históricos antes de la semana seleccionada.
He estado usando un proyecto como ejemplo, porque he sacado manualmente los datos que quiero y está ahí. Pero cuando agrego una segmentación de datos para el proyecto y selecciono este proyecto de ejemplo, la medida que tú y yo creamos devuelveun un valor en blanco. Incluso cuando puedo ver que no es el caso de los datos reales.

az38
Community Champion
Community Champion

@hahl

¿podría mostrar el ejemplo de datos?


do not hesitate to give a kudo to useful posts and mark solutions as solution
LinkedIn

@az38
Claro, acabo de crear un archivo de ejemplo, ¿cómo lo comparto?

az38
Community Champion
Community Champion

@hahl

cualquier servicio en la nube como https://uploadfiles.io/


do not hesitate to give a kudo to useful posts and mark solutions as solution
LinkedIn

@az38

Disculpas, no pude poner la carga a trabajar. Posiblemente debido a trabajar desde casa.

Aquí está la tabla de ejemplo que creé:

Importe de la semana de finalización de la fecha del proyecto

123450viernes, 3 de enero de 2020Sábado, 4 de enero de 20205
123450Miércoles, 1 de abril de 2020Sábado, 4 de abril de 20208
123450Miércoles, 4 de diciembre de 2019Sábado, 7 de diciembre de 201978
234500Miércoles, 5 de febrero de 2020Sábado, 8 de febrero de 202099
234500Domingo, 8 de marzo de 2020Sábado, 14 de marzo de 202010
234500Jueves, 2 de enero de 2020Sábado, 4 de enero de 202064
156700Jueves, 2 de enero de 2020Sábado, 4 de enero de 202087



La columna Fin semana es solo la fecha de finalización de la semana que corresponde a la fecha (fecha de transacción).
Pude replicar el problema con bastante facilidad con estos datos.

Cuando agrego la medida,

CALCULATE(SUM('Table'[Amount]), ALLEXCEPT('Table', 'Table'[Project]), FILTER(ALL('Table'), 'Table'[Date]<'SELECTEDVALUE('Table'[End Week])))

y luego seleccione una Semana De Fin en la segmentación, funciona perfectamente.
He seleccionado el 8 de febrero y el total fue 333, que es la suma de todas las cantidades antes o igual al 8 de febrero.

Para probar el problema del filtro de proyecto, seleccioné El proyecto 123450. Con el 8 de febrero todavía como la semana final seleccionada, quiero que devuelva un valor de 83 (todos los datos antes de la fecha del 8 de febrero), pero en su lugar vuelve en blanco.

Disculpas otra vez, espero que esto funcione para ti.


Hola, @hahl

En función de su descripción, puede crear una tabla calculada con la siguiente fórmula.

Test = DISTINCT('Table'[End Week])

A continuación, puede crear una medida como se muestra a continuación.

Result = 
CALCULATE(
    SUM('Table'[Amount]),
    FILTER(
        ALLSELECTED('Table'),
        'Table'[Date]<=SELECTEDVALUE('Test'[End Week])
    )
)

Resultado:

e1.png

Saludos

Allan

Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

@az38 & @v-alq-msft

¡Gracias a los dos! Una vez que creé una tabla separada para usar como mis fechas seleccionadas y quité la relación entre ellas funciona! 🙂

az38
Community Champion
Community Champion

@hahl

ok, lo tengo

primero, crear una tabla de calendario

CalendarTable = CALENDAR(MIN('Table'[Date]), MAX('Table'[End Week]))

a continuación, utilice como campo CalendarTable[Date] como segmentación de fecha y cree una medida en la tabla

Measure = 
var _endDate = CALCULATE(MAX('CalendarTable'[Date]),ALLSELECTED('Table'[End Week]))
RETURN
CALCULATE(SUM('Table'[Amount]),FILTER(ALLEXCEPT('Table','Table'[Project]),'Table'[Date]<=SELECTEDVALUE(CalendarTable[Date]) ))

do not hesitate to give a kudo to useful posts and mark solutions as solution
LinkedIn

@az38

Esto todavía vuelve en blanco. ¿Falta la variable a la medida que proporcionó? Ha creado una variable pero no la usó.

Además, quiero que mi selección sea la Semana Final, y no la Fecha porque los datos se mostrarán en un gráfico que muestra los importes JTD por semana.

az38
Community Champion
Community Champion

@hahl

Sí, exactamente. mal copiar y pegar 😞

Measure = 
var _endDate = CALCULATE(MAX('CalendarTable'[Date]))
RETURN
CALCULATE(SUM('Table'[Amount]),FILTER(ALLEXCEPT('Table','Table'[Project]),'Table'[Date]<= _endDate ))

Безымянный.png


do not hesitate to give a kudo to useful posts and mark solutions as solution
LinkedIn

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

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.