Yes. It is a pretty classic problem within Crystal. There are a couple possible solutions.
One is to group your report based on skill set. You can then run summaries on just the current group. This is the simplest solution, but frequently doesn't meet other demands of the report.
Another is to do a running total. You can do a running total to add the hours if the skill set is 5000, and add 0 otherwise. This has the downside that it is tricky at best to reference a running total with any other formulas. So, it pretty much is only useful if you just want to display the total in the footer.
Another option is to use a formula to zero out any values you don't want to see. So, put a formula in the details section that looks like:
WhileReadingRecords
IF {t_Skill_Group.SkillTargetID} = 5000 THEN
{t_Agent_Skill_Group_Half_Hour.LoggedOnTimeToHalf}
ELSE
0
You can then do your SUM on this formula, and the zero values are effectively ignored. Note that this does not affect COUNT, and skews AVERAGE.
The most complex and flexible solution is to use a global variable. Create a formula that looks like:
WhileReadingRecords
Global NumberVar loggedon1;
IF {t_Skill_Group.SkillTargetID} = 5000 THEN
loggedon1 := loggedon1 + {t_Agent_Skill_Group_Half_Hour.LoggedOnTimeToHalf}
Then, you can just write a formula to return the final value of loggedon1 in the report footer. This is typically used for more complex scenarios than yours. Also, note that, as written, this formula does not distinguish between Agents. I'll leave that as an exercise for the reader.