Daily rates are noisy, but maybe you can find a function that fits the accumulated values. This is an example to get you started using the deaths.
I downloaded the statistical data from the web into my hard drive (https://data.hdx.rwlabs.org/dataset/rowca-ebola-cases#)
Increase memory stack
Needs["JLink`"];
ReinstallJava[JVMArguments -> "-Xmx2048m"];
Read the file
data = Import[
"C:\\Users\\myUser\\Downloads\\Data Ebola (Public).xlsx", {"Data",
2}];
titles = data[[1, All]];
data = Rest@data;
iberiaValues =
DeleteCases[
Cases[data, {"Liberia", "National", "Deaths", number_,
date_, ___} -> {date, number}], {_, ""}];
ListPlot[Tooltip[liberiaValues[[All, 2]]]]

Some datapoints seem erroneous. Eliminate from the dataset.
liberia =
DeleteCases[
liberiaValues, {_,
a_ /; Or[a == 2168, a == 2106, a == 2014, a == 2104, a == 4181,
a == 2403, a == 2443, a == 2446]}];
Data looks like the logistics curve. Lets find a model based on date. Use whatever model curve is best for you.
First make the x axis the number of days since the first recorded death.
liberia[[All, 1]] =
QuantityMagnitude[DateDifference[{2014, 4, 8}, #, "Day"]] & /@
liberia[[All, 1]];
nlm = NonlinearModelFit[liberia,
L / (1 + Exp[-k (x - x0)]), {L, k, x0}, x]
Show[ListPlot[liberia],
Plot[nlm[x], {x, 0, 305}, PlotStyle -> {Black, Dashed}]]

Then use model to interpolate data as needed.
ListInterpolation
$\endgroup$