Page 1 of 1

สอบถามค่ะข้อมูลตามเงื่อนไข แสดงผลลัพธ์

Posted: Sat Jun 17, 2023 11:42 am
by Jib
สอบถามค่ะอาจารย์

เงื่อนไขแสดงผลลัพธ์ดังนี้ค่ะ
1. วันที่ (D) / กะ (E) / Packing Style (K) เดียวกัน หรือต่างกัน แสดงข้อมูล DA,DB,DC,DD
คอลัมน์ AX บรรทัดสุดท้ายที่วันที่ กะ Packing Style เดียวกัน แสดงข้อมูล DE
2.ถ้าวันที่เดียวกัน แต่กะเปลี่ยน แสดงข้อมูลด้วยเงื่อนไขเหมือนข้อ 1
3.วันที่เปลี่ยน แสดงข้อมูลเหมือนเงื่อนไข 1
รายละเอียดในไฟล์แนบ ผูกสูตรใน Excel O365 ค่ะ

ขอบคุณมากค่ะ

Re: สอบถามค่ะข้อมูลตามเงื่อนไข แสดงผลลัพธ์

Posted: Sat Jun 17, 2023 4:54 pm
by norkaz
...

เมื่อไม่ระบุว่าชัดเจนว่าเวลาใด คือการขึ้นกะใหม่
ในการทำงานจริงควรกำหนด ค่าของแต่ละช่วงกะเป็นตัวเลขง่ายๆ เช่น 1-2-3...ครับ


ลบข้อมูล DA2:DExx ออก


DA2

=LET(d,D2:D30,e,E2:E30,k,K2:K30,c,CN2:CN30,IFERROR(HSTACK(FILTER(HSTACK(d,e,k,W2:W30),XMATCH(c,c)=SEQUENCE(COUNT(d))),XLOOKUP(SEQUENCE(COUNT(ROW(d))),c,AX2:AX30,,0,-1)),""))

** คอลัมน์ DG เวลารวมคำนวณมาจากอะไร รบกวนอธิบายครับ**

**สนับสนุนฟอรั่ม กรุณาช่วยคลิกโฆษณาหน้าเพจ**

Norkaz

Re: สอบถามค่ะข้อมูลตามเงื่อนไข แสดงผลลัพธ์

Posted: Sun Jun 18, 2023 6:55 pm
by Jib
อาจารย์คะ คอลัมน์ CN ต้องคีย์ข้อมูล 1,2,3 ไปเรื่อยๆใช่ไหมคะ เนื่องจากข้อมูลพนักงานต้องคีย์ทุกวัน
ตอนนี้มีพันกว่าแถวแล้วค่ะ ไม่แน่ใจพอจะมีสูตรที่ไม่ต้องคีย์ย้อนหลังไหมคะ

คอลัมน์ DG
วันที่กะเดียวกัน ถ้า Packing Style เดียวกันรวมผลรวมคอลัมน์ DF แสดงผล DG
วันที่กะเดียวกัน ถ้า Packing Style ต่างกัน ไม่รวมผลรวม ค่ะ

Re: สอบถามค่ะข้อมูลตามเงื่อนไข แสดงผลลัพธ์

Posted: Sun Jun 18, 2023 10:52 pm
by norkaz
...

เนื่องจากไม่ทราบเวลาที่แน่นอนว่า แต่ละกะ ต้องเริ่มเมื่อใด เมื่อพิจารณาจาก ชุดฐานข้อมูลของงาน ในการทำงานจริง ควรสร้างตารางมารองรับ โดยยึดเวลาเริ่มต้นของกะนั้นๆเป็นหลัก

ตัวอย่างที่คอลัมน์ DW:EA

CN2
=IFERROR(XMATCH(D2&E2&K2&W2,$DW$3:$DW$9&$DX$3:$DX$9&$DY$3:$DY$9&$DZ$3:$DZ$9),CN1)

Copy สูตรลงไป


DG2:DGxx ลบทุกอย่างออกไปก่อน

DG2 คีย์

=LET(a,DA2:DA30,b,DB2:DB30,c,DC2:DC30,IF(MAP(a,b,c,LAMBDA(a,b,c,COUNTIFS(DA2:a,a,DB2:b,b,DC2:c,c)))=1,SUMIFS(DF2:DF30,a,a,b,b,c,c),0))


**สนับสนุนฟอรั่ม กรุณาช่วยคลิกโฆษณาหน้าเพจ**

Norkaz

Re: สอบถามค่ะข้อมูลตามเงื่อนไข แสดงผลลัพธ์

