Construire une formule qui récupérer une valeur d'une cellule antérieure

Options
KikiClem
KikiClem Partner, Dataiku DSS Core Designer, Registered Posts: 3 Partner

Bonjour,

Dans un recette "Prépare", je recherche à construire une nouvelle colonne avec une formule.

Cependant je n'ai pas trouver comment faire pour rajouter dans ma formule, l'expression qui récupére la valeur de la cellule antérieure.

Objectifs : faire ("colonne X" / 60) + "résultat de la cellule d'avant ou antérieure sur la colonne"

En vous remerciant par avance,

Answers

  • Manuel
    Manuel Alpha Tester, Dataiker Alumni, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Core Concepts, Dataiku DSS Adv Designer, Registered Posts: 193 ✭✭✭✭✭✭✭
    Options

    Hi

    The prepare recipe works row-by-row and, when processing a row, it has no visibility to the previous or subsequent rows in the dataset. The concept of an ordered dataset is also not valid for most dataset types.

    I recommend that you have a look at the Windows recipe, which allows you to indicate a sort column and retrieve values from previous or subsequent rows. Then you apply your formula in a following prepare recipe.

    Have a look at this video as an overview of the Windows recipe: https://www.youtube.com/watch?v=mL4OxXK8-NY.

    I hope this helps.

    Best regards,

    Manuel

  • KikiClem
    KikiClem Partner, Dataiku DSS Core Designer, Registered Posts: 3 Partner
    Options

    Bonjour,

    Au final, la recette Windows ne permet pas d'ouvrir le droit de regard sur les lignes précédentes et surtout de reprendre l'index ou la valeur de la cellule "a1" pour calculer "a2" avec ("a1" + 10) par exemple. Cela revient à faire une formule excel

    Il faut peut être passer par une recette python mais je ne vois pas comment le coder ....

    Cordialement

  • Manuel
    Manuel Alpha Tester, Dataiker Alumni, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Core Concepts, Dataiku DSS Adv Designer, Registered Posts: 193 ✭✭✭✭✭✭✭
    Options

    Hi,

    I understand your problem better now. The calculation depends on the value of the same column of the previous row.

    Two questions:

    • What is the value of the column for the first row? (In excel you typically have a different value);
    • If the calculation is as simple as a2=(a1+10), isn't it enough to know the order n of the row and then do a calculation like n*10?

    In this latter scenario, the windows recipe is still useful, as it allows you to rank all rows and then you can have a prepare recipe to calculate the new column as n*10.

    I hope this helps.

  • KikiClem
    KikiClem Partner, Dataiku DSS Core Designer, Registered Posts: 3 Partner
    Options

    Bonjour,

    Tout à fait c'est la valeur précédente de la même colonne.

    • La valeur de la première ligne de la colonne sera de 0.
    • Le calcul sera plus compliqué car la valeur a2 sera une valeur calculée également et il y aura des condition à rajouter tel que si b2 & c2 sont différents de 0 alors a2=b2 sinon a2 = a1 + b2

    La recette Windows ne me permet pas de faire des calculs si complexe avec un recette perpare aprés

    Cordialement

  • Manuel
    Manuel Alpha Tester, Dataiker Alumni, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Core Concepts, Dataiku DSS Adv Designer, Registered Posts: 193 ✭✭✭✭✭✭✭
    Options

    Hi,

    Yes, you are right, since your formula is complicated, I think the only solution is to use Python, processing the rows in order and calculating the new column.

    Best regards

Setup Info
    Tags
      Help me…