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 régulier
    Héberger valeurs d'un tableau dans macros-variables
    Bonjour à tous,

    Je dispose d'un fichier Excel. Que j'importe ensuite dans SAS et que je stocke dans une table : Fichier_Excel.
    Dans mon programme, j'aimerais solliciter les valeurs de ce tableau grâce à des macros-variables.

    Il n'est pas possible de faire le lien entre ma base SAS (table_SAS) et la table Fichier_Excel => Aucune clé de jointure.

    Mon code ressemble à ceci :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    data table_SAS_2 ;
    set table_SAS ;
    if nb_foyer > 100 then a_traiter = 1 ;
    if nb_enfant > 14000 then a_supp = 1 ;
     
    ...
     
    run ;


    Les valeurs 100 et 14000 sont issues de mon fichier Excel.
    Or celles-ci sont susceptibles de changer. Ainsi, l'objectif est d'automatiser le plus possible mon programme et de ne pas changer les valeurs dans le dur, dans mon programme. C'est pourquoi, je souhaiterais faire appel directement aux données de mon fichier Excel.

    Merci d'avance pour votre aide.

  2. #2
    Membre habitué
    bonjour,

    pour pouvoir comprendre un peu mieux le problème, serait-il possible de disposer du fichier Excel (ou d'un extrait représentatif ...)

    Cordialement

  3. #3
    Membre régulier
    Bonjour,

    Et voici un exemple de tableau :

    Merci d'avance

  4. #4
    Membre habitué
    Dans ces conditions, ne peut-on pas utiliser le code :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    data table_SAS_2 ;
    set table_SAS ;
    if nb_foyer > maximum then a_traiter = 1 ;
    if nb_enfant > maximum then a_supp = 1 ;
     
    ...
     
    run ;

  5. #5
    Membre régulier
    Merci pour ton message Jlp65 mais il s'agit d'un code fictif. J'ai d'autres calculs qui ne fonctionneraient pas.
    Mon objectif est de solliciter les valeurs de mon tableau Excel dans du code SAS sans avoir à les saisir dans le dur.

    Dans ton code, comment puis-je faire appel à la valeur de Maximum ?

    Merci d'avance

  6. #6
    Membre habitué
    En fait, pour pouvoir répondre à ta question, j'aurais besoin de savoir comment est organisé ton fichier Excel : à quel endroit, de quelle façon sont stockés tes valeurs seuil. N'y a-t-il pas moyen de les récupérer par leur nom de variable ?
    Sinon, si l'on doit chercher ces valeurs via leur "adresse Excel" (i.e. cellule - ex : "B5"), cela me paraît un peu compliqué à mettre en œuvre ...

  7. #7
    Membre régulier
    Les valeurs de mon fichier Excel sont saisies dans le dur.
    Je pense avoir trouvé une piste

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    proc sql ;
    select distinct Valeur_de_reference, Maximum
    into : Valeur_de_reference_Enf,
    : Maximum_Enf
    from Fichier_Excel
    where Type = "Enfant" ;
    quit ;


    Ainsi, les valeurs de mon tableau seront stockées dans les macro variables Valeur_de_reference_Enf et Maximum_Enf.

  8. #8
    Membre habitué
    Cool !

###raw>template_hook.ano_emploi###