我在做一个工作日历,应该根据一周中的某天或一个月中的某天自动填写。含义:
我每周做家务(每周都是平等)和每月家务(每个月的每个特定工作日都是平等的。)
这个想法是每当我改变日历的月份时,就会充满了每天需要完成的家务。
这是我正在做的日历(红色单元格是手工填充,其余部分自动填充下面的公式): Calendar
Week Chores表 Sheet ToDos week
月份杂志表 Sheet ToDos Month
我已经自动填写了每周家务:
=IFERROR(INDEX('ToDos Week'!$C$3:$C$98;SMALL(IF((WEEKDAY($C$3;2)='ToDos Week'!$B$3:$B$98);ROW('ToDos Week'!$B$3:$B$98)-MIN(ROW('ToDos Week'!$B$3:$B$98))+1;"");ROWS($L$1:L3)));"")
像魅力一样工作
但我现在的困难是添加月度杂务
我试图添加
=IFERROR(IFERROR(INDEX('ToDos Week'!$C$3:$C$98;SMALL(IF((WEEKDAY($F$3;2)='ToDos Week'!$B$3:$B$98);ROW('ToDos Week'!$B$3:$B$98)-MIN(ROW('ToDos Week'!$B$3:$B$98))+1;"");ROWS($L$1:L1)));INDEX('ToDos Month'!$C$3:$C$91;SMALL(IF((NETWORKDAYS(F$5-DAY(F$5)+1;F$5;holidays)='ToDos Month'!$B$3:$B$91);ROW('ToDos Month'!$B$3:$B$91)-MIN(ROW('ToDos Month'!$B$3:$B$91))+1;"");ROWS($L$1:L1))));"")
当然不起作用,因为部分" ROWS($ L $ 1:L1)"该公式将延伸,并不会给我第一次出现的月杂务(如果在同一天有一周的家务),但第三或第四..
你能帮我解决这个问题吗?
答案 0 :(得分:0)
{Big Edit} 好的,我刚刚意识到我忽略了一个真正的简单解决方案 - 正如在一个秘密编辑中所证明的那样,我们可以使用{{1获取工作日的每日任务数。因此,我们可以从“每月任务”计数中减去此数字以更正数字。
简化:每周或每月任务? (您可能需要添加/减去COUNTIF
以使其排队)
ROWS
将您现有的代码用于Weekly。对于每月,只需从ROWS中减去=IF(COUNTIF('ToDos Week'!$B$3:$B$98,WEEKDAY($C$3,2))>=ROWS($L$1:L3), "Weekly", "Monthly")
即可删除所有每周任务:
COUNTIF('ToDos Week'!$B$3:$B$98,WEEKDAY($C$3,2))
替换上面IFERROR(INDEX('ToDos Month'!$B$3:$B$98;SMALL(IF((DAY($C$3;2)='ToDos Month'!$A$3:$A$98);ROW('ToDos Month'!$A$3:$A$98)-MIN(ROW('ToDos Month'!$A$3:$A$98))+1;"");ROWS($L$1:L3)))-COUNTIF('ToDos Week'!$B$3:$B$98,WEEKDAY(C$3,2))>=ROWS($L$1:L3);"")
中的"Weekly"
和"Monthly"
,您就会得到:
IF
下面的旧答案
好的,我可以在这里想到两种可能的解决方案......第一种,也是最简单的,只有在你的每周任务和每月任务的格式不同时才有效(例如,每月任务可能都开始了#34; [M] ",例如" [M]文件发票")在这种情况下,将=IF(COUNTIF('ToDos Month'!$B$3:$B$98,WEEKDAY(C$3,2))>=ROWS($L$1:L3),IFERROR(INDEX('ToDos Week'!$C$3:$C$98;SMALL(IF((WEEKDAY($C$3;2)='ToDos Week'!$B$3:$B$98);ROW('ToDos Week'!$B$3:$B$98)-MIN(ROW('ToDos Week'!$B$3:$B$98))+1;"");ROWS($L$1:L3)));""),IFERROR(INDEX('ToDos Month'!$B$3:$B$98;SMALL(IF((DAY($C$3;2)='ToDos Month'!$A$3:$A$98);ROW('ToDos Month'!$A$3:$A$98)-MIN(ROW('ToDos Month'!$A$3:$A$98))+1;"");ROWS($L$1:L3)))-COUNTIF('ToDos Week'!$B$3:$B$98,WEEKDAY(C$3,2))>=ROWS($L$1:L3);""))
替换为ROWS(L$1:L3)
以计算每月任务(例如COUNTIF
)
如果你没有“轻松”的话。检查每周/每月的方法,下一个选项是使用数组公式中的COUNTIF(L$1:L3;"[M]*")
将SUM
中的每个条目与$L1:L3
列表进行比较(例如ToDos Month
,利用SUM(COUNTIF('ToDos Month'!$B$3:$B$91;L$1:L3))
这两个参数都是数组的事实本身会返回一个数组)
对于COUNTIF
功能的k
{编辑:删除'空白' column} 这需要为每周/每行重做一次。它基于我的测试表,其中单元格A14是05/02/2018,E14是09/02/2018,阵列公式被放入A15并向下填充到E23
SMALL
它首先要检查当天的每周任务数量。如果这大于已填写的任务数,则会查找“每周”任务,否则会查找“每月”任务 - 将现有“每月”任务计算为以"月&#34开头;