Good morning
I would like to create the following operations in a single cycle (to calculate min and max) currently divided into many different codes (as in the example I report here):

Code:
forvalues y=15(1)19 {
egen m=min(ROE20`y')
egen M=max(ROE20`y')
gen ROE20`y'Norm=(ROE20`y'-m)/(M-m)
drop m M
}

forvalues y=15(1)19 {
egen m=min(EBITDAVENDITE20`y')
egen M=max(EBITDAVENDITE20`y')
gen EBITDAVENDITE20`y'Norm=(EBITDAVENDITE20`y'-m)/(M-m)
drop m M
}

forvalues y=15(1)19 {
egen m=min(ROI20`y')
egen M=max(ROI20`y')
gen ROI20`y'Norm=(ROI20`y'-m)/(M-m)
drop m M
}

forvalues y=15(1)19 {
egen m=min(TOTFATTVAR20`y')
egen M=max(TOTFATTVAR20`y')
gen TOTFATTVAR20`y'Norm=(TOTFATTVAR20`y'-m)/(M-m)
drop m M
}

forvalues y=15(1)19 {
egen m=min(LEVERAGE20`y')
egen M=max(LEVERAGE20`y')
gen LEVERAGE20`y'Norm=(LEVERAGE20`y'-m)/(M-m)
drop m M
}

forvalues y=15(1)19 {
egen m=min(DE20`y')
egen M=max(DE20`y')
gen DE20`y'Norm=(DE20`y'-m)/(M-m)
drop m M
}

forvalues y=15(1)19 {
egen m=min(TOTIMMVAR20`y')
egen M=max(TOTIMMVAR20`y')
gen TOTIMMOVAR20`y'Norm=(TOTIMMOVAR20`y'-m)/(M-m)
drop m M
}

forvalues y=15(1)19 {
egen m=min(PFNEBITDA20`y')
egen M=max(PFNEBITDA20`y')
gen PFNEBITDA20`y'Norm=(PFNEBITDA20`y'-m)/(M-m)
drop m M
}
To combine these different operations in a single loop I thought of this code:
Code:
local Year1=2013
local YearN=2019

forvalues y=`=`YearN'-4'(1)`YearN' {        
    egen m1=min(ROE`y')
    egen m2=min(EBITDAVENDITE`y')
    egen m3=min(ROI`y')
    egen m4=min(LEVERAGE`y')
    egen m5=min(DE`y')
    egen m6=min(PFNEBITDA`y')
    egen m7=min(TOTFATTVAR`y')
    egen m8=min(TOTIMMVAR`y')
    egen M1=max(ROE`y')
    egen M2=max(EBITDAVENDITE`y')
    egen M3=max(ROI`y')
    egen M4=max(LEVERAGE`y')
    egen M5=max(DE`y')
    egen M6=max(PFNEBITDA`y')
    egen M7=max(TOTFATTVAR`y')
    egen M8=max(TOTIMMVAR`y')
    gen ROE`y'Norm=(ROE`y'-m1)/(M1-m1)
    gen EBITDAVENDITE`y'Norm=(EBITDAVENDITE`y'-m2)/(M2-m2)
    gen ROI`y'Norm=(ROI`y'-m3)/(M3-m3)
    gen LEVERAGE`y'Norm=(LEVERAGE`y'-m4)/(M4-m4)
    gen DE`y'Norm=(DE`y'-m5)/(M5-m5)
    gen PFNEBITDA`y'Norm=(PFNEBITDA`y'-m6)/(M6-m6)
    gen TOTFATTVAR`y'Norm=(TOTFATTVAR`y'-m7)/(M7-m7)
    gen TOTIMMVAR`y'Norm=(TOTIMMVAR`y'-m8)/(M8-m8)
    drop m* M*
}
Second, is it possible to create a more simplified form? avoiding to create several m (m1, m2 ....) and M (M1, M2 ....).
Thanks again!