You can use an extra SUM() function call (or a COALESCE() function call) to handle the missing values without notes in the log.
total=sum(of x1-x3,-sum(0,x4));
But that will return zero when all values are missing. If you want missing in that case then test whether there is at least one non-missing value. You could use the N() function.
Here is a simple example with 4 input variables.
data test;
do x1=.,1; do x2=.,2; do x3=.,4; do x4=.,1;
output;
end;end;end;end;
run;
data want;
set test;
if n(of x1-x4) then total=sum(of x1-x3,-sum(0,x4));
run;
Results:
Obs x1 x2 x3 x4 total
1 . . . . .
2 . . . 1 -1
3 . . 4 . 4
4 . . 4 1 3
5 . 2 . . 2
6 . 2 . 1 1
7 . 2 4 . 6
8 . 2 4 1 5
9 1 . . . 1
10 1 . . 1 0
11 1 . 4 . 5
12 1 . 4 1 4
13 1 2 . . 3
14 1 2 . 1 2
15 1 2 4 . 7
16 1 2 4 1 6
... View more