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
Syndicate_Admin
Administrator
Administrator

Pago del IVA cada julio, octubre, enero y abril

Hola a todos,

¿Serías tan amable y me ayudarías con la medida para mis pagos de IVA?

Tengo el IVA como medida [IVA] y fecha de la tabla de fechas que está vinculada a mi mesura a través de relationshop donde tengo fechas como [MMM-YY"] pero para la calucación uso [MM/DD/AAAA]

Siempre tengo un solo día en el mes y no hay huecos.

Sé cómo calcular acumulaciones, pero no sé cómo calular la suma para las vistas previas 3 meses

El pago del IVA de enero es = suma de octubre, noviembre y diciembre

Abr IVA paymet es = suma de enero, febrero y marzo

El pago del IVA de julio es = suma de abril, mayo y junio

El pago del IVA de octubre es = suma de jul, agosto y septiembre

etc. durante unos años

VAT Payment.JPG

Muchas gracias.

Andrei

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

@AndrejZitnay , En la tabla de fechas crear una marca

bandera = if(month([Date] en {1,4,7,10}, 1,0)

a continuación, pruebe una medida como esta y filtrar la página de visual en la bandera anterior

Rolling 3 = CALCULATE(sum(Table[Amount]),DATESINPERIOD('Date'[Date],eomonth(MAX('Date'[Date]),-1) ,-3,MONTH))

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

@AndrejZitnay , En la tabla de fechas crear una marca

bandera = if(month([Date] en {1,4,7,10}, 1,0)

a continuación, pruebe una medida como esta y filtrar la página de visual en la bandera anterior

Rolling 3 = CALCULATE(sum(Table[Amount]),DATESINPERIOD('Date'[Date],eomonth(MAX('Date'[Date]),-1) ,-3,MONTH))

@amitchandak

Hola Amit, tengo dudas. ¿Una función de inteligencia de tiempo siempre funcionará correctamente y dará resultados precisos en todos los escenarios en ausencia de una tabla de calendario o tablas con fechas que faltan en la columna de fecha? Especialmente cuando no está marcado como una "Tabla de fechas". @AndrejZitnay dijo que su mesa sólo tiene una cita al mes. En ese escenario, me sentí escéptico sobre el uso de una función de inteligencia de tiempo.

Además, en este artículo en sqlbi by @marcorusso https://www.sqlbi.com/articles/time-intelligence-in-power-bi-desktop/ , se sugirió agregar un ALL(<datefield>) a la función CALCULATE en ausencia de una tabla de fechas.

¿Cuál es la implicación aquí?

Hola @amitchandak ,

Gracias. Funciona.

CF VAT Cashflow calc = CALCULATE([Base de IVA para el flujo de IVA],DATESINPERIOD(PayMonthTable[PayMonth-cost],eomonth(MAX(PayMonthTable[PayMonth-cost]),-1) ,-3,MONTH))*SUMX(PayMonthTable,PayMonthTable[flag])

MonthCalendar.jpg

Syndicate_Admin
Administrator
Administrator

Hola

Hay muchas maneras de manejar este tipo de cálculo, ya sea mediante el uso de las funciones internas de inteligencia de fecha / hora o mediante la escritura de sus propios cálculos de fecha / hora en DAX. Pero en casi todos los casos que implican cálculos de inteligencia de fecha y hora, el cálculo se basa en tener una tabla de calendario con todas las fechas del año sin ningún vacío y marcarlo como una tabla de fechas. Para escribir tales medidas, el conocimiento sobre las diversas relaciones con la tabla de calendario también es obligatorio, de lo contrario, la fórmula se verá correcta, pero el resultado será incorrecto y a menos que ya conozca el resultado y pueda verificar, no hay manera de que un usuario pueda saber si el resultado es correcto o no.

Usted mencionó que su mesa tiene sólo una fecha al mes... (Si lo entendí correctamente), por lo tanto, no estoy sugiriendo ninguna función de inteligencia de tiempo o funciones personalizadas similares, en su lugar, usaremos sólo dos funciones RANK (para clasificar las fechas en orden ascendente) y un MES (para determinar el número de mes calendario) para llegar a la solución.

A continuación se muestra la solución:

Suponiendo que haya una tabla denominada "Datos de IVA" con los siguientes datos de ejemplo.

FechaIva
31-05-20212
30-06-20213
31-07-20214
31-08-20215
30-09-20216
31-10-20217
30-11-20218
31-12-20219
31-01-202210
28-02-202211
31-03-202212
30-04-202213
31-05-202214
30-06-202215
31-07-202216
31-08-202217
30-09-202218
31-10-202219
30-11-202220
31-12-202221
31-01-202322

Agregue cuatro columnas calculadas a esta tabla mediante las siguientes expresiones.

Date Rank =
RANKX ( 'VAT Data', 'VAT Data'[Date], 'VAT Data'[Date], ASC, DENSE )
VAT Payment From = 'VAT Data'[Date Rank]-3
VAT Payment To = 'VAT Data'[Date Rank]-1
MonthNumber = MONTH('VAT Data'[Date])

La mesa ahora se verá así...

FechaIVA mensualRango de fechaPago del IVA desdePago del IVA aMesNumber
31 de mayo de 202121-205
30 de junio de 202132-116
31 de julio de 202143027
31 de agosto de 202154138
30 de septiembre de 202165249
31 de octubre de 2021763510
30 de noviembre de 2021874611
31 de diciembre de 2021985712
31 de enero de 2022109681
28 de febrero de 20221110792
31 de marzo de 202212118103
30 de abril de 202213129114
31 de mayo de 2022141310125
30 de junio de 2022151411136
31 de julio de 2022161512147
31 de agosto de 2022171613158
30 de septiembre de 2022181714169
31 de octubre de 20221918151710
30 de noviembre de 20222019161811
31 de diciembre de 20222120171912
31 de enero de 2023222118201

Ahora cree una medida denominada Pago de IVA con el código siguiente.

VAT Payment =
VAR CurrentMonth =
    SELECTEDVALUE ( 'VAT Data'[Date Rank] )
VAR FromMonth = CurrentMonth - 3
VAR ToMonth = CurrentMonth - 1
VAR Amount =
    SUMX (
        FILTER (
            ALL ( 'VAT Data' ),
            'VAT Data'[Date Rank] >= FromMonth
                && 'VAT Data'[Date Rank] <= ToMonth
        ),
        'VAT Data'[Monthly VAT]
    )
VAR CurrentMonthNumber =
    SELECTEDVALUE ( 'VAT Data'[MonthNumber] )
VAR ReturnValue =
    IF ( CurrentMonthNumber IN { 1, 4, 7, 10 }, Amount, BLANK () )
RETURN
    ReturnValue

Esto dará el siguiente resultado.

pbi.png

En realidad, el código DAX mencionado aquí utiliza un enfoque muy rudimentario sin utilizar ninguna de las funciones de inteligencia de fecha y hora incorporadas. No me ha preocupado el mejor o más eficiente método, y sólo he utilizado lo que se adapte a este escenario donde no hay una tabla de fechas estándar disponible y sólo hay una fecha para cada mes.

Pero si pudiera cambiar a un modelo estándar con una tabla de fechas adecuada, puede reescribir todo el asunto utilizando una combinación de funciones como SUMX, EDATE, STARTOFTHEMONTH, ENDOFTHEMONTH, DATESBETWEEN, SELECTEDVALUE, etc...

Depende de usted si desea cambiar el modelo de datos en aras de utilizar dichas funciones o simplemente utilizar las funciones que se ajustan al modelo actual.

Hola @sreenathv ,

Muchas gracias por su ayuda.

He intentado seguir tu trabajo pero no tengo otucome.

(No hay ningún error en la fórmula sólo el resultado está en blanco)

¿Me perdí algo?

Mi base de IVA proviene de este measrue

Base de IVA para el flujo de caja del IVA = CALCULATE(SUMX(PayMonthTable,[CF Input VAT (131CF)]+[CF Income Vat (93CF)]))

CF VAT Cashflow calc = VAR CurrentMonth =
SELECTEDVALUE ( 'PayMonthTable'[PayMonth-cost] )
VAR FromMonth = CurrentMonth - 3
VAR ToMonth = CurrentMonth - 1
Cantidad VAR =
SUMX (
FILTRO (
ALL ( PayMonthTable ),
PayMonthTable[Pago del IVA desde] >= FromMonth
&&PayMonthTable[Pago del IVA a] <= ToMonth
),
[Base de IVA para el flujo de caja del IVA]
)
Var CurrentMonthNumber =
SELECTEDVALUE ( PayMonthTable[MonthNumberNew] )
VAR ReturnValue =
IF ( CurrentMonthNumber IN { 1, 4, 7, 10 }, Amount, BLANK () )
devolución
ReturnValue


Blanks result.JPGMonthCalendar.jpg

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.