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.
Tenemos una cortadora con el valor "Local" y "USD".
Dependiendo de la selección queremos utilizar una columna diferente de datos para los cálculos.
Esto funciona.
Billings Sum =
IF(
SELECTEDVALUE(CurrencyPickerTable[Currency]) = "Local",
SUM('BillingsTable'[Billings (local)]),
SUM('BillingsTable'[Billings (USD)])
)
Sin embargo, se va a volver más complicado, así que esperaba mantener la columna en una variable para hacer cálculos con más adelante.
Este es mi intento fallido.
Billings Sum =
var selectedBillingsColumn =
IF(
SELECTEDVALUE(CurrencyPickerTable[Currency]) = "Local",
SELECTCOLUMNS(BillingsTable, "local", [Billings (local)]),
SELECTCOLUMNS(BillingsTable, "USD", [Billings (USD)])
)
RETURN
SUM(selectedBillingsColumn)
¿Cómo se mantiene una columna en una variable?
Gracias. 👍
Hey @GollyJer ,
no existe tal cosa como una expresión de tabla dinámica que se puede utilizar o volver a utilizar en diferentes medidas. Para esto habrá fracciones de código que se repetirán.
Como la función DAX IF devuelve un valor booleano o un valor escalar, pero nunca una tabla. Una instrucción DAX simple para crear una medida puede volverse más compleja.
Empezando por esto
the measure I want =
CALCULATE(
<the scalar value>
, settablefilter1
, settablefilter2
, ...
, settablefilterN
)
se transforma en algo como esto
the measure I want =
var _slicer1 = SELECTEDVALUE(...)
var _slicerN = SELECTEDVALUE(...)
return
CALCULATE(
IF(_slicer voodod , the maybe hidden measure1 , the maybe hidden measure2)
, settablefilter1
, settablefilter2
, ...
, settablefilterN
)
Considero las medidas "medida1" y "... medidas de base de measure2", estas medidas no representan la selección de la segmentación, sino que simplemente calculan el valor para local o USD. Tenga en cuenta que "_slicer vudú" representa la lógica que ayuda a determinar sobre las "medidas base tal vez ocultas".
Básicamente tenemos la parte de expresión numérica cubierta.
Una medida final, que se refleja en innumerables combinaciones de posibles cortadoras puede tener este aspecto:
the measure I want =
var _slicer1 = SELECTEDVALUE(...)
var _slicerN = SELECTEDVALUE(...)
var _check1 = IF( _slicermojo , 1 , 0)
var _check2 = IF( _slicermojo , 0 , 1)
return
CALCULATE(
IF(_slicer voodod , the maybe hidden measure1 , the maybe hidden measure2)
, AND( _check1 = 1 , FILTER('<Table1 1>' , ...)
, AND( _check2 = 1 , FILTER('<Table1 2>' , ...)
, ...
, settablefilterN
)
Usted tiene que asegurarse de que _check1 y _check2 nunca pueden tener el mismo valor al mismo tiempo.
Como IF se evaluará perezosamente, el segundo parámetro de and anterior nunca se evaluará si el parámetro 1 es igual a FALSE, esto evita la aplicación no deseada de la función FILTER(...).
Esperemos que esto proporcione algunas ideas sobre cómo abordar este desafío.
saludos
Tom
@Greg_Deckler Gracias por los comentarios. He actualizado la pregunta con más enfoque en la primera parte de lo que estoy tratando de resolver. Una cosa a la vez. 🤪
@TomMartens Gracias por la respuesta. Creo que usted obtuvo la esencia de la pregunta original, pero por favor eche un vistazo a la versión actualizada por si acaso.
Hey @GollyJer ,
puede almacenar el objeto en una medida.
Junto a eso, no puede usar SELECOLUMNS ni ninguna otra función que devuelva una tabla dentro de IF. Ambas ramas, true o false tienen que devolver un valor escalar.
saludos
Tom
Gracias @TomMartens.
Básicamente, la respuesta a mi pregunta es no, no se puede hacer.
Y, la solución es súper complicada y no vale la pena jugar con. 🤪
Voy a tomar otro enfoque y remodelar los datos importados.
@GollyJer Realmente deseo que fuera posible devolver una mesa de una medida, sería increíblemente útil! Creo que tengo una idea publicada al respecto.
@GollyJer Lo sentimos, teniendo problemas para seguir, ¿puede publicar datos de ejemplo como texto y salida esperada?
No es realmente suficiente información para seguir adelante, por favor primero compruebe si su problema es un problema común enumerado aquí: https://community.powerbi.com/t5/Community-Blog/Before-You-Post-Read-This/ba-p/1116882
Además, consulte este post sobre cómo obtener respuesta a su pregunta 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. Datos de muestra como texto, utilice la herramienta de tabla en la barra de edición
2. Salida esperada de los datos de muestra
3. Explicación en palabras de cómo obtener de 1. a 2.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |