snasui wrote: Thu Sep 17, 2020 2:58 pm

ลองดูว่าใช่ที่ต้องการหรือครับ
O4
=Arrayformula(if(K4:K=0,0,right(SUBSTITUTE(K4:K," ",rept(" ",20)),20)+0))
P4
=Arrayformula(IF(W$4:W&M$4:M="อา.`ทำงาน`",INDEX($DN$4:$DN,MATCH(B$4:B,$DE4:$DE,0)),if(W$4:W&M$4:M<>"อา.`ทำงาน`",INDEX(DM$4:DM,MATCH(B$4:B,DE$4:DE,0)))))
แก้ไขครับ ขออภัยลงเงือนไขผิด บริเวณสีแดงต้องเป็น ไม่เท่า อา. แต่ว่าเท่ากับ `ทำงาน` ปรับให้อยู่ในรูปแบบ Arrayformula อย่างไรครับ
ถ้าเป็นสูตรลากมือ น่าจะเขียนแบบนี้ P4 = if(Or(M4="~Standby~",M4="~หยุด~"),0,IF(AND(M4="`ทำงาน`",W4="อา."),INDEX($DN$4:$DN,MATCH($B4,$DE$4:$DE,0)),IF(or(M4="`ทำงาน`",W4<>"อา."),INDEX($DM$4:$DM,MATCH($B4,$DE$4:$DE,0)))))
แจกแจงเข้าเงื่อนไขที่ P4 ได้ตามนี้
ถ้า column M = "`หยุด`" หรือ "~Standby~" ให้ lookup ค่าเป็น 0
--> = if(Or(M4="~Standby~",M4="~หยุด~"),0
ถ้า column M = "`ทำงาน`" และ column W = "อา." ให้ lookup ค่าจาก column DN
-->IF(AND(M4="`ทำงาน`",W4="อา."),INDEX($DN$4:$DN,MATCH($B4,$DE$4:$DE,0))
ถ้า column M = "`ทำงาน`" และ column W <> "อา." ให้ lookup ค่าจาก column DM
--> IF(or(M4="`ทำงาน`",W4<>"อา."),INDEX($DM$4:$DM,MATCH($B4,$DE$4:$DE,0)))))