Page 1 of 1

การดึงข้อมูลข้ามSheet

Posted: Mon Oct 18, 2021 1:04 pm
by non2_hab
เรียนอาจารย์

ขอรบกวนสอบถามสูตรการดึงข้อมูลข้าม Sheet โดยมีเงื่อนไขดังนี้ครับ

ให้ดึงข้อมูลเฉพาะงานที่มีผลทดสอบ "FAIL" จาก Sheet "Data" มาแสดงที่ Sheet "Result"
โดยให้นำข้อมูลหัวข้อที่เสียมาแสดงพร้อมกับค่า ตามตัวอย่างใน Sheet "Result" ครับ

ขอคำแนะนำด้วยครับ

Re: การดึงข้อมูลข้ามSheet

Posted: Mon Oct 18, 2021 3:11 pm
by logic
ลองแบบนี้ครับ

A2 =IFERROR(INDEX(Data!A:A,AGGREGATE(15,6,ROW(Data!$A$3:$A$14)/(Data!$G$3:$G$14="FAIL"),INT((ROWS(A$2:A2)-1)/2)+1)),"")
B2 =IF(A2="","",INDEX(Data!$C$2:$D$2,COUNTIF(A$2:A2,A2)))
C2 =IF(A2="","",INDEX(Data!$C$3:$D$14,MATCH(A2,Data!$A$3:$A$14,0),MATCH(B2,Data!$C$2:$D$2,0)))

คัดลอกสูตรทั้งหมดลงด้านล่าง 😉

Re: การดึงข้อมูลข้ามSheet

Posted: Tue Oct 19, 2021 8:35 am
by non2_hab
logic wrote: Mon Oct 18, 2021 3:11 pm ลองแบบนี้ครับ

A2 =IFERROR(INDEX(Data!A:A,AGGREGATE(15,6,ROW(Data!$A$3:$A$14)/(Data!$G$3:$G$14="FAIL"),INT((ROWS(A$2:A2)-1)/2)+1)),"")
B2 =IF(A2="","",INDEX(Data!$C$2:$D$2,COUNTIF(A$2:A2,A2)))
C2 =IF(A2="","",INDEX(Data!$C$3:$D$14,MATCH(A2,Data!$A$3:$A$14,0),MATCH(B2,Data!$C$2:$D$2,0)))

คัดลอกสูตรทั้งหมดลงด้านล่าง 😉
เรียนคุณ logic ขอบคุณมากครับ ผมลองนำสูตรตามที่แนะนำไปลองทำแล้ว พบว่า หัวข้อที่ถูกดึงมาแสดงยังไม่ถูกต้องครับ
ผมได้แนบไฟล์หลังจากทำมาให้ดูครับ จะเห็นว่า A000009B SNQ 28.938 หัวข้อนี้ผ่านตาม Limit ครับ

ขอสอบถามเพิ่มเติมครับ จากสูตร
B2 =IF(A2="","",INDEX(Data!$C$2:$D$2,COUNTIF(A$2:A2,A2)))
C2 =IF(A2="","",INDEX(Data!$C$3:$D$14,MATCH(A2,Data!$A$3:$A$14,0),MATCH(B2,Data!$C$2:$D$2,0)))

ตรง INDEX(Data!$C$2:$D$2) ผมจะเปลี่ยนเป็น INDEX(Data!$ฺB$2:$F$2) ขยาย range ในการเลือกได้ไหมครับ

รบกวนด้วยครับ

Re: การดึงข้อมูลข้ามSheet

Posted: Tue Oct 19, 2021 9:18 am
by logic
non2_hab wrote: Tue Oct 19, 2021 8:35 am จะเห็นว่า A000009B SNQ 28.938 หัวข้อนี้ผ่านตาม Limit ครับ
ผ่านหรือไม่ผ่านดูจาก FAIL แต่ FAIL ไม่ได้บอกว่าเป็น FAIL ของค่าไหน ถ้าใช้สีเป็นเงื่อนไขอันนี้ต้องเขียนโค้ด VBA เข้ามาช่วยแล้วละครับ ถ้าเขียนโค้ด ทำตามกติกาข้อ 5 ข้างบนก่อนครับ 👆🏼
non2_hab wrote: Tue Oct 19, 2021 8:35 am ตรง INDEX(Data!$C$2:$D$2) ผมจะเปลี่ยนเป็น INDEX(Data!$ฺB$2:$F$2) ขยาย range ในการเลือกได้ไหมครับ
ได้ครับ

