Page 1 of 1

ต้องการเรียงข้อมูลแบบต่อเนื่อง

Posted: Thu Nov 29, 2018 6:49 pm
by apasri
เรียนอาจารย์ที่เคารพและเพื่อนๆสมาชิกทุกท่านค่ะ
ขอรบกวนขอคำแนะนำเรื่องการเรียงข้อมุลที่ได้มาแบบจำกัดแบบนี้ด้วยค่ะ

1.เครื่องจักรผลิตชิ้นงาน และรายงารข้อมุลเรียงกันได้19 ช่องข้อมูล เมื่อครบแล้วจะไปทับอันที่1ใหม่
2.โดยแต่ละเครื่องมีจำนวนผลผลิตได้ไม่เท่ากัน
3.ต้องการเรียงข้อมูลให้ต่อเนื่องกันไป (ข้อมูลจดวันแรกไม่ได้เริ่มจาก 0 ศูนย์ )
4.การเก็บข้อมูลได้จากการไปจดมาจากหน้าจอ ทุกวันๆละครั้ง
ตัวอย่างไฟล์ที่แนบ มีตัวอย่างที่ต้องการ (อยู่ในชีต summary) และตัวอย่างโจทย์จากเครื่อง AAA-01 (อยู่่ในชีต AAA-01)
ปัจจุบันใช้วิธีเรียงด้วยมือนับไป แตจำนวนเครื่องมีมาก เกือบ50 เครื่อง ทำไม่ทันแล้วค่ะ ป้อนข้อมุลก็เสียเวลามากๆค่ะ จึงอยากให้มีคำสั่งเรียงข้อมูลได้ตามลำดับค่ะ

ขอบคุณทุกท่านที่สละเวลามาช่วยนะคะ

Re: ต้องการเรียงข้อมูลแบบต่อเนื่อง

Posted: Thu Nov 29, 2018 8:35 pm
by Bo_ry
ถูกไหม

Sheet summary
A4 ลากลง
=IFERROR(INDEX('AAA-01'!$E$2:$E$6,MATCH(C4,'AAA-01'!$H$2:$H$6,)),"")

D4 กด Ctrl+Shift+Enter ลากลง

Code: Select all

=IFERROR(IFERROR(INDEX('AAA-01'!$J$2:$AB$99,MATCH(INDEX(C5:C43,MATCH(1,--(A5:A43<>""),)),'AAA-01'!$H$2:$H$9,),IFERROR(1/(1/MOD(19+IF(INDEX('AAA-01'!$I$2:$I$99,MATCH(INDEX(C5:C43,MATCH(1,--(A5:A43<>""),)),'AAA-01'!$H$2:$H$99,))>1,INDEX('AAA-01'!$I$2:$I$99,MATCH(INDEX(C5:C43,MATCH(1,--(A5:A43<>""),)),'AAA-01'!$H$2:$H$99,))-MATCH(1,--(A5:A43<>""),),""),19)),19)),INDEX('AAA-01'!$J$2:$AB$99,MATCH(C4,'AAA-01'!$H$2:$H$99,),INDEX('AAA-01'!$I$2:$I$99,MATCH(C4,'AAA-01'!$H$2:$H$99,)))),"")

Re: ต้องการเรียงข้อมูลแบบต่อเนื่อง

Posted: Mon Dec 03, 2018 9:08 am
by apasri
Dear K.Bo_Ry

ไม่รู้จะเขียนอะไรดีเลยค่ะ ถูกต้องและใช่ที่ต้องการไปหมด
sheet summary เครื่องอื่น ที่บังเอิญcopy BA#มาผิด พอลอกสูตรไปใช้ ก็ได้ข้อมูลถูกต้องด้วยค่ะ
สุดยอดจริงๆเลยค่ะ เก่งมากเลย โจทย์ยากมากเลยนะคะ ทำได้อย่างไรคะนี่ อยากเก่งแบบคุณจังเลยค่ะ ปลื้มมากค่ะ ^ ^

ขอบคุณมากๆอีกครั้งค่ะ

ปล.ขออภัยที่ตอบช้าค่ะ วันศุกร์มีภาระกิจ ไม่มีเวลาเข้าระบบอินเตอร์เนตเลยค่ะ

