Replicar expresiones regulares del Excel

Buenas tardes, vengo tratando de acostumbrarme a la sintaxis del sistema para empezar aplicar condicionantes similares a las utilizadas en Excel (SI(Y(“PRIMER_CONDICIÓN”;“SEGUNDA_CONDICIÓN”; “N_CANTIDAD DE CONDICIONES”);“VERDADERO”;“FALSO”)), la complejidad que me resulta es que en todos los ejercicios que pude encontrar, estas solo refieren a comparaciones lineales, es decir; aplicar las reglas del “AND” en una misma fila, sin embargo, necesito consultar información de periodos anteriores:

Ej.

En Excel aplicaría esta fórmula para arrastrar resultados de un mismo ID de un periodo anterior (UNA CONDICIÓN).

image

Asimismo, para aplicar similar lógica considerando otro tipo de varíales, en este caso “AÑO”, la fórmula es la siguiente:

image

En ambas situaciones, el valor que busco transponer para el campo “VENTAS” corresponde a uno anterior.

Cualquier ayuda por favor es bien recibida, muchas gracias.

Hola @MGCARDENAS
Para desplazar posición de una fila la una columna determinada puedes usar el nodo ‘Lag Column’ :

Se pueden hacer algunas operaciones más complejas con el nodo ‘Moving Aggregator’; como suma acumulad, producto acumulado, desplazar una columna en ambas direcciones. También trabaja con textos.

salu2

2 Likes

@gonhaddock, muchas gracias por la ayuda, hice uso del nodo, y ciertamente cumple con el dezplazamiendo de las filas:

Sin embargo, busco poder replicar la formula condicionante señalada, para ajustar vacios y marcar los periodos que no tengan la secuencia. Esto mas que todo para hacer un control por el campo ID_CLIENTE.

Hola @MGCARDENAS
Si no quieres entrar en codificación, como ‘Columns Expressions’… lo más razonable es romper tus formulas en partes y separar los operadores lógicos (OR, AND) del cálculo. El workflow resultante va a tener más nodos, pero puede simplificar la tarea si no conoces las expresiones.

Para el ejemplo que expones:

REL1_LOGIC (Rule Engine)

// UNA CONDICION
$ID_CLIENTE$ = $ID_CLIENTE(-1)$ => TRUE
TRUE => FALSE

RELACION_1 (Math Formula)

// True == 1, False == 0
if($REL1_LOGIC$ == 1, $VENTAS(-1)$, 0)

REL2_LOGIC (Rule Engine)

// DOS CONDICIONES
$ID_CLIENTE$ = $ID_CLIENTE(-1)$  AND $YEAR$ = $YEAR(-1)$ => TRUE
TRUE => FALSE

RELACION_2 (Math Formula)

// True == 1, False == 0 
if($REL2_LOGIC$ == 1, $VENTAS(-1)$, 0)

salu2

1 Like

@gonhaddock muchas gracias, ejecute ejercicios con similar secuencia, pero como lo señalas se hacen uso de bastantes nodos, por eso mi interés de encontrar una solución más corta.
Nuevamente agradezco tu ayuda.

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