Probably not formula field that's for sure. I think this post might inspire your a lot, you probably just need to add the logic to exclude the holidays as well.
Update :
If I'm assuming you already have the number of days excluding the weekend.
Integer days = daysBetweenExcludingWeekends(caseRecord.CreatedDate,Datetime.now());
Integer holidays = getHolidays(caseRecord.CreatedDate,Datetime.now());
days -= holidays;
System.debug('Days excluding weekends and holidays : '+days);
public static Integer getHolidays(Date startDate, Date endDate){
List<Holiday> holidays = [ Select Id, h.ActivityDate From Holiday h Where h.ActivityDate >= :startDate And h.ActivityDate <= :endDate];
if (holidays != null)
return holidays.size();
return 0;
}