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

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.

Reply
DouweMeer
Post Prodigy
Post Prodigy

YTD sin contexto

Apuesto a que esto se ha preguntado antes y debería saber la respuesta también, pero sólo se me escapa y no puedo encontrarlo. Así que traté de reproducir mecon la tabla de abajo.

Columna1 : Variable de tiempo

Columna2 : Variable de producto

Columna3 : Variable de cantidad

1A3
2A8
3A7
4A12
5A5
6A1
7A18
1B3
3B5
4B4
5B6
7B9

Luego creé la siguiente medida:

Suma ?

VAR a1 a máx ( 'Tabla de prueba'[Variable de tiempo] )
devolución
calcular (
sumx ( filtro ( 'Test table' , 'Test table'[Time Variable] <'a1 ) , [Quantity variable] )
, todo ( 'Tabla de prueba'[Variable de tiempo] )
)
Ahora el problema, al trazar esta medida en una matriz...
Untitled.png
A continuación se devuelven los mismos valores que el anterior:
Suma ?
VAR a1 a máx ( 'Tabla de prueba'[Variable de tiempo] )
VAR a2 á máx ( 'Tabla de prueba'[Variable de producto] )
VAR t1 ?
SELECTCOLUMNS(
todos ( 'Tabla de pruebas' )
, "Column1" , 'Test table'[Time Variable]
, "Column2" , 'Test table'[Variable de producto]
, "Column3" , 'Test table'[Variable de cantidad]
)
devolución
sumx (
filtro ( t1
, if ( HASONEVALUE( 'Test table'[Time Variable] ) , [Column1] <-a1 , TRUE() )
&& if ( HASONEVALUE( 'Test table'[Product variable] ) , [Column2] ? a2 , TRUE() )
)
, [Columna3]
)
faltan los resultados de la variable de producto 'B' en las variables de tiempo 2 y 6, ya que faltan en la tabla.El problema es causado por la falta de contexto implícito. Añadir un 'ALL' es como multiplicar por 10... en un valor de 0. La eliminación de todos los filtros de ninguna referencia de tabla de registros sigue sin devolver registros. Cuando hay un registro, actuará como 'normal'. ¿Cómo puedo crear la medida de tal manera que para la variable de producto 'B' en el momento variable '2' mostrará el valor devuelto '3' y en la variable de tiempo '6' el valor devuelto '18'?
11 REPLIES 11
Greg_Deckler
Super User
Super User

@DouweMeer - Me parece que usted debe crear una tabla desconectada como esta:

Tabla: DISTINCT('CurrentTable'[Time Value])

O simplemente use GENERATESERIES

Usa eso como tus columnas. A continuación, puede tomar el valor de la columna actual utilizando MAX/MAXX o SELECTEDVALUE y obtener todo < ese valor de la otra tabla. Deberías arreglarte.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

¿Realmente necesitaría una mesa desconectada? De lo contrario, veo la consecuencia de que sería mejor simplemente crear toda la tabla como una tabla desconectada y utilizar sus columnas como filtros :).

@DouweMeer Supongo que porque aparentemente:

Suma ?

VAR a1 a máx ( 'Tabla de prueba'[Variable de tiempo] )
devolución
calcular (
sumx ( filtro ( 'Test table' , 'Test table'[Time Variable] <'a1 ) , [Quantity variable] )
, todo ( 'Tabla de prueba'[Variable de tiempo] )
)
No es devolver lo que quieres. Y la razón es que como no hay 2 estoy adivinando que su a1 se está poniendo en blanco para la intersección de B y 2 y por lo tanto, necesita una tabla desconectada para que siempre tenga un valor para Time Variable y por lo tanto a1.
Esa es mi opinión.

@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

@Greg_Deckler No, no es el VAR.

Suma : calcular ( countrows ( 'Test table' ) , ALLSELECTED( ( 'Test table'[Time Variable] ) ) ) )
Untitled.png
Suma : calcular ( countrows ( 'Tabla de prueba' ) , todo ( 'Tabla de prueba' ) )
Untitled2.png
La referencia de tabla de 'Tabla de prueba' en la medida 'Suma' simplemente no existe. Sé que ya me he ocupado de esto antes. No puedo recordar si tenía una solución... o simplemente me rendí.

Bueno @DouweMeer - nadie puede ser forzado a seguir consejos.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

@Greg_Deckler, lo que quise decir con 'no, no es el VAR' es que por 'arreglar' el VAR, no resolverás el problema.

Si eliminara el filtro de su expresión de cálculo por lo siguiente:

Suma de la suma de la suma de
CALCULATE(
SUM ( 'Tabla'[Variable de cantidad] ),
ALL( 'Tabla'[Variable de tiempo] )
)
Obtendrá los siguientes resultados:
Untitled.png
Y señor he aquí, en el tiempo variables 2 y 6 para la variable de producto B no hay resultados.
Es como arguiing gravedad con usted (no es una comparación perfecta). Dejo caer una pluma en la tierra en el aire o en el vacío. A continuación trato de hacer el mismo experimento en el espacio donde no hay gravedad, pero noto 'no pasa nada' cuando dejo caer la pluma en el aire. Y tú eres como, sí, es la pluma. Aquí, si uso vacío, tampoco pasa nada. Como si transformaras mágicamente la pluma en una piedra, se 'caería'. Y yo soy como, no, si lo uso en el vacío nada tampoco pasa con la piedra. Y tú estás como: "Nadie puede ser forzado a seguir consejos. Ver adjunto PBIX, realmente es la pluma."
Como se ha dicho antes, creo que las cuestiones se encuentran en la referencia de la tabla. No hay ninguno. Tanto el VAR como el RETURN no tienen filas en su referencia de tabla como se puede ver en su PBIX como en mis experimentos que mencioné anteriormente con las filas de recuento de un mensaje anterior como se mencionó anteriormente en este comentario.
Permítanme recuperar su comentario"nadie puede ser forzado a seguir un consejo". Es cierto, pero nadie puede ser forzado a ver el problema de subrayado en lugar de los síntomas que prefieren ver porque los entienden. ¿Estás dispuesto a ver el problema de subrayar?

@DouweMeer - No estoy completamente seguro de que leí todo eso o atrapé todo eso. Es extraño, la mayoría de la gente viene aquí para tener sus problemas fijos, no para encerar poética o debate. Ya te dije cómo solucionar tu problema. Por lo tanto, aquí hay un PBIX que implementa la solución.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

Estoy buscando un understandig, no una solución práctica. Es una parte de mi problema que filtré de mi modelo de datos más grande. Tengo aproximadamente 10 filtros en mi conjunto de datos que se entrelazan con el resultado de mi medida.

Creo que es su perspectiva de 'nosotros' como usuarios del foro haciendo preguntas que sólo estamos buscando un pez en lugar de tratar de aprender a pescar. O tal vez sea una barrera cultural en la que usted como estadounidense es más una persona "primera aplicación" que yo siendo más en la perspectiva de "concepto primero".

Hasta ahora he estado preguntando por A, usted dijo B, pero de alguna manera decirme que la solución para 'B' es 'B' mientras que en realidad es para 'A'. No sé cómo concibe nuestra conversación, todo lo que sé es que la considero algo que usted está de acuerdo con mi sobre el problema de subrayado de Power BI.

Todo lo que veo es que la consecuencia de esta limitación sería que necesita un conjunto de datos de sombra en el modelo de datos con los mismos valores y las mismas relaciones, pero solo se usa como filtros para aplicar en los valores originales.

@DouweMeer - Después de un largo montón de palabras y cosas, la pregunta de la publicación original del foro fue:

"¿Cómo puedo crear la medida de tal manera que para la variable de producto 'B' en la variable de tiempo '2' muestre el valor devuelto '3' y en la variable de tiempo '6' el valor devuelto '18'?"

Y la respuesta es que usas el truco de la mesa desconectada. No estoy seguro de qué más decirte. No puede inventar simplemente datos que no están allí a menos que haga algo en la línea del truco de tabla desconectado donde efectivamente "inventa" las filas de datos que faltan en el conjunto de datos.

Creo que el problema es que miro el problema y digo. "Bueno, por supuesto que obtienes ese resultado, ¿qué más esperas? No tienes los datos". Y miras el problema y de alguna manera ves problemas con filtros y contextos implícitos y otras cosas que, bueno, honestamente no tengo idea de lo que ves como el problema. El problema es que no tienes los datos. Es muy simple, directo y no hay misterio o complejidad al respecto. Y si no tiene los datos, debe crear los datos. Y el método probado y verdadero de hacer eso es el truco de la mesa desconectada.

Aquí hay otro caso que puede encontrar interesante con respecto a las brechas de tiempo en los datos. https://community.powerbi.com/t5/Quick-Measures-Gallery/Mind-the-Gap-Irregular-Time-Series/m-p/99179...


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

@Greg_Deckler

Gracias por seguir con esta pregunta y el otro caso es una visión que es muy interesante.

Este fin de semana durante una barbacoa tuve una discusión con mis hermanos sobre el tema también y el hermano que está en Ingeniería me dijo que estaba 100% seguro de que el 'problema' que describí era un tema sobre la entrada injusta que, y él era adamantite, debería ser resuelto por una '0 matriz'. ¿Tiene experiencia con una "matriz 0" y sabe si ese principio se podría aplicar en Power BI para solucionar el problema disponible?

Por lo demás sólo puedo reconocer que la falta de comprensión del motor detrás de él me está frenando y parece que necesito un curso en él. ¿Quizás tenga una sugerencia de lo que podría seguir para comprender mejor esto (es que Vertipaq, DAX, o algo más)?

@DouweMeer - Una matriz cero es sólo una matriz de todos los ceros. No estoy seguro de cómo se aplica a esta situación. Sin embargo, puedo decirle que DAX generalmente no es adecuado para el álgebra de matriz. Vea MMULT como ejemplo. https://community.powerbi.com/t5/Quick-Measures-Gallery/MMULT/m-p/630231#M315


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

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.