Page 1 of 1

สแกนนิ้วให้อยู่ในช่วงเวลาของแต่ละรหัสครับ

Posted: Tue Apr 19, 2022 8:57 am
by Xcelvba
1.Column E =IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW($B$2:$B$1384)/(MATCH($B$2:$B$1384,$B$2:$B$1384,0)=ROW($B$1:$B$1384)),ROWS(G$6:G6))),"")
**** ตัดข้อมูลเลขที่ซ้ำกันออก (ทำได้แล้วครับ)

2.Column G-J เป็นช่วงเวลาปกติ Column L-N เป็นช่วงเวลา OT
3. อยากให้ข้อมูลสแกนนิ้วของแต่ละรหัสมาอยู่ในช่วงโซนของแต่ละเวลาครับ

[มีรูปภาพ+ไฟล์]

Re: สแกนนิ้วให้อยู่ในช่วงเวลาของแต่ละรหัสครับ

Posted: Tue Apr 19, 2022 3:36 pm
by norkaz
...

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

Re: สแกนนิ้วให้อยู่ในช่วงเวลาของแต่ละรหัสครับ

Posted: Wed Apr 20, 2022 8:31 am
by Xcelvba
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} พวกนี้ความหมายคืออะไรครับ

Re: สแกนนิ้วให้อยู่ในช่วงเวลาของแต่ละรหัสครับ

Posted: Wed Apr 20, 2022 9:50 am
by norkaz
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

Re: สแกนนิ้วให้อยู่ในช่วงเวลาของแต่ละรหัสครับ

Posted: Wed Apr 20, 2022 10:35 am
by Xcelvba
norkaz wrote: Wed Apr 20, 2022 9:50 am
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
ขอบพระคุณอย่างสูงครับจะพยายามศึกษาจากสูตรที่ได้มาครับ :thup: :thup: