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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Big2cloud
Regular Visitor

IF con condiciones de tablas no relacionadas

Hola a todos:

Tengo dos tablas que están relacionadas a través de una tercera (Facturas - Productos - codigo producto). 

Quiero sacar dos datos, uno que me indique el importe del producto de la factura cuando hay stock y otro que me quite el importe del producto cuando no hay stock. Adjunto ejemplo de la estructura de las tabla.

 

ID Prod     Código prod        STK           Fecha Inicio         Fecha Fin

     1            02937FR               0               01/01/2022         28/02/2023

     1            02937FR               1               01/07/2023                           

     2            42385PR               1               01/01/2022

     3           55385MW             0              01/01/2022

Para los productos que no tienen Fecha Fin, he creado unna columna que se llama Fecha Limite que indica la fecha 31/12/2100 cuando el campo está vacío.

ID Prod     Nombre Prod

    1              Mesa

    2             Silla

    3             Cómoda

 

Id Prod        Código prod    Nº Factura   fecha factura      Importe

    1             02937FR             374623       04/02/2022           150€

    1             02937FR             576492       12/08/2023           155€

    2            42385PR              473403       05/05/2022             56€

    3           55385MW            453629        23/03/2023            86€

 

Para que no haya lío con las fecha, el planteamiento que he hecho es por ejemplo:

Con Stock= IF(SUM( STK =1) && fecha inicio <= fecha factura && fecha factura <= Fecha Limite, Importe, 0)

Sin Stock = IF(Sum(STK = 0) && Fecha inicio <= fecha factura && fecha factura <= fecha limite, Importe, 0)

El caso es que no me funciona. ¿Me podeis ayudar? estoy venga a darle vueltas y no doy con la solución.

Muchas gracias!!!

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

Hola @Syndicate_Admin ,

Según mis pruebas, pruebe los siguientes métodos:

1.Cree la tabla simple.

vjiewumsft_0-1714122030872.png

2.Cree la nueva columna que desea filtrar.

With Stock = 
var _id = 'Invoices'[ID]
vAR _invoicedate = 'Invoices'[Invoice Date]
var _sdate = CALCULATE(MAX('Product Code'[Start Date]),FILTER('Product Code','Product Code'[ID] = _id&&'Product Code'[Prod STK]=1))
var _deadline = CALCULATE(MAX('Product Code'[Deadline]),FILTER('Product Code','Product Code'[ID] = _id&&'Product Code'[Prod STK]=1))
return 
if(_sdate <= _invoicedate && _invoicedate <= _deadline, 
    CALCULATE(sum('Invoices'[Invoice Amount]),FILTER('Invoices','Invoices'[ID] = _id &&_sdate<='Invoices'[Invoice Date]&&'Invoices'[Invoice Date]<=_deadline)), 0
)

3. El resultado se muestra a continuación.

vjiewumsft_2-1714122168016.png

Saludos

Sabiduría Wu

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Buenos días y muchas gracias por la ayuda.

He creado la tabla nueva y creado la medida que me indicas, pero tengo algun problema con la fórmula ya que cuando introduzco var_id no me permite poner la tabla y el campo ID diractamente, me obliga a ponerle una función primero como SUM o MIN y al ser un campo sin cálculo no se cual poner...

Lo mismo me pasa al introducir la variable var_invoicedate donde tampoco me permite introducir directamente InvoiceDate si no introduczo una función previamente. ¿Por qué ocurre esto?

Gracias por adelantado.

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Power BI Monthly Update - May 2024

Check out the May 2024 Power BI update to learn about new features.

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.