Posted: Mon Jun 19, 2023 9:22 pm
by Jib
ที่ช่อง DA ถ้าช่วงข้อมูลยาวไปถึง 20,000 แถว ข้อมูลไม่ขึ้นค่ะ เนื่องจากต้องการให้จำนวนแถวครอบคลุมไปถึงแถวที่จะคีย์ข้อมูลค่ะ
ต้องใช้สูตรไหนเพิ่มไหมคะ

ที่ช่อง DG จากสูตรอาจารย์ได้แล้วค่ะ

ขอบคุณมากค่ะ

Re: สอบถามค่ะข้อมูลตามเงื่อนไข แสดงผลลัพธ์

Posted: Mon Jun 19, 2023 10:40 pm
by norkaz
...

ในการทำงานจริง ข้อมูล ค่อนข้างมาก ในการ Spill Array ทั้งชุดอาจทำให้การคำนวณช้าได้

DA2

=LET(d,D2:D20000,e,E2:E20000,k,K2:K20000,c,CN2:CN20000,IFERROR(HSTACK(FILTER(TAKE(HSTACK(d,e,k,W2:W20000),COUNT(d)),TAKE(XMATCH(c,c),COUNT(d))=SEQUENCE(COUNT(d))),XLOOKUP(SEQUENCE(COUNT(ROW(d))),c,AX2:AX20000,0,-1)),""))


ถ้าการคำนวณช้ามาก อาจจะต้องลองปรับ เป็นสูตรแบบเก่า

** สนับสนุนฟอรั่ม กรุณาคลิกโฆษณาหน้าเพจครับ**

Norkaz

Re: สอบถามค่ะข้อมูลตามเงื่อนไข แสดงผลลัพธ์

Posted: Tue Jun 20, 2023 4:42 pm
by Jib
จากสูตร
ใส่สูตรที่ช่อง DA แล้ว คอลัมน์ DE ข้อมูลยังขึ้นไม่ถูกค่ะ ไปแสดงข้อมูลข้อมูลที่แถวเดียวกันแทนค่ะ
รบกวนอาจารย์ด้วยค่ะ

Re: สอบถามค่ะข้อมูลตามเงื่อนไข แสดงผลลัพธ์

Posted: Tue Jun 20, 2023 6:42 pm
by norkaz
...

สูตรที่เขียนไปควรถูกต้อง เนื่องจากต้องผ่านการตรวจเช็คแล้วว่าตรงกับ คำตอบที่ให้มาจึงโพสต์ไป

สูตรที่เขียนไปเดิมข้อมูล ไม่มีข้อมูลที่คอลัมน์ EG

ขอสอบถามว่า

1. ข้อมูลที่ คอลัมน์ EG ที่แสดงมานั้น จะมีแบบนั้นตลอดไปหมายถึง ในฐานข้อมูล ผู้ถามจะคีย์ข้อมูลที่ EG ลงไป

หรือ 2. ที่ EG จะไม่มีการคีย์ ข้อมูลของเวลาที่สิ้นสุด แต่ที่แสดงมานั้น คือตัวอย่างคำตอบเท่านั้นครับ

** สนับสนุนฟอรั่ม กรุณาคลิกโฆษณาหน้าเพจครับ**

Norkaz

Re: สอบถามค่ะข้อมูลตามเงื่อนไข แสดงผลลัพธ์

Posted: Tue Jun 20, 2023 7:36 pm
by norkaz
...

ถ้า EG ไม่มีการคีย์ลงไปในการทำงานจริง

ลองปรับไปแบบนี้ดูครับ

CN2 เช็คลำดับเวลาเริ่มของแต่ละกะ

=IFERROR(XMATCH(D2&E2&K2&W2,$EC$2:$EC$300&$ED$2:$ED$300&$EE$2:$EE$300&$EF$2:$EF$300),CN1)
Copy ลงไป

DF2 จากสูตรเดิมที่ ผู้ถามสร้างไว้แล้ว

=IFERROR(IF(DE2<DD2,(((DE2+1)-DD2)*1440),(DE2-DD2)*1440),"")
Copy ลงไป


DA2
=LET(d,D2:D300,e,E2:E300,k,K2:K300,c,CN2:CN300,IFERROR(HSTACK(FILTER(TAKE(HSTACK(d,e,k,W2:W300),COUNT(d)),TAKE(XMATCH(c,c),COUNT(d))=SEQUENCE(COUNT(d))),XLOOKUP(SEQUENCE(COUNT(ROW(d))),c,AX2:AX300,,,-1)),""))

** สนับสนุนฟอรั่ม กรุณาคลิกโฆษณาหน้าเพจครับ**

Norkaz

Re: สอบถามค่ะข้อมูลตามเงื่อนไข แสดงผลลัพธ์

Posted: Wed Jun 21, 2023 2:41 pm
by Jib
ขอบคุณมากค่ะ ^_^