Re: การดึงข้อมูลข้ามSheet

Posted: Tue Oct 19, 2021 9:40 am
by non2_hab
logic wrote: Tue Oct 19, 2021 9:18 am
non2_hab wrote: Tue Oct 19, 2021 8:35 am จะเห็นว่า A000009B SNQ 28.938 หัวข้อนี้ผ่านตาม Limit ครับ
ผ่านหรือไม่ผ่านดูจาก FAIL แต่ FAIL ไม่ได้บอกว่าเป็น FAIL ของค่าไหน ถ้าใช้สีเป็นเงื่อนไขอันนี้ต้องเขียนโค้ด VBA เข้ามาช่วยแล้วละครับ ถ้าเขียนโค้ด ทำตามกติกาข้อ 5 ข้างบนก่อนครับ 👆🏼
non2_hab wrote: Tue Oct 19, 2021 8:35 am ตรง INDEX(Data!$C$2:$D$2) ผมจะเปลี่ยนเป็น INDEX(Data!$ฺB$2:$F$2) ขยาย range ในการเลือกได้ไหมครับ
ได้ครับ
ขอบคุณครับคุณ logic ที่ผมทำสีไว้ เพื่อแสดงให้ดูครับว่าค่าไหนที่ไม่ผ่านคือค่าไหน จะได้เช็คได้ว่าสูตรถูกต้องหรือเปล่าครับ ถ้าเราเขียนเงื่อนไขให้ตรวจสอบได้ไหมครับ
เผื่อให้ผลลัพธ์ตามที่ต้องการ หรือตามความเห็นแล้วไปทาง VBA จะง่ายกว่าครับ ถ้าไปทางนี้ ทางผมจะไปถามในอีกหัวข้อครับ
ขอโทษด้วยครับที่ทำให้สับสน

Re: การดึงข้อมูลข้ามSheet

Posted: Tue Oct 19, 2021 12:28 pm
by snasui
:D ลองอธิบายเงื่อนไขทั้งหมดของคำถามนี้มาดูกัน ปกติจะต้องแจ้งเงื่อนไขเอาไว้ตั้งแต่ต้นเสมอครับ

Re: การดึงข้อมูลข้ามSheet

Posted: Tue Oct 19, 2021 1:10 pm
by non2_hab
snasui wrote: Tue Oct 19, 2021 12:28 pm :D ลองอธิบายเงื่อนไขทั้งหมดของคำถามนี้มาดูกัน ปกติจะต้องแจ้งเงื่อนไขเอาไว้ตั้งแต่ต้นเสมอครับ
ขอบคุณทางอาจารย์ที่แนะนำครับ

เงื่อนไขที่ต้องการ
ต้องการแสดงผลที่ Sheet "Result" เฉพาะ Item ที่ไม่ผ่าน Limit และให้เลียงเป็นแถวลงมา
ซึ่งข้อมูลที่ต้องการแสดงประกอบไปด้วย Series number / Item / Value
โดยอ้างอิงข้อมูลมาจาก Sheet "Data" และแสดงผลตามไฟล์แนบครับ

ขอโทษทางคุณ Logic ด้วยครับที่อธิบายเงื่อนไขไม่ชัดเจน ^/\^

Re: การดึงข้อมูลข้ามSheet

Posted: Tue Oct 19, 2021 1:15 pm
by snasui
:D ที่อธิบายมาก็เป็นเหมือนเดิมทุกประการ ไม่ได้มีเงื่อนไขอะไรแจ้งมาแต่อย่างใด

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

Re: การดึงข้อมูลข้ามSheet

Posted: Tue Oct 19, 2021 1:44 pm
by non2_hab
snasui wrote: Tue Oct 19, 2021 1:15 pm :D ที่อธิบายมาก็เป็นเหมือนเดิมทุกประการ ไม่ได้มีเงื่อนไขอะไรแจ้งมาแต่อย่างใด

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

