The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Estimados todos,
Estoy tratando de replicar esta tabla a continuación en PBI, para obtener las últimas 2 columnas rojas (S y T):
Podría calcular las columnas deltas, pero el resultado está en una línea diferente como se muestra a continuación:
(Todas las celdas resaltadas en amarillo deben estar en la primera línea para multiplicar por columna Cantidad = - 1779.28)
Estoy usando la siguiente fórmula para el cálculo del índice de aumento de Delta:
¿Hay que calcularlo en PBI?
Aquí puede encontrar mi archivo PBI:
https://drive.google.com/file/d/1n27rPYiqON7VefFoVRLh4ye_cBLvGeRB/view?usp=sharing
Gracias de antemano.
KR
Carina
Solved! Go to Solution.
Hi, @carinatina_pbi ;
Puede crear medidas de la siguiente manera:
Col 1 = MAX('Ticket'[Amount])*CALCULATE(MAX('Exchange rate'[Delta 1]),FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),1)))
Col 2 = MAX('Ticket'[Amount])*CALCULATE(MAX('Exchange rate'[Delta 2]),FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),2)))
Col 3 = MAX('Ticket'[Amount])*CALCULATE(MAX('Exchange rate'[Delta 3]),FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),3)))
Col 4 = MAX('Ticket'[Amount])*CALCULATE(MAX('Exchange rate'[Delta 4]),FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),4)))
Col 4 = MAX('Ticket'[Amount])*CALCULATE(MAX('Exchange rate'[Delta 4]),FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),4)))
total sum = MAXX(FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),-1)),[Col 1])+MAXX(FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),-2)),[Col 2])+MAXX(FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),-3)),[Col 3])+MAXX(FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),-4)),[Col 4])+MAXX(FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),-5)),[Col 5])
Real Dif.Monthly = [Monthly Diff.]-([total sum]-SUMX(FILTER(ALL(Ticket),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),-1)),[total sum]))
Real Dif.Monthly = [Monthly Diff.]-([total sum]-SUMX(FILTER(ALL(Ticket),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),-1)),[total sum]))
El resultado final se muestra a continuación:
Saludos
Apoyo a la comunidad Team_ Yalan Wu
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
@carinatina_pbi De hecho, eso debería ser una solución fácil ya que el núcleo de la lógica está en su lugar. Voy a echar un vistazo cuando tenga la oportunidad.
@carinatina_pbi este es un problema muy desafiante e interesante de resolver. Aunque ya tienes una solución tengo una grieta en ella y la hice más dinámica con menos medidas y permite escalar la solución fácilmente (si es necesario).
Vea el archivo pbix adjunto y todas las medidas están en la tabla Número de meses. Esta tabla es el núcleo del cálculo y hace que todo sea dinámico, actualmente, tiene 5 columnas, pero si lo desea, puede hacer crecer esto a tantas como desee, simplemente cambie la tabla Número de meses.
El resultado de las medidas se encuentra en la página2. Hay una medida llamada New Total Sum PM con la que no estoy muy contento, pero funciona, en algún momento volveré a esto y lo mejoraré.
¿Darle una oportunidad y hacerme saber cómo va?
¡¡Bien!!
✨ Síguenos en LinkedIn (en inglés)
Más información sobre el formato condicional en Microsoft Reactor
Mi última entrada de blog El poder de usar grupos de cálculo con relaciones inactivas (Parte 1) (perytus.com) Yo lo haría ❤ Elogios si mi solución ayudó. 👉 Si puede dedicar tiempo a publicar la pregunta, también puede hacer esfuerzos para felicitar a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!
⚡ Visítenos en https://perytus.com, su ventanilla única para proyectos/formación/consultoría relacionados con Power BI.⚡
Hi, @carinatina_pbi ;
Puede crear medidas de la siguiente manera:
Col 1 = MAX('Ticket'[Amount])*CALCULATE(MAX('Exchange rate'[Delta 1]),FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),1)))
Col 2 = MAX('Ticket'[Amount])*CALCULATE(MAX('Exchange rate'[Delta 2]),FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),2)))
Col 3 = MAX('Ticket'[Amount])*CALCULATE(MAX('Exchange rate'[Delta 3]),FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),3)))
Col 4 = MAX('Ticket'[Amount])*CALCULATE(MAX('Exchange rate'[Delta 4]),FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),4)))
Col 4 = MAX('Ticket'[Amount])*CALCULATE(MAX('Exchange rate'[Delta 4]),FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),4)))
total sum = MAXX(FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),-1)),[Col 1])+MAXX(FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),-2)),[Col 2])+MAXX(FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),-3)),[Col 3])+MAXX(FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),-4)),[Col 4])+MAXX(FILTER(ALL('Ticket'),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),-5)),[Col 5])
Real Dif.Monthly = [Monthly Diff.]-([total sum]-SUMX(FILTER(ALL(Ticket),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),-1)),[total sum]))
Real Dif.Monthly = [Monthly Diff.]-([total sum]-SUMX(FILTER(ALL(Ticket),EOMONTH([Period Month],0)=EOMONTH(MAX('Ticket'[Period Month]),-1)),[total sum]))
El resultado final se muestra a continuación:
Saludos
Apoyo a la comunidad Team_ Yalan Wu
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Hola @v-yalanwu-msft
Gracias por esta solución. Funciona, pero solo tengo un ticket filtrado en el archivo:
Si tengo 2 tickets, obtuve un número incorrecto en las columnas Col, entonces las otras columnas basadas en eso también están equivocadas. ¿Ves alguna solución para eso?
Aquí encontrarás el nuevo archivo PBI con 2 tickets.
Gracias de antemano.
KR
Carina
Hola
Me gustaría intentarlo. Comparta su archivo de MS Excel con todos los trabajos / fórmulas para que pueda entenderlos y convertirlos a expresiones DAX.
En este enlace encontrarás el excel con todas las fórmulas en la pestaña Resultados:
Gracias por su ayuda.
KR
Carina
De nada.
¿Ve alguna otra forma de calcular mis columnas de destino a continuación, sin crear varias columnas (Delta y Col)? Debido a que puedo tener tickets con 30 líneas, entonces, en base a esta solución de propuesta, necesitaré crear 30 columnas de Delta y también 30 columnas de Col, y lo intenté con 10 y PBI se está ejecutando para un tiempo de registro calculándolo.
Gracias por su ayuda de nuevo de antemano.
KR
Carina
Hola
No, no se me ocurre otra manera.
Arreglemos delta1.
Quieres:
tarifa exch del próximo mes - la tarifa exch. de este mes
así que cambie las cosas que se restan (a-b debe ser b-a) y donde el código suma 1 (+1) al índice debe restar (-1)
-----
Eso debería darle suficiente información para solucionarlo. Déjame saber cómo te vas.
Gracias por su respuesta y ayuda.
De hecho, ahora puedo ver todos los valores en la primera línea ya que necesito calcular el siguiente colum (cantidad * delta n), pero cuando creo la segunda columna de multiplicación recibí este mensaje a continuación:
Para agregar, ¿hay una forma automática de calcular como un bucle?
De lo contrario, tendré que crear como 30 líneas para delta y después más 30 para la multiplicación, ya que esto es solo un ejemplo, pero otros Tickets pueden tener más puntos / líneas.
La columna objetivo necesaria al final, es el Real Dif. Mensual que está calculando la siguiente fórmula:
Real Dif. Mensual = (Cantidad 2 - Cantidad * Exc. Tasa) - (suma de (Cantidad * Delta n) - línea por línea).
Subo mi archivo de Excel con todas las fórmulas en este enlace (resultados de la pestaña) tal vez esto sea más fácil de entender:
https://docs.google.com/spreadsheets/d/1Rnlu5_dMAdLn4Tj7vF5WkWiojG2t_Qw3/edit#gid=411313650
Gracias de antemano.
KR
Carina