大家好啊,我是阿宽,很高兴我们又见面了,整理一下最近群里的问题,希望对大家有所帮助哦~~ 每行随机填充✓,最少不低于20个,最多不高于25个,其他都填充×
最终效果如下图,切换到2026年2月,自动计算本月只有28天,考勤表自动调整,同样2026年3月,自动调整为31天,4月调整为30天等。
这里主要用了几个公式,简单拆解一下。
每个月的第一天都是1号,用DATE函数拼出每个月的第一天。=IFERROR(IF(E4+1<=EOMONTH($E$4,0),E4+1,""),"")
3号-31号公式,把该公式向右填充即可。
公式简单解释:
EOMONTH($E$4,0),计算该月的最后一天
IF(E4+1<=EOMONTH($E$4,0),E4+1,""),左边单元格+1天不大于该月最后一天,那就是左边单元格+1,大于就为空
=IF(SORTBY(SEQUENCE(,DAY(EOMONTH($E$4,0))),RANDARRAY(,DAY(EOMONTH($E$4,0))))<=RANDBETWEEN(20,25),"√","×")
EOMONTH($E$4,0),计算该月的最后一天
DAY(EOMONTH($E$4,0)),计算该月一共有多少天
SEQUENCE(,DAY(EOMONTH($E$4,0))),生成一个横向的字符串,即1到该月的最后一天,如:1、2、3... ...31
RANDARRAY(,DAY(EOMONTH($E$4,0))),随机生成一个横向的字符串,该月有多少天就生成多少个0或1(0和1的总数和该月天数一致)
SORTBY(SEQUENCE(,DAY(EOMONTH($E$4,0))),RANDARRAY(,DAY(EOMONTH($E$4,0)))),把第3点生成字符串按第4点生成的字符串排序
RANDBETWEEN(20,25),随机生成20至25之间的一个整数,包括20和25
整个公式,把打乱顺序的数字,小于等于6点生成的数字的填“√”,大于的填“×”
好了,今天简单介绍到这里,创作不易,记得一键三连哦~~
如您有其他方法或更优方法,欢迎各位大佬批评指正!