|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Xavier Chargé d'Etudes Statistiques Inscription : février 2009 Messages : 39 ![]() |
bonjour,
je souhaite tester dans une macro %do i = 1 to &nb; l'existence d'une variable. Je m'explique : je dois faire des calculs sur un type de variable : CHOIXn ... j'ai plusieurs choix : CHOIX1 CHOIX2 CHOIX3 ... CHOIX7 dans certaines tables il peut me manquer certains choix... par exemple dans la table1 je peux avoir tous les CHOIX, dans la table2, je peux avoir seulement CHOIX1, CHOIX5 et CHOIX7... ça dépend des périodes. sur ces variables, je dois faire des calculs... mais avant de faire des calculs sur ces variables, je dois vérifier si elle existe, et si elle n'existe pas... passer à la suivante. Code :
j'aimerais tester l'existence de la variable, si elle existe, je fais le calcul sinon je passe au i suivant. Merci pour votre aide ! |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() |
Bonjour,
Regarde l'avant dernier poste, il traite du même problème. Cordialement
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
|
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 957 ![]() |
Bonjour,
1) C'est quoi les choix ici 2) %do i=1 %to doit figurer dans une macro |
|
|
00
|
|
|
#5 | |
|
Invité régulier
![]() Xavier Chargé d'Etudes Statistiques Inscription : février 2009 Messages : 39 ![]() |
Citation:
&arbo = CHOIX %do i=1 %to 7; &arbo.&i. ; %end; ==> CHOIX1 ==> CHOIX2 ==> CHOIX3 ==> CHOIX4 ==> CHOIX5 ==> CHOIX6 ==> CHOIX7 2) quelle est ton idée ? a priori oui, mais si tu as une solution intéressante... |
|
|
|
00
|
|
|
#7 | |||
|
Invité régulier
![]() Xavier Chargé d'Etudes Statistiques Inscription : février 2009 Messages : 39 ![]() |
Citation:
Code :
|
|||
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 957 ![]() |
Tu peux l'adapter à ton cas si tu comprends ce programme, n'hésites pas à poser des questions si jamais tu comprends pas.
Code :
|
||
|
|
00
|
|
|
#9 | |
|
Invité régulier
![]() Xavier Chargé d'Etudes Statistiques Inscription : février 2009 Messages : 39 ![]() |
Citation:
|
|
|
|
00
|
|
|
#10 | |||
|
Invité régulier
![]() Xavier Chargé d'Etudes Statistiques Inscription : février 2009 Messages : 39 ![]() |
Citation:
dans ma table source, j'ai 1 colonne ID_MKG qui est numérique et j'ai autant de colonne CHOIXn que possible. Je peux avoir CHOIX1, CHOIX2, CHOIX7; comme je pourrait avoir CHOIX1, CHOIX2, CHOIX3, CHOIX4, CHOIX5, CHOIX6, CHOIX7. Toutes sont numériques. Je dois créer une macro qui multiplie à chaque ligne la colonne CHOIXn par ID_MKG... mais, et cette macro doit marcher que j'ai 1 colonne CHOIX ou 7 colonnes CHOIX. suis-je clair ? |
|||
|
|
00
|
|
|
#11 | ||||
|
Membre régulier
![]() Inscription : novembre 2009 Messages : 77 ![]() |
Code :
et tu as très facilement tes choix en macros. Si tu préfères tu les comptes d'abord avec select count(*) into :n puis Code :
n=3 et &choix1=choix2 &choix2=choix4 &choix3=choix5 Voili voilou. |
||||
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 957 ![]() |
Maintenant oui c'est clair, je suis en train d'implémenter
|
|
|
00
|
|
|
#13 |
|
Invité régulier
![]() Xavier Chargé d'Etudes Statistiques Inscription : février 2009 Messages : 39 ![]() |
|
|
|
00
|
|
|
#14 | |
|
Invité régulier
![]() Xavier Chargé d'Etudes Statistiques Inscription : février 2009 Messages : 39 ![]() |
Citation:
|
|
|
|
00
|
|
|
#15 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 012 ![]() |
j'aimerai participer, mais je n'ai pas bien compris le besoin. tu peux expliquer un peu plus? car il se peut que tu n'as pas besoin de tester avec des macros.
|
|
|
00
|
|
|
#16 |
|
Membre régulier
![]() Inscription : novembre 2009 Messages : 77 ![]() |
Ma réponse est pour celui (c'est toi? Il me semble que oui dans ton post de 15h57) qui a un dataset contenant n variables parmi choix1 ... choix7.
Pour cette question en particulier c'est une des approches qui fonctionne. Et (mais c'est personnel) je trouve que c'est la plus simple et la plus rapide à mettre en oeuvre. |
|
|
01
|
|
|
#17 | |
|
Invité régulier
![]() Xavier Chargé d'Etudes Statistiques Inscription : février 2009 Messages : 39 ![]() |
Citation:
|
|
|
|
01
|
|
|
#18 | ||
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 957 ![]() |
Tu peux tester la macro avec deux tables différentes pour constater que ça fonctionne bien (table1: choix1 choix2 choix3 et table2: choix1 et choix2).
Tu peux en mettre autant de choix que tu veux. Code :
|
||
|
|
00
|
|
|
#19 | |
|
Invité régulier
![]() Xavier Chargé d'Etudes Statistiques Inscription : février 2009 Messages : 39 ![]() |
Citation:
J'ai une base de données qui contient au moins ça : 1 variable ID_MKG qui est numérique 1 à n variable CHOIXn qui sont numérique.. je dois, pour chaque variable CHOIXn faire un calcul en fonction de ID_MKG. Par exemple : je peux avoir au mois de février 3 choix : CHOIX1, CHOIX2, CHOIX5 je peux avoir au mois de juin 7 choix : CHOIX1 à CHOIX7. dans ma macro, qui ne doit pas changer d'un mois à l'autre, je dois tester si la variable CHOIXn existe avant d'effectuer mon calcul... par exemple, pour le mois de février les choix3, choix4, choix6 et choix7 n'existent pas. Donc dans ma boucle %do i=1 to 7, je souhaiterais qu'avant de faire le calcul sur la colonne CHOIXi, la macro vérifie que la colonne existe bien, si elle existe, on fait le calcul ID_MKG*CHOIXi, si la variable CHOIXi n'existe pas, on passe directement au i+1... est-ce plus clair ? |
|
|
|
00
|
|
|
#20 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 957 ![]() |
Avec ma méthode, tu ne boucles pas sur 7 mais tu fais qu'avec ce que tu as.
Si y en a que 5 ce mois, alors on fait avec ... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com