WORKDAY() is a bit tricky function. It is logical to assume, that when you want to move the date only when it falls on weekend, and otherwise to let it unchanged, the 2nd parameter will be 0. Forget logic there - with 0 as parameter you get same date back - workday or not. Instead you have to use