Xcelvba wrote: Wed Apr 20, 2022 8:31 am
norkaz wrote: Tue Apr 19, 2022 3:36 pm
...
G2
=IF(OR(IFERROR(LOOKUP(INDEX(MATCH($D$2:$D$2000/($E2=$B$2:$B$2000),{0,2,7,8,12,13,17.5,18}/24,1),0),{1,2,3,4,5,6,7,8},{7,8,1,2,3,4,6,7})=COLUMNS($G2:G2),"")),"P","")
Ctrl + Shift + Enter
Norkaz
ได้แล้วครับขอบคุณ สอบถามเพิ่มเติมครับ
1.ถ้าต้องการเปลี่ยนช่วงเวลาต้องเปลี่ยนตรงไหนครับ
2.ต้องการอีกชีท (กะ2) สลับช่วงเวลา ระหว่าง OT กับ ปกติ จะเปลี่ยนตรงไหนครับ
3. สอบถามเป็นความรู้ครับ เลขใน array {0,2,7,8,12,13,17.5,18}/24,1),0),{1,2,3,4,5,6,7,8},{7,8,1,2,3,4,6,7} พวกนี้ความหมายคืออะไรครับ
ชีทกะ2
G2
=IF(OR(IFERROR(LOOKUP(MATCH($D$2:$D$2000/($E2=$B$2:$B$2000),{0,2,7,8,12,13,17.5,18}/24,1),{1,2,3,4,5,6,7,8},{2,3,5,6,7,8,1,2})=COLUMNS($G2:G2),"")),"P","")
Ctrl + Shift + Enter
**************
ตอบที่สอบถามมา
3. สอบถามเป็นความรู้ครับ เลขใน array {0,2,7,8,12,13,17.5,18}/24,1),0),{1,2,3,4,5,6,7,8},{7,8,1,2,3,4,6,7} พวกนี้ความหมายคืออะไรครับ
a) {0,2,7,8,12,13,17.5,18}/24 คือเวลาเริ่มต้นของแต่ละช่วง / 24
b) นำไป MATCH กับเวลาจริง เพื่อหาตำแหน่งว่าตกอยู่ในช่วงใด
INDEX(.........,0) ให้ตัดออก หรือละไว้ก็ได้ ผมใส่สูตรเกินไป ไม่จำเป็นต้องใช้
c) LOOKUP ตำแหน่งที่ได้ ไปชน {1,2,3,4,5,6,7,8} เพื่อหา ตำแหน่งจริงของ คอลัมน์ {7,8,1,2,3,4,6,7} ที่เป็นของเวลาแต่ละช่วง
d) เอาตำแหน่งจริง ชนกับคอลัมน์จริง เริ่มที่ COLUMNS($G2:G2) ได้ค่าTRUE FALSE
ในชุด Array
e) IFERROR ไปครอบเพื่อตัดค่า Error ทิ้งไป
f) IF(OR หาค่า "P"
บังคับกด Ctrl + Shift + Enter
Norkaz