if(TODAY()=DATEINMONTH(TODAY(),-1),DATEINMONTH(MONTHDELTA(TODAY(),-1),-1),DATEDELTA(DATEINWEEK(today(),5),-7))
修改后
if(INARRAY(WEEK(TODAY()), UNIQUEARRAY(MAPARRAY(RANGE(DATEINMONTH(TODAY(), 1), DATEINMONTH(TODAY(), -1)), WEEK(ITEM))))=1,DATEINMONTH(MONTHDELTA(TODAY(),-1),-1),if(or(weekday(today())=0,weekday(today())=6),"",DATEDELTA(DATEINWEEK(today(),5),-7)))
公式解释
INARRAY(WEEK(TODAY()), UNIQUEARRAY(MAPARRAY(RANGE(DATEINMONTH(TODAY(), 1), DATEINMONTH(TODAY(), -1)), WEEK(ITEM)))) 第几周 第一周就返回上个月最后一天,
or(weekday(today())=0,weekday(today())=6) 周六日 不是周六日 就返回上周五
测试了一下,有的地方不需要转,有的又需要 有点怪
if(INARRAY(WEEK("20220703"), UNIQUEARRAY(MAPARRAY(RANGE(DATEINMONTH("20220703", 1), DATEINMONTH("20220703", -1)), WEEK(ITEM))))=1,DATEINMONTH(MONTHDELTA("2022-07-03",-1),-1),if(or(weekday("20220703")=0,weekday("20220703")=6),"",DATEDELTA(DATEINWEEK("2022-07-03",5),-7)))
修改
if(ROUNDUP((DAY("2022-06-12") + (IF(WEEKDAY(DATEINMONTH("2022-06-12", 1)) = 0, 7, WEEKDAY(DATEINMONTH("2022-06-12", 1)))) - 1) / 7, 0)=1,DATEINMONTH(MONTHDELTA("2022-06-12",-1),-1),if(or(weekday("2022-06-12")=0,weekday("2022-06-12")=6),"",DATEDELTA(DATEINWEEK("2022-06-12",5),-7)))