Bonjour,

Je bloque sur une creation automatique de variable en fonction de champs dans ma table.
Je souhaiterais creer des variables en fonction d'un décalage en mois entre 2 dates.

Exemple :
si il y a 3 mois de décalage mettre la valeur de var1 dans var1_M03.
si il y a 2 mois de décalage mettre la valeur de var1 dans var1_M02.
....

En faite le bloque pour récupérer sur chaque ligne en macro_variable le nombre de décalage.

Ci dessous un jeu de données, je bloque sur la maro tmp.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
data don;
format date_1 DDMMYY10. date_2 DDMMYY10.;
input var1 var2 date_1 date_2 ;
cards;
150 10 15000 15555 
200 20 15000 15255 
750 50 15000 . 
800 00 15000 15105 
1020 20 15000 . 
12 2 15000 15705 
8 81 15000 . 
144 14 15000 15665 
;
run;
data don2;
	set don;
nb_mois = intck("MONTH",date_1,date_2);
run;
%macro tmp();
data don_tmp;
	set don2;
call symput('nb_mois',nb_mois);
%sysfunc(compress(%sysfunc(cat(var1_M,nb_mois)))) = var1;
run;
%mend;
%tmp;
PS : j ai essayer de mettre :
%sysfunc(intck("MONTH",date_1,date_2));
a la place de nb_mois dans ma macro sans succes.

Merci d avance