To help answer the first part of your question, here is a formula for a formula date field which will calculate to the previous Wednesday. The reason the first line is commented out is so you can have a test date in your table for manual data entry just to see how it behaves on different days of the week fort "Today".
//var date TodaysDate = [Date Test];
var date TodaysDate = Today();
var number DaysToSubtract =
Case(DayOfWeek($TodaysDate),
0,4,
1,5,
2,6,
3,7,
4,1,
5,2,
6,3);
$TodaysDate - Days($DaysToSubtract)
The second part of your question is more difficult to answer because you haven't really describe the structure of your app and the different fields and von. I will say however that extracting data out of a history of a log field is extremely messy and in the end will be a dead end. So you'll have to describe more about how are you were tracking these dates. If you do need to track dates that certain fields are updated nice just having some kind of child table which will record the history of those dates because the formulas to parse those log fields is pretty horrible
.