The simplest thing to do would be to use conditional formatting hide the expression box if the fields are blank, or if they're not always blank at the same time, split it into three expression boxes: [field1][, ][field2] and hide the middle one when field1 or field2 is blank.
Similarly, the easiest thing for your second scenario would be to have five expression boxes side-by-side: [morning][, ][afternoon][, ][evening], and show or hide them appropriately based on the state of the checkboxes.