Problema en Nodo Math Formula

Hola comunidad,

Quisiera que me orientaran en lo siguiente, estoy tratando de replicar una formula con condicionales, sin embargo, al intentar hacerlo en knime me genera en siguiente error:

image

La formula es la siguente:

if($COD_OCUPACION$ == 3,
if((($SALDO_CAPITAL_T$ * $Total_PDI$ * $PI-A$ * $AJUSTE_x_PLAZO$) > $SALDO_CAPITAL_T$), $SALDO_CAPITAL_T$,
($SALDO_CAPITAL_T$ * $Total_PDI$ * $PI-A$ * $AJUSTE_x_PLAZO$)),
if($COD_OCUPACION$ == 0,
if((($SALDO_CAPITAL_T$ * $Total_PDI$ * $PI-A$ * $AJUSTE_x_PLAZO$ * $Factor_K$) > $SALDO_CAPITAL_T$), $SALDO_CAPITAL_T$,
($SALDO_CAPITAL_T$ * $Total_PDI$ * $PI-A$ * $AJUSTE_x_PLAZO$ * $Factor_K$))))

No se si esto se pueda deber a que knime no permita anidar un condicional en el valor positivo de la condición.

En excel si permite realizar esa operación con esa condición en el valor positivo:

=SI(BH2 = 3,
SI(((S2CR2CV2CX2) > S2), S2, (S2CR2CV2CX2)),
SI(BH2 = 0,
SI(((S2CR2CV2CX2CY2) > S2), S2, (S2CR2CV2CX2CY2))))

Gracias por su ayuda!

Hola @Mourhinhor y bienvenido a la comunidad de KNIME.

Sí, puedes utilizar declaraciones IF() anidadas dentro de otras declaraciones IF(). Sería más fácil si hubieras podido cargar una tabla de ejemplo con tus datos para que pudiéramos identificar dónde está el problema, pero si reescribo tu declaración IF(), creo que te falta una segunda condición en el último IF().

if($COD_OCUPACION$ == 3,
  if( $SALDO_CAPITAL_T$ * $Total_PDI$ * $PI-A$ * $AJUSTE_x_PLAZO$ > $SALDO_CAPITAL_T$, 
  	$SALDO_CAPITAL_T$, 
  	$SALDO_CAPITAL_T$ * $Total_PDI$ * $PI-A$ * $AJUSTE_x_PLAZO$
  ),
  if($COD_OCUPACION$ == 0,
     if($SALDO_CAPITAL_T$ * $Total_PDI$ * $PI-A$ * $AJUSTE_x_PLAZO$ * $Factor_K$ > $SALDO_CAPITAL_T$, 
    	$SALDO_CAPITAL_T$,
      	$SALDO_CAPITAL_T$ * $Total_PDI$ * $PI-A$ * $AJUSTE_x_PLAZO$ * $Factor_K$
      )
      ,  /* ¿Qué resultado debería ir aquí? */
   )
)

ido disculpas si al reescribir tu declaración, cometí un pequeño error en las condiciones, pero creo que te falta un segundo parámetro en una de las declaraciones IF().


Alternativamente, creo que esto es lo que estás intentando hacer, pero todavía necesita la opción adicional:

if($COD_OCUPACION$ == 3,
  min_in_args( $SALDO_CAPITAL_T$ * $Total_PDI$ * $PI-A$ * $AJUSTE_x_PLAZO$, 
               $SALDO_CAPITAL_T$),
  if($COD_OCUPACION$ == 0,
  	min_in_args($SALDO_CAPITAL_T$ * $Total_PDI$ * $PI-A$ * $AJUSTE_x_PLAZO$ * $Factor_K$, 
  			 $SALDO_CAPITAL_T$)
      ,  /* ¿Qué resultado debería ir aquí cuando COD_OCUPACION no es 3 ni 0? */
   )
)
3 Likes

Hola @Mourinhor

¿Esto te ayuda con tu problema?

Excelente, muchas gracias por tu ayuda, si funcionó con el ajuste que sugeriste. En realidad, contestando a tu pregunta, en teoría, no debería haber datos distintos a 3 y 0, por tanto, debería resultar un cero en ese caso.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.