標題:
[發問]
如何判斷7休1超時計算(含前月份)
[打印本頁]
作者:
jackson7015
時間:
2018-8-13 11:47
標題:
如何判斷7休1超時計算(含前月份)
如果要判斷七天內是否有出現數字"5"、"6"、"11"等三數字
請問如何判斷前月份的最後六天的格化語法;包含前月份有28天29天30天及31天的月份
第七天開始的很好計算,但包含到跨月部分的天數就卡住了,在請站上大大可以協助一下,感謝
[attach]29202[/attach]
作者:
a5007185
時間:
2018-8-13 14:02
回復
1#
jackson7015
建議是讓日期連續排列,
這樣就不用考慮跨月的問題,
而格式化公式也與你原先設定相同,
也無須調整,如圖所示。
[attach]29206[/attach]
作者:
jackson7015
時間:
2018-8-13 14:17
回復
2#
a5007185
感謝大大的回覆
因為有其他檔案和格式存在,所以前月份僅能放置後方
檔案中的儲存格也有部分隱藏,代表皆有其他功能使用
加上如果只是單純接續後月份,也有大小月閏年29天問題
所以想詢問是否有直接判斷前後部分的辦法
作者:
ML089
時間:
2018-8-13 16:59
前個月最後6天
BV48 =IF(COLUMN(A1)>6,"",$D$48-7+COLUMN(A1))
BV49 =TEXT(BV61,"[$-804] aaa;;;")
作者:
jackson7015
時間:
2018-8-13 17:57
回復
4#
ML089
感謝版主大大的回復
對不起,應該是我的表達錯誤了
需求是要[D50:I58],這區間的儲存格格式化,判斷前七天的內容有沒有包含"5"、"6"、"11"等三數字,有的話就成立(紅字)
第七天因為可以判斷當月的部分,所以很容易
可是前6天因為包含到了[BV50:CE58]的範圍判斷,所以不曉得該如何著手
再請前輩看看,謝謝
作者:
ML089
時間:
2018-8-13 18:11
回復
5#
jackson7015
D50 格式化公式
=SUM(COUNTIF(OFFSET(D50,,,,-MIN(7,COLUMN()-3)),{5,6,11}))
作者:
jackson7015
時間:
2018-8-14 10:34
回復
6#
ML089
感謝版主ML089的幫忙
目前當月份的第七天開始都能用此語法或類似語法做判斷
(版大的語法因為聯集參數,所以不能用在格式化條件中)
有困難的地方是當月前六天要判斷[BV50:CE58]的範圍不知道要怎麼編寫
有查詢過站上相關資料,大部分都是以連續日期方式解決
但是因為格式關係,所以不能更動到前面的部分了
可以的部分就是再做出分頁放前月份來做連動判定
是否可再請大大們協助看看,感謝各位
作者:
准提部林
時間:
2018-8-14 15:13
D50.條件格式
=N(COUNT(0/COUNTIF(OFFSET(D50,,,,-MIN(7,DAY(D$48))),CHOOSE(ROW($1:$3),5,6,11)),0/(COUNTIF(OFFSET($CD50,,,,MIN(,DAY(D$48)-7)),CHOOSE(ROW($1:$3),5,6,11))))=0)
上月最後六天, 必須從CD欄往左遞減排列
作者:
jackson7015
時間:
2018-8-14 15:47
回復
8#
准提部林
感謝准提部林版大的回應
先感謝版主大大的協助,公式可正常運作
公式的編寫要慢慢消化了,好長一串要分解理解
雖然需要手動變動前月份的最後一天日期至CD位置,但已經解決大部分問題了
至於前月份最後六天的部分,是否僅能以手動方式排序 ?
因為目前是以巨集直接複製後面儲存格至[BV50:CE58],然後再做當月份表格
所以沒有判斷以哪一日當做最後一天
再次感謝幫忙的前輩
作者:
ML089
時間:
2018-8-15 11:26
回復
7#
jackson7015
忘記是用在格式化公式不能用 {5,6,11}
參考准大公式改為 CHOOSE(ROW(1:3),5,6,11),這是很棒的方法。
你的EXCEL資料
D48:AG48 為 2007/9/1 : 2007/9/30
BV48:CD48 為 2007/9/22 : 2007/9/30
是否應該改為
BV48:CE48 為 2007/8/22 : 2007/8/31
作者:
jackson7015
時間:
2018-8-15 13:17
回復
10#
ML089
感謝大大的回覆
日期因為臨時填入的,所以重複到了
正常應該是 2007/8/22 : 2007/8/31 沒錯
作者:
ML089
時間:
2018-8-15 14:40
本帖最後由 ML089 於 2018-8-15 14:44 編輯
回復
11#
jackson7015
D48:AG48 為 2007/9/1 : 2007/9/30
BV48:CE48 為
2007/8/22 : 2007/8/31 原檔案要修正
D50格式化公式,擇其一使用
=COUNT(0/(($D$48:$CE$48<=D$48)*($D$48:$CE$48>D$48-7)*($D50:$CE50=CHOOSE(ROW($1:$3),5,6,11))))
=COUNT(0/(($D$48:$CE$48<=D$48)*($D$48:$CE$48>D$48-7)*(($D50:$CE50=5)+($D50:$CE50=6)+($D50:$CE50=11))))
作者:
jackson7015
時間:
2018-8-16 09:26
回復
12#
ML089
感謝 ML089 版主大大的不吝回復
公式可以正常判斷"當月"的部分
測試前月份的更動班表後,沒有連動到當月份的判斷公式
而公式在格式化公式的判斷上也相反(這容易解決)
是否可以再麻煩大大看看,感激不盡
作者:
ML089
時間:
2018-8-16 09:36
回復
13#
jackson7015
測試前月份的更動班表後,沒有連動到當月份的判斷公式
這句不是很懂
作者:
jackson7015
時間:
2018-8-16 10:42
回復
14#
ML089
抱歉,剛剛在重新測試了幾次,發現公式正常無誤
但是因為使用在格式化中要再出現"5.6.11"時是FALSE的判定
所以格式化公示改成
D50=NOT(COUNT(0/(($D$48:$CE$48<=D$48)*($D$48:$CE$48>D$48-7)*($D50:$CE50=CHOOSE(ROW($1:$3),5,6,11)))))
然後又因為無上班時也出現動作,所以只好在格式化條件表中多加了
D50=IF(OR(LEN(D$48)<1,LEN($BU50)<1),TRUE,FALSE)
且在表列中的TURE成立就不再繼續判定下式
再次感謝ML089大大的幫忙
作者:
ML089
時間:
2018-8-16 13:12
回復
15#
jackson7015
$BU50:上月工作天數
D:I 需要上個月資料,J以後就不用了,
格式化條件表中多加了
D50=IF(OR(LEN(D$48)<1,LEN($BU50)<1),TRUE,FALSE)
會不會有反效果,當 LEN($BU50)<1 時,J以後的判斷是否被影響
作者:
jackson7015
時間:
2018-8-16 14:25
回復
16#
ML089
目前測試 J 以後的格式化還沒有出現影響的樣子
因為其他儲存格也有很多資料,還沒出現錯
如果有影響的話就把准提部林 大大的公式拿來用在七天後的
而LEN($BU50)<1 是因為那欄列會放人名,所以用來判斷有無人員及上班日
暫時還沒看出影響..
而剛剛公式上線後,也抓出了有超7休1的人員
感謝ML089版主的幫忙~
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)