
ขอบคุณค่ะ ยินดีที่ได้ช่วย
โจทย์ยากมาก ทำความเข้าใจโจทย์อยู่นาน คิดสูตรเป็นชั่วโมง
ต้องแก้สูตร นิดนึง
อธิบายสูตร
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 แถวด้านล่างไม่เจอวันที่แล้ว
You do not have the required permissions to view the files attached to this post.