You can set up these counts as global variables on the layout with a script to update them triggered onRecordLoad for the dashboard.
Counting across a relationship is simple with the Count function, once you have the appropriate relationship established. However, a realtioship or count on a blank value requires some special attention. One method (there are others) is to create a calculation using two relationships, one returning the total count of all records in teh related table with a cartesian join (X- relation), and another to return a relationship of values >= to a constant (0 or 1) in your dashboard table. Then you can calculate the difference between the results of those 2 to find the number of blanks in the base table.