The report shows calls made from midnight to midnight, while the last 24 hour usage is a rolling 24 hour window. Also, the last 24 hour usage stat only counts "metered" requests. Some API calls are "unmetered," such as the
getServerTimeStamp() call, but should still appear in the API Usage Per User report. The first fact is particularly important, because it means that reporting on the "last two days" is reporting at least 24 hours and up to 48 hours worth of usage, while the 24 hour stat is strictly less than 25 hours.
Finally, it's worth noting that the 24 hour window on the API Usage report is most likely based on GMT, although I can't find any documentation that proves or disproves this final statement. The net result is that it wouldn't be unusual for the API usage report to show at least twice what the 24 hour rolling window report shows when using "last 2 days", while the 24 hour rolling window should always show a higher number than a report with "api calls made today."
Use the API Usage Report to determine general API usage over time (how are your users utilizing the platform) and see trends (which integrations/users are over-utilizing the platform consistently), and use the 24 hour rolling window to see how many more API calls you have before your organization is locked out for over-utilization.