ใน Sheet "Result" จะเป็นการประมวณผลข้อมูลจาก Sheet "Data" โดยให้แสดงผลข้อมูล Serial number และ Item และ Value
ของหัวข้อที่ไม่ผ่าน Limit ทุก Item ตาม Series number นั้นๆ ตามตัวอย่างใน Sheet "Result"
โดยที่ Column A จะให้แสดงผลของ Serial number ถ้า Serial number นั้นมี Item ที่เสียมากกว่า 1 Item
ในบรรทัดถัดไปไม่ต้องแสดง Serial number นั้นครับ

พอจะชัดเจนขึ้นไหมครับ

Re: การดึงข้อมูลข้ามSheet

Posted: Tue Oct 19, 2021 4:33 pm
by norkaz
non2_hab wrote: Tue Oct 19, 2021 1:44 pm
snasui wrote: Tue Oct 19, 2021 1:15 pm :D ที่อธิบายมาก็เป็นเหมือนเดิมทุกประการ ไม่ได้มีเงื่อนไขอะไรแจ้งมาแต่อย่างใด

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

ใน Sheet "Result" จะเป็นการประมวณผลข้อมูลจาก Sheet "Data" โดยให้แสดงผลข้อมูล Serial number และ Item และ Value
ของหัวข้อที่ไม่ผ่าน Limit ทุก Item ตาม Series number นั้นๆ ตามตัวอย่างใน Sheet "Result"
โดยที่ Column A จะให้แสดงผลของ Serial number ถ้า Serial number นั้นมี Item ที่เสียมากกว่า 1 Item
ในบรรทัดถัดไปไม่ต้องแสดง Serial number นั้นครับ

พอจะชัดเจนขึ้นไหมครับ

ชีท Result
C3
41.161
มาได้อย่างไร ???

Norkaz

Re: การดึงข้อมูลข้ามSheet

Posted: Tue Oct 19, 2021 5:02 pm
by non2_hab
[/quote]


ชีท Result
C3
41.161
มาได้อย่างไร ???

Norkaz
[/quote]

เรียนคุณ Norkaz
ผมต้องขอออกตัวก่อนนะครับ เบื้องต้นผมยังไม่มีความรู้ตาม Function ที่แต่ละท่านแนะนำมาครับ ซึ่งก็อาศัยหาความรู้จากในเพจนี้ครับ
ตอนนี้ผมกำลังหาความหมายและการทำงานของแต่ละ Function อยู่ครับ
ต้องขอโทษด้วยครับ หากมีอะไรแนะนำ ช่วยชี้แนะ ด้วยครับ

ขอบคุณครับ

Re: การดึงข้อมูลข้ามSheet

Posted: Tue Oct 19, 2021 5:15 pm
by norkaz
...

ไม่ได้ถาม เรื่องฟังก์ชั่นครับ

ขอสอบถามใหม่ว่า คำถามที่สอบถามมา เป็นแบบนี้ใช่หรือไม่

1.ที่ชีท Data คอลัมน์ G ถ้าแถวใดมีค่า เป็น FAIL และ

2. ตัวเลข ในแถวนั้น มีค่าน้อยกว่า Limit Min ในแถวที่ 4 ---> ให้แสดงผลลัพธ์ ตามชีท Result

Norkaz

Re: การดึงข้อมูลข้ามSheet

