Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre à l'essai
    Stocker une valeur en variable pour utiliser en SET ANALYSIS
    Bonjour,

    Voici ma problématique :

    J’ai une table article et une table vente qui sont reliées par le champ « N° »

    ARTICLE
    N° Rayon Famille
    1 A AA
    2 A AA
    3 A AB
    4 B BA
    5 B BB

    VENTES
    N° Quantité Montant
    1 2 30
    1 2 30
    2 2 30
    2 2 30
    3 2 30


    Je voudrais pouvoir, lorsque j’ai une sélection active sur l’article N° = 1, avoir un tableau (ou un graphique) ou je pourrais faire un cumul des quantités de tous les articles possédant la même famille que mon produit présent dans ma sélection active.

    Donc après avoir sélectionner l'article N° 1 dans ma sélection active, avoir les tableaux suivants (ça je sais faire) :

    ARTICLE
    N° Rayon Famille
    1 A AA

    Ventes
    N° Quantité Montant
    1 2 30
    1 2 30

    Mais aussi un autre tableau :

    Ventes
    N° Quantité Montant
    1 2 30
    1 2 30
    2 2 30
    2 2 30

    En cherchant sur le net j’ai vu que je pourrais arriver à obtenir des résultats avec la fonction SET ANALYSIS de type {1} (me permettra de ne pas tenir compte de la sélection active sur le N° article), mais je n’arrive pas à voir comment je peux récupérer (stocker en variable?) l’information de la valeur de ma famille , alors que ma sélection active se porte sur un N° article.

    J’espère être assez clair, il me semble qu’il n’y a rien d’infaisable mais une notion que je ne maîtrise pas.

    Merci beaucoup.

  2. #2
    Modérateur

    Bonjour,

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    sum(Montant)

    donne la somme des montants.

    C'est équivalent à
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    sum({$} Montant)
    (sélection active).

    On veut supprimer le filtre sur le numéro :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    sum({$ <[N°]=>} Montant)

    Ainsi, quand on sélectionne un numéro, ce filtre n'est pas pris en compte.

    Mais on veut ajouter un filtre sur la famille, pour qu'elle prenne les valeurs possibles selon la sélection actuelle :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    sum({$ <[N°]=, Famille=P({$} Famille)>} Montant)

    (la fonction "P(...)" veut dire "les valeurs possibles)

    On peut simplifier en
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    sum({$ <[N°]=, Famille=P(Famille)>} Montant)



    Si on fait un tableau avec comme dimension "N°", on obtient

    N° Quantité Montant
    1 4 60
    2 4 60


    Pour avoir le détail des ventes, il faut impérativement qu'elles aient un identifiant, que l'on peut rajouter au chargement :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    VENTES:
    LOAD *, recno() AS ID_Vente;
    LOAD * INLINE [
    N°, Quantité, Montant
    1, 2, 30
    1, 2, 30
    2, 2, 30
    2, 2, 30
    3, 2, 30
    ];


    On mettra ainsi comme dimension "ID_Vente" et "N°".


    ID_Vente N° Quantité Montant
    1 1 2 30
    2 1 2 30
    3 2 2 30
    4 2 2 30

  3. #3
    Membre à l'essai
    Bonjour PhunkyBob,

    Alors comment dire.... Merci C'est exactement ça, explication très claire et découverte d'une nouvelle fonction P() qui m'a été très utile pour avancer sur mon projet.

    Je vais abuser un peu, mais découvrant au fur et à mesure la puissance de l'outil, je me retrouve confronté à de nouvelles problématiques en poussant encore plus loin l'analyse.

    1°) J'ai donc pu créer mon tableau, indépendant de mes sélections actives, mais filtré sur une valeur inhérente à ma sélection active.
    Toutes mes expressions calculées apparaissent correctement, en revanche je n'arrive pas à afficher du texte (ma désignation article dans mon cas de figure). La désignation apparaît uniquement sur l'article faisant partie de la sélection active.

    Formule d'une expression calculée qui marche correctement:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    num(((sum({$<[N° article]=,[Libellé sous-famille]=P([Libellé sous-famille])>}[Quantité avoir]))/sum({$<[N° article]=,[Libellé sous-famille]=P([Libellé sous-famille])>}[Quantité à facturer])),'# ##0.00%')


    Formule d'une expression calculée que je n'arrive pas à faire fonctionner (logique je n'arrive pas à rajouter le set analysis):
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    =TEXT([Désignation])


    2°) Formule un peu plus complexe dans laquelle je n'arrive pas à intégrer mon set analysis et mon filtre précédent. La formule marche parfaitement (elle n'est peut être pas optimisée, mais elle donne le résultat attendue).
    C'est une formule permettant de déterminer la date de prochaine rupture de mon produit en fonction des prochaines dates de réception, quantité et de mes ventes moyennes...

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    =date(date(today()+num((([Quantité disponible])+[Encours achats confirmés])/(((sum([Quantité à facturer])+[Qté RAL cdes client totale])/((today()-[Date première réception])))),'# ##0.'))
    -num(avg(if([Code magasin]='TOTO',null(),([Date de rangement]-[Date commande achat]))),'# ##0.'))


    Comme pour le point 1, la valeur apparaît bien sur la ligne correspondant à la sélection active, mais pas sur les autres lignes (logique je n'ai pas intégré mon set analysis dans l'expression...)

    Ce sont surement des questions de débutants, j'essaye d'avancer un maximum tout seul (et avec votre aide) en attendant ma formation...

    Merci beaucoup, je vous souhaite une bonne journée

  4. #4
    Modérateur

    1° : la fonction "text" sert à convertir quelque chose en texte.

    Ce que vous cherchez, c'est la fonction "only()" qui permet de retourner la valeur correspondante si elle est unique.
    "only()" accepte les Set Analysis.

  5. #5
    Modérateur

    2° Dans cette formule, je ne vois aucune Set Analysis, alors qu'il devrait y en avoir à toutes les fonctions d'agrégation.

###raw>template_hook.ano_emploi###