If you want to do it without any extra column(s), it depends on how tricky you want to be and how much you expect out of it. At least I think you can do it. I came up with this idea just now so it requires some testing.
If you want to highlight cells in column B based on whether column C is empty or populated, and if you can guarantee that no value in column B will ever start with the same character(s) as its corresponding cell in column C, you can do a rudimentary highlighting based on C being populated or empty.
Notice that nothing in column B begins with the letters in the corresponding cell of column C. C2 has a space before the w. If you can pad the values in column B or C with a leading space or other character (that the other column will never have), that should be sufficient.
To create the custom format for column B
- Select all cells in B (other than header and footer)
- Create a custom highlight of "Text starts with"
- Instead of typing in a value, click the green oval on the right side of the text box and then click on cell C2 in the table.
- Choose the yellow fill (or whatever format you want)
To create the opposite format for column E,
- Select the cells in column E
- Format them as yellow background
- Create a custom format of "text starts with" but click on cell F2 this time
- Choose a custom fill that will look like the other cells in the table, black text on a white background
If you don't like a leading space, you could try a trailing space and use "text ends with" as the format.
Good luck. I hope it works as intended.