The formula first checks that there is text in the B column. If not, it displays blank. Then it builds a bar using a result of Actual divided by Budget. If they are equal, the result will be one. I set the maximum bar size to 1.2, but change that number if you want the maximum bar to be a different percentage. If there is no budget, you can’t divide by zero, so I check for that error and display nothing if that’s the case.
I was getting errors when I tried using the standard arrayformula() function, so I’m offering the fill down method. Maybe someone else can share a solution using arrayformula().