作者pointchi (pointchi)
看板Office
标题[算表] 储存格排除休假日後带入资料
时间Thu Dec 3 10:24:12 2020
软体:Excel
版本:2016
请教,我有一个档案如下附图,已经将整年份的日期标示以及星期六(绿色字体)、
星期日与国定假日(都是红色字体)设定格式化条件。
https://i.imgur.com/Esxc67p.jpg
https://i.imgur.com/0Yroyvm.jpg
问题
1﹐我如何於起头01/02输入A後(表格旁边的组别),接下来分别於上班日依序带
入B.C.D...一直循环到月底,接着02/03延续上月末输入F後,也是循环带入
A.B.C.....
或者甚至是01/02输入A後接续一直到12月可以一次全部带入A.B.C...循环。
2﹐02/15为例是补班日,有办法於设定格式化条件排除,然後上述的规则
带入D
档案连结如下:
https://reurl.cc/A8rNvp
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.168.96.105 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1606962258.A.EEF.html
1F:→ soyoso: 补班日排除,加上and(*),以countif,补班日d栏,计数为0 12/03 10:31
2F:→ soyoso: 循环上以函数mod,先判断日期是否为空字串後,再判断日期 12/03 11:19
3F:→ soyoso: 是否为六日weekday、是否是国定休假日countif为0或match为 12/03 11:19
4F:→ soyoso: 错误、或是否为补班(类似国定休假日countif大於0、match为 12/03 11:19
5F:→ soyoso: 数字),mod的number就要看先前组别的个数,二个1.公式上方 12/03 11:19
6F:→ soyoso: 列b:af组别个数,2.公式所在组别A栏起,到公式所在左侧储 12/03 11:19
7F:→ soyoso: 存格的个数,这里的个数为非<>空字串"",加上定位(组别是 12/03 11:19
8F:→ soyoso: 哪一个开始,储存格c1)以match 12/03 11:19
回S大,小的研究您上面的说明一周了,奈何还是搞不定,
资质不够,是否可以明示范例~感恩。
※ 编辑: pointchi (118.168.9.233 台湾), 12/08/2020 10:51:53
9F:→ soyoso: 搞不定的话,提供档案,看是哪个部分要调整的 12/08 11:17
回S大,档案连结短址为:
https://reurl.cc/A8rNvp
感谢您。
※ 编辑: pointchi (118.168.9.233 台湾), 12/08/2020 11:34:15
10F:→ soyoso: 没有看到搞不定的部分在哪个储存格?所以也就没有办法给原 12/08 11:39
11F:→ soyoso: po要调整的了 12/08 11:39
12F:→ soyoso: 要提供的是已写公式,但无法达成的档案,而不是提供同内文 12/08 11:40
13F:→ soyoso: 连结的档案 12/08 11:40
14F:→ soyoso: 如果是内文档案那要达成的逻辑我已经写在12/03的回文内了 12/08 11:41
回S大,抱歉没有说清楚。
目前我将B1储存格设定格式化条件:
星期六(绿色字体)、星期日与国定假日(都是红色字体),且补班日
(黑色字体,这个前几天搞定,当时脑筋太死没有转过来,就跟国
定假日设定是一样的)设定格式化条件,并将套用至其余有标示日
期的栏位。
我於AG栏先建立好组别代号A.B.C.D.E.F,
然後於每月第一个工作日输入组别(以C2储存格为例 输入A),
接下来於储存格D2.E2.F2...我要如何设定公式,D2.E2.F2...
会排除周六、日与国定假日後依序带入组别代号B.C.D...
这个是完全无头绪。
※ 编辑: pointchi (118.168.15.23 台湾), 12/09/2020 11:18:57
15F:→ soyoso: 1.判断什麽条件下回传空字串、什麽条件下循环组别,看日期 12/09 11:42
16F:→ soyoso: 1.1 是否空白储存格,如2/29的右二格 12/09 11:42
17F:→ soyoso: 1.2 是否为六、日(函数weekday) 12/09 11:42
18F:→ soyoso: 1.3 是否在国定补班日内(函数countif或match) 12/09 11:42
19F:→ soyoso: 1.4 是否在国定休假日内(函数countif或match) 12/09 11:42
20F:→ soyoso: 1.5 上述match看是以数字(函数isnmuber)或是错误值 12/09 11:42
21F:→ soyoso: (函数isna)为真为假就自行调整 12/09 11:42
22F:→ soyoso: 2.循环组别(函数mod,mod的number为) 12/09 11:42
23F:→ soyoso: 2.1 公式上方b:af组别个数,就是排除日期(数字)和 12/09 11:42
24F:→ soyoso: 非空字串,二个条件,函数(sumproduct、 12/09 11:42
25F:→ soyoso: 排除日期可以istext、iseven或isodd看row列号) 12/09 11:42
26F:→ soyoso: 2.2 加上公式左侧a栏起的组别个数,就是非空字串, 12/09 11:42
27F:→ soyoso: 一个条件,逻辑值要运算或函数value 12/09 11:42
28F:→ soyoso: 2.3 再加上是从谁开始的,就以储存格c1去match组别ag:ag 12/09 11:42
29F:→ soyoso: 3.对应组别 12/09 11:42
30F:→ soyoso: 3.1 循环组别的用意是,看2.3从谁开始,如A(1起的话) 12/09 11:42
31F:→ soyoso: 1,2,3,4,5,6,1...,那C(3起的话)3,4,5,6,1,2,3.... 12/09 11:42
32F:→ soyoso: 3.2 再以这个数值看要配合函数index、offset或是indrect 12/09 11:42
33F:→ soyoso: 来回传组别实际对应的值 12/09 11:42