Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Hola a todos
Tengo una tabla de matriz como la siguiente:
Número de cuenta | Importe (medida) | Importe comparado (medida) |
Cuenta 1 | $$$ | $$$ |
Cuenta 2 | $$$ | $$$ |
Cuenta 3 | $4 | $$$ |
El número de cuenta se asigna a una tabla como la siguiente:
Número de cuenta | Fecha de inicio | Fecha de finalización |
Cuenta 1 | 1 de enero de 1999 | 31 Dic 2099 |
Cuenta 2 | 1 de enero de 1999 | 31 de marzo de 2019 |
Cuenta 3 | 1 de abril de 2019 | 31 Dic 2099 |
A continuación, tengo una segmentación de datos que permite al usuario seleccionar una fecha. Cuando se selecciona una fecha, quiero filtrar las cuentas que no están entre la [Fecha de inicio] y [Fecha de finalización], sino con criterios adicionales. Así que he creado una medida como se muestra a continuación:
Filtro de la cuenta ?
var SelectedDate á MAX('Calendar'[Fecha])
devolución
SWITCH(SELECTEDVALUE(Slicer_Period[Period]),
"MTD", IF(DATEDIFF(SelectedDate,MAX(Accounts[End Date]),DAY)<-31,"Y",""),
IF(DATEDIFF(SelectedDate,MAX(Accounts[End Date]),DAY)<-365,"Y",""))
Antes de agregar esta medida al filtro en este objeto visual, se ejecuta con bastante rapidez. Pero cuando agregué la medida anterior en el filtro (donde [Filtro de cuenta] es "Y"), se vuelve muy lento.
¿Alguna idea sobre cómo hacer esto más rápido (filtrando filas basadas en una medida)?
¡Gracias de antemano!
Gracias chicos!
Pero ninguna de las soluciones sugeridas parece hacer las cosas más rápidas... Tengo la sensación de que ya hay demasiadas medidas en su lugar.
@jessset , Trate como
Filtro de la cuenta ?
var _max á MAXX(allselected('Calendar'),'Calendar'[Fecha])
var SelectedDate - DATEDIFF(_max,MAX(Accounts[End Date]),DAY)
devolución
SWITCH(SELECTEDVALUE(Slicer_Period[Period]),
"MTD", IF(SelectedDate<-31,"Y",""),
IF(DATEDIFF(SelectedDate<-365,"Y",""))
)
@jessset Bien, un par de cosas que probar. Uno sería este:
Account Filter =
var SelectedDate = MAX('Calendar'[Date])
RETURN
SWITCH(SELECTEDVALUE(Slicer_Period[Period]),
"MTD", IF( (SelectedDate - MAX(Accounts[End Date])) * 1. <-31,"Y",""),
IF( (SelectedDate - MAX(Accounts[End Date])) * 1. <-365,"Y",""))
Otra posible variación:
Account Filter =
var SelectedDate = MAX('Calendar'[Date])
RETURN
SWITCH(SELECTEDVALUE(Slicer_Period[Period]),
"MTD", IF(DATEDIFF(SelectedDate,MAX(Accounts[End Date]),DAY)<-31,1,0),
IF(DATEDIFF(SelectedDate,MAX(Accounts[End Date]),DAY)<-365,1,0))
Podría combinar estos enfoques
Tratando de pensar en maneras de aprovechar el prefiltrado pero sin pensar en ninguna de la parte superior de mi cabeza. Curioso, ¿cuántas cuentas hay sin filtrar en el objeto visual?
La técnica general que estás usando acabo de publicar. https://community.powerbi.com/t5/Quick-Measures-Gallery/The-Complex-Selector/td-p/1116633
@jessset Tal vez trate de explicar el problema que está tratando de resolver y puede haber una mejor manera de hacerlo. Por favor, consulte este post sobre cómo obtener su pregunta respondida rápidamente: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490
Las partes más importantes son:
1. Muestra datos como texto, utilice la herramienta de tabla en la barra de edición
2. Salida esperada a partir de datos de muestra
3. Explicación en palabras de cómo obtener de 1. a 2.
Gracias Greg, espero que el post revisado arriba ayuda!
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.