Posted: Tue Oct 19, 2021 6:20 pm
by snasui
:D ตัวอย่างสูตรตามที่เข้าใจ ตามด้านล่างครับ
  1. ที่ A2 คีย์
    =IFERROR(INDEX(Data!A:A,AGGREGATE(15,6,ROW(Data!$A$5:$A$14)/((((Data!$G$5:$G$14="FAIL")*((Data!$C$5:$C$14<Data!$C$4)+(Data!$C$5:$C$14>Data!$C$3)))+((Data!$G$5:$G$14="FAIL")*((Data!$D$5:$D$14<Data!$D$4)+(Data!$D$5:$D$14>Data!$D$3))))>={1,2}),ROWS(Data!G$5:G5))),"")
    Enter > Copy ลงด้านล่าง
  2. ที่ B2 คีย์
    =IF(A2="","",INDEX(Data!$2:$2,AGGREGATE(15,6,COLUMN(Data!$C$2:$D$2)/((INDEX(Data!$C$5:$D$14,MATCH(A2,Data!$A$5:$A$14,0),0)>Data!$C$3:$D$3)+(INDEX(Data!$C$5:$D$14,MATCH(A2,Data!$A$5:$A$14,0),0)<Data!$C$4:$D$4)),COUNTIF(A$2:A2,A2))))
    Enter > Copy ลงด้านล่าง
  3. ที่ C2 คีย์
    =IF(A2="","",INDEX(Data!$C$5:$D$14,MATCH(A2,Data!$A$5:$A$14,0),MATCH(B2,Data!$C$2:$D$2,0)))
    Enter > Copy ลงด้านล่าง
การอธิบายจะต้องระบุเงื่อนไขให้ชัดเจนครับ ตัวอย่างนี้มีการกล่าวถึง "หัวข้อที่ไม่ผ่าน Limit" ซึ่งค่า Limit ที่กล่าวถึงอยู่ในบรรทัดที่ 3 และ 4 ของชีต Data แต่ไม่ได้แจ้งเอาไว้ ไม่บอกตำแหน่งเซลล์ที่จะใช้เปรียบเทียบ ผู้ตอบย่อมไม่สามารถเข้าใจได้ ในโอกาสถัดไปควรอธิบายรายละเอียดของเงื่อนไขลักษณะนี้มาทุกครั้งครับ

Re: การดึงข้อมูลข้ามSheet

Posted: Tue Oct 19, 2021 10:06 pm
by Bo_ry
A2
=IFERROR(INDEX(Data!$A$1:$A$14,AGGREGATE(15,6,ROW(Data!$B$5:$F$14)/((Data!$B$5:$F$14>Data!$B$3:$F$3)+(Data!$B$5:$F$14<Data!$B$4:$F$4)),ROWS(A$2:A2))),"")

B2
=IFERROR(INDEX(Data!$A$2:$G$2,MOD(AGGREGATE(15,6,ROW(Data!$B$5:$F$14)*10^6+COLUMN(Data!$B$2:$F$2)/((Data!$B$5:$F$14>Data!$B$3:$F$3)+(Data!$B$5:$F$14<Data!$B$4:$F$4)),ROWS(A$2:A2)),10^6)),"")

C2
=IF(A2="","",VLOOKUP(A2,Data!$A$5:$F$14,MATCH(B2,Data!$A$2:$F$2,)))

Re: การดึงข้อมูลข้ามSheet

Posted: Tue Oct 19, 2021 10:15 pm
by non2_hab
norkaz wrote: Tue Oct 19, 2021 5:15 pm ...

ไม่ได้ถาม เรื่องฟังก์ชั่นครับ

ขอสอบถามใหม่ว่า คำถามที่สอบถามมา เป็นแบบนี้ใช่หรือไม่

1.ที่ชีท Data คอลัมน์ G ถ้าแถวใดมีค่า เป็น FAIL และ

2. ตัวเลข ในแถวนั้น มีค่าน้อยกว่า Limit Min ในแถวที่ 4 ---> ให้แสดงผลลัพธ์ ตามชีท Result

Norkaz
เรียนคุณ Norkaz

ครับผม ขอโทษที่ผมเข้าใจผิดด้วยครับ

ที่ทางท่านสอบถามมาเข้าใจถูกต้องแล้วครับ แต่ตรงข้อ 2 จะเป็นแบบนี้ครับ ที่ทางผมต้องการ

2. ตัวเลข ในแถวนั้น มีค่าน้อยกว่า Limit Min ในแถวที่ 4 หรือ มากกว่า Limit Max ในแถวที่ 3 ---> ให้แสดงผลลัพธ์ ตามชีท Result

Re: การดึงข้อมูลข้ามSheet

