Если я правильно понимаю ваш вопрос, вы хотите
l1 = {{date1, value1}, {date1, value2}, {date2, value3}, {date4, value4}}
l2 = {{date3, value5}, {date4, value5}, {date5, value6}}
Стать
l1 = {{date1, value1}, {date1, value2},
{date2, value3}, {date3, 0}, {date4, value4}, {date5,0}}
l2 = {{date1, 0}, {date2, 0}, {date3, value5}, {date4, value5}, {date5, value6}}
Если так, что-то вроде этого может работать:
If[MemberQ[l1[[All,1]],#],Cases[l1,{#,_}],{#,0}]& /@ Union[l1[[All,1]],l2[[All,2]] ]
В зависимости от того, как вы хотите, чтобы обрабатывались несколько точек данных в одну и ту же дату в данной серии, вам может потребоваться предшествовать функции Cases [] с Sequence @@ или First @, например,
If[MemberQ[l1[[All,1]],#],Sequence @@ Cases[l1,{#,_}],{#,0}]& /@
Union[l1[[All,1]],l2[[All,1]] ]
Сейчас я дома, поэтому этот был проверен на синтаксические ошибки: -)