Your formula in existing set up can be shortened to...
=COUNTIFS(Sheet2!$D$2:$D$51,"hold*",Sheet2!$A$2:$A$51,A2)
To make it dynamic, replace range with dynamic named range.
To remove 0 there's several ways.
1. To remove 0 from display (but retain 0 as value in cell)
Go to Options->Advanced and scroll down to "Display options for this worksheet" and choose "Sheet1". Uncheck "Show a zero in cells that have zero value"
2. Similar to above but only applies to range and not entire sheet
Highlight range ->Format Cells->Custom
Format formula = 0;-0;;@
3. Use If function to return blank.
=IF(COUNTIFS(Sheet2!$D$2:$D$51,"hold*",Sheet2!$A$2:$A$51,Sheet1!A2)=0,"",COUNTIFS(Sheet2!$D$2:$D$51,"hold*",Sheet2!$A$2:$A$51,Sheet1!A2))
See attached sample.