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

จากสูตร =INDEX(Sheet2!$A$4:$A$485,
MATCH(1,IF(ISNUMBER(SEARCH(LEFT(Sheet2!$A$4:$A$485,FIND(" - ",Sheet2!$A$4:$A$485)-1),A4)),IF(ISNUMBER(SEARCH(MID(Sheet2!$A$4:$A$485,FIND(" - ",Sheet2!$A$4:$A$485)+3,255),A4)),1)))) หมายความว่าในช่วงของ Sheet2!$A$4:$A$485 ให้นำลำดับที่ได้จากผลลัพธ์ของสูตร
MATCH(1,IF(ISNUMBER(SEARCH(LEFT(Sheet2!$A$4:$A$485,FIND(" - ",Sheet2!$A$4:$A$485)-1),A4)),IF(ISNUMBER(SEARCH(MID(Sheet2!$A$4:$A$485,FIND(" - ",Sheet2!$A$4:$A$485)+3,255),A4)),1))) มาแสดง
จากสูตร MATCH(1,
IF(ISNUMBER(SEARCH(LEFT(Sheet2!$A$4:$A$485,FIND(" - ",Sheet2!$A$4:$A$485)-1),A4)),IF(ISNUMBER(SEARCH(MID(Sheet2!$A$4:$A$485,FIND(" - ",Sheet2!$A$4:$A$485)+3,255),A4)),1))) หมายถึง ให้หาว่า เลข 1 อยู่ในลำดับที่เท่าไรของผลลัพธ์ที่ได้จากสูตร
IF(ISNUMBER(SEARCH(LEFT(Sheet2!$A$4:$A$485,FIND(" - ",Sheet2!$A$4:$A$485)-1),A4)),IF(ISNUMBER(SEARCH(MID(Sheet2!$A$4:$A$485,FIND(" - ",Sheet2!$A$4:$A$485)+3,255),A4)),1))
จากสูตร IF(ISNUMBER(SEARCH(LEFT(Sheet2!$A$4:$A$485,FIND(" - ",Sheet2!$A$4:$A$485)-1),A4)),
IF(ISNUMBER(SEARCH(MID(Sheet2!$A$4:$A$485,FIND(" - ",Sheet2!$A$4:$A$485)+3,255),A4)),1)) หมายความว่า หาก ISNUMBER(SEARCH(LEFT(Sheet2!$A$4:$A$485,FIND(" - ",Sheet2!$A$4:$A$485)-1),A4)) เป็นจริงแล้วให้แสดงผลลัพธ์ของ
IF(ISNUMBER(SEARCH(MID(Sheet2!$A$4:$A$485,FIND(" - ",Sheet2!$A$4:$A$485)+3,255),A4)),1)
จากสูตร IF(ISNUMBER(SEARCH(MID(Sheet2!$A$4:$A$485,FIND(" - ",Sheet2!$A$4:$A$485)+3,255),A4)),
1) หมายความว่าหาก ISNUMBER(SEARCH(MID(Sheet2!$A$4:$A$485,FIND(" - ",Sheet2!$A$4:$A$485)+3,255),A4)) เป็นจริงแล้วให้แสดงค่า 1
สูตรพวกนี้เป็นสูตร Array เข้าใจยากมากสำหรับมือใหม่ครับ