Posted: Tue Oct 19, 2021 10:17 pm
by non2_hab
snasui wrote: Tue Oct 19, 2021 6:20 pm :D ตัวอย่างสูตรตามที่เข้าใจ ตามด้านล่างครับ
  1. ที่ A2 คีย์
    =IFERROR(INDEX(Data!A:A,AGGREGATE(15,6,ROW(Data!$A$5:$A$14)/((((Data!$G$5:$G$14="FAIL")*((Data!$C$5:$C$14<Data!$C$4)+(Data!$C$5:$C$14>Data!$C$3)))+((Data!$G$5:$G$14="FAIL")*((Data!$D$5:$D$14<Data!$D$4)+(Data!$D$5:$D$14>Data!$D$3))))>={1,2}),ROWS(Data!G$5:G5))),"")
    Enter > Copy ลงด้านล่าง
  2. ที่ B2 คีย์
    =IF(A2="","",INDEX(Data!$2:$2,AGGREGATE(15,6,COLUMN(Data!$C$2:$D$2)/((INDEX(Data!$C$5:$D$14,MATCH(A2,Data!$A$5:$A$14,0),0)>Data!$C$3:$D$3)+(INDEX(Data!$C$5:$D$14,MATCH(A2,Data!$A$5:$A$14,0),0)<Data!$C$4:$D$4)),COUNTIF(A$2:A2,A2))))
    Enter > Copy ลงด้านล่าง
  3. ที่ C2 คีย์
    =IF(A2="","",INDEX(Data!$C$5:$D$14,MATCH(A2,Data!$A$5:$A$14,0),MATCH(B2,Data!$C$2:$D$2,0)))
    Enter > Copy ลงด้านล่าง
การอธิบายจะต้องระบุเงื่อนไขให้ชัดเจนครับ ตัวอย่างนี้มีการกล่าวถึง "หัวข้อที่ไม่ผ่าน Limit" ซึ่งค่า Limit ที่กล่าวถึงอยู่ในบรรทัดที่ 3 และ 4 ของชีต Data แต่ไม่ได้แจ้งเอาไว้ ไม่บอกตำแหน่งเซลล์ที่จะใช้เปรียบเทียบ ผู้ตอบย่อมไม่สามารถเข้าใจได้ ในโอกาสถัดไปควรอธิบายรายละเอียดของเงื่อนไขลักษณะนี้มาทุกครั้งครับ
ขอบคุณทางอาจารย์ snasui มากครับ
ขอบคุณสำหรับคำแนะนำในเรื่องการอธิบายเงื่อนไข ครั้งหน้าจะเอาไปปรับปรุงครับ

Re: การดึงข้อมูลข้ามSheet

Posted: Wed Oct 20, 2021 12:01 pm
by norkaz
non2_hab wrote: Tue Oct 19, 2021 10:15 pm
norkaz wrote: Tue Oct 19, 2021 5:15 pm ...

ไม่ได้ถาม เรื่องฟังก์ชั่นครับ

ขอสอบถามใหม่ว่า คำถามที่สอบถามมา เป็นแบบนี้ใช่หรือไม่

1.ที่ชีท Data คอลัมน์ G ถ้าแถวใดมีค่า เป็น FAIL และ

2. ตัวเลข ในแถวนั้น มีค่าน้อยกว่า Limit Min ในแถวที่ 4 ---> ให้แสดงผลลัพธ์ ตามชีท Result

Norkaz
เรียนคุณ Norkaz

ครับผม ขอโทษที่ผมเข้าใจผิดด้วยครับ

ที่ทางท่านสอบถามมาเข้าใจถูกต้องแล้วครับ แต่ตรงข้อ 2 จะเป็นแบบนี้ครับ ที่ทางผมต้องการ

2. ตัวเลข ในแถวนั้น มีค่าน้อยกว่า Limit Min ในแถวที่ 4 หรือ มากกว่า Limit Max ในแถวที่ 3 ---> ให้แสดงผลลัพธ์ ตามชีท Result


แถมอีกแบบครับ

A2

=IFERROR(INDEX(Data!A:A,AGGREGATE(15,6,ROW(Data!$B$5:$B$14)/(Data!$B$5:$F$14<Data!$B$4:$F$4),ROWS($A$2:A2))),"")


B2
=IF(A2="","",INDEX(Data!$B$2:$F$2,AGGREGATE(15,6,COLUMN(Data!$B$5:$F$5)/(A2=Data!$A$5:$A$14)/(Data!$B$5:$F$14<Data!$B$4:$F$4),COUNTIF($A$2:A2,A2))-COLUMN(Data!$B$5)+1))


C2

=IF(A2="","",VLOOKUP(A2,Data!$A$5:$F$14,MATCH(B2,Data!$A$2:$F$2,0),0))

Norkaz

Re: การดึงข้อมูลข้ามSheet

Posted: Wed Oct 20, 2021 12:35 pm
by non2_hab
Bo_ry wrote: Tue Oct 19, 2021 10:06 pm A2
=IFERROR(INDEX(Data!$A$1:$A$14,AGGREGATE(15,6,ROW(Data!$B$5:$F$14)/((Data!$B$5:$F$14>Data!$B$3:$F$3)+(Data!$B$5:$F$14<Data!$B$4:$F$4)),ROWS(A$2:A2))),"")

B2
=IFERROR(INDEX(Data!$A$2:$G$2,MOD(AGGREGATE(15,6,ROW(Data!$B$5:$F$14)*10^6+COLUMN(Data!$B$2:$F$2)/((Data!$B$5:$F$14>Data!$B$3:$F$3)+(Data!$B$5:$F$14<Data!$B$4:$F$4)),ROWS(A$2:A2)),10^6)),"")

C2
=IF(A2="","",VLOOKUP(A2,Data!$A$5:$F$14,MATCH(B2,Data!$A$2:$F$2,)))
ขอบคุณ คุณ Bo_ry มากครับ ที่แนะนำ

Re: การดึงข้อมูลข้ามSheet

Posted: Wed Oct 20, 2021 12:36 pm
by non2_hab
norkaz wrote: Wed Oct 20, 2021 12:01 pm
non2_hab wrote: Tue Oct 19, 2021 10:15 pm
norkaz wrote: Tue Oct 19, 2021 5:15 pm ...

ไม่ได้ถาม เรื่องฟังก์ชั่นครับ

ขอสอบถามใหม่ว่า คำถามที่สอบถามมา เป็นแบบนี้ใช่หรือไม่

1.ที่ชีท Data คอลัมน์ G ถ้าแถวใดมีค่า เป็น FAIL และ

2. ตัวเลข ในแถวนั้น มีค่าน้อยกว่า Limit Min ในแถวที่ 4 ---> ให้แสดงผลลัพธ์ ตามชีท Result

Norkaz
เรียนคุณ Norkaz

ครับผม ขอโทษที่ผมเข้าใจผิดด้วยครับ

ที่ทางท่านสอบถามมาเข้าใจถูกต้องแล้วครับ แต่ตรงข้อ 2 จะเป็นแบบนี้ครับ ที่ทางผมต้องการ

2. ตัวเลข ในแถวนั้น มีค่าน้อยกว่า Limit Min ในแถวที่ 4 หรือ มากกว่า Limit Max ในแถวที่ 3 ---> ให้แสดงผลลัพธ์ ตามชีท Result


แถมอีกแบบครับ

A2

=IFERROR(INDEX(Data!A:A,AGGREGATE(15,6,ROW(Data!$B$5:$B$14)/(Data!$B$5:$F$14<Data!$B$4:$F$4),ROWS($A$2:A2))),"")


B2
=IF(A2="","",INDEX(Data!$B$2:$F$2,AGGREGATE(15,6,COLUMN(Data!$B$5:$F$5)/(A2=Data!$A$5:$A$14)/(Data!$B$5:$F$14<Data!$B$4:$F$4),COUNTIF($A$2:A2,A2))-COLUMN(Data!$B$5)+1))


C2

=IF(A2="","",VLOOKUP(A2,Data!$A$5:$F$14,MATCH(B2,Data!$A$2:$F$2,0),0))

Norkaz
ขอบคุณ คุณ norkaz มากครับที่แนะนำ