Re: ต้องการเรียงข้อมูลแบบต่อเนื่อง

Posted: Mon Dec 03, 2018 11:13 am
by Bo_ry
:D ขอบคุณค่ะ ยินดีที่ได้ช่วย
โจทย์ยากมาก ทำความเข้าใจโจทย์อยู่นาน คิดสูตรเป็นชั่วโมง
ต้องแก้สูตร นิดนึง

อธิบายสูตร

A4 ลากลง
=IFERROR(INDEX('AAA-01'!$E$2:$E$99,MATCH(C4,'AAA-01'!$H$2:$H$99,)),"")
เพื่อลงวันที่ให้ตรงกับ BA# ก่อน เพราะเป็นเงื่อนไขสำคัญสำหรับสูตร Column D

จาก D4
=IFERROR(IFERROR(INDEX('AAA-01'!$J$2:$AB$99,MATCH(INDEX(C5:C43,MATCH(1,--(A5:A43<>""),)),'AAA-01'!$H$2:$H$99,),IFERROR(1/(1/MOD(19+INDEX('AAA-01'!$I$2:$I$99,MATCH(INDEX(C5:C43,MATCH(1,--(A5:A43<>""),)),'AAA-01'!$H$2:$H$99,))-MATCH(1,--(A5:A43<>""),),19)),19)),INDEX('AAA-01'!$J$2:$AB$99,MATCH(C4,'AAA-01'!$H$2:$H$99,),INDEX('AAA-01'!$I$2:$I$99,MATCH(C4,'AAA-01'!$H$2:$H$99,)))),"")

แตกสูตร D4
=INDEX(C5:C43,MATCH(1,--(A5:A43<>""),))
คืนค่าจากC5:C43 ตัวแรกจากแถวด้านล่างที่ A5:A43 ไม่เป็นค่าว่าง คือ A15 คืนค่า C15 =43
D4:D14 จะได้ 43, D15:D25, ได้ 54

เอาไปใช่บ่อยในสูตรเพราะ ต้องการค่าจาก J$2:$AB$99 ตาราง BA#1-BA# 19 ให้ตรงแถว
INDEX('AAA-01'!$J$2:$AB$99,MATCH(43,'AAA-01'!$H$2:$H$99,),column#)

Column#
=IFERROR(1/(1/MOD(19+INDEX('AAA-01'!$I$2:$I$99,MATCH(43,'AAA-01'!$H$2:$H$99,))-MATCH(1,--(A5:A43<>""),),19)),19)

=INDEX('AAA-01'!$I$2:$I$99,MATCH(43,'AAA-01'!$H$2:$H$99,)) เช็คค่า BA#ปัจจุบัน =12 กลายเป็น

=IFERROR(1/(1/MOD(19+12-MATCH(1,--(A5:A43<>""),),19)),19)

คอลัมน์ต้องถอยไปจาก BA#ปัจจุบัน =12 n ช่อง =MATCH(1,--(A5:A43<>""),) =11 ถอยไป 11 ช่อง
=MOD(19+12-11,19) =Mod(20,19) = 1

ถ้าเป็น D15 BA# ปัจจุบัน =4
Column# 12 กลายเป็น 4, =MATCH(1,--(A16:A54<>""),) =11
=MOD(19+4-11,19) =Mod(12,19) = 12

Mod(xx,19) จะคืนค่า 0-18 ถ้าเป็น 0 ต้องการให้คืนค่า 19
เช่นถ้า BA#ปัจจุบัน =1 แล้วถอยไป 1 จะต้องดูค่าจาก BA#19

=IFERROR(1/(1/Mod(18+1,19)),19) เอามาใช้เพื่อคืนค่า 19 เมือ Mod แล้วได้ 0

=INDEX('AAA-01'!$J$2:$AB$99,MATCH(C4,'AAA-01'!$H$2:$H$99,),INDEX('AAA-01'!$I$2:$I$99,MATCH(C4,'AAA-01'!$H$2:$H$99,))))
สำหรับค่าล่าสุด ตาม BA# ล่าสุดถ้า column a แถวด้านล่างไม่เจอวันที่แล้ว