
ตัวอย่างคำอธิบายครับ
จากสูตร
=IFERROR(INDEX(INDEX('การตอบแบบฟอร์ม 1'!$R$2:$AC$690,0,MATCH(B$1,'การตอบแบบฟอร์ม 1'!$R$1:$AC$1,0)),SMALL(IF('การตอบแบบฟอร์ม 1'!$B$2:$B$690=LOOKUP(CHAR(255),$A$2:$A2),ROW('การตอบแบบฟอร์ม 1'!B$2:B$690)-ROW('การตอบแบบฟอร์ม 1'!B$2)+1),ROWS(B$2:B2))),"")
แปลว่า หาก
INDEX(INDEX('การตอบแบบฟอร์ม 1'!$R$2:$AC$690,0,MATCH(B$1,'การตอบแบบฟอร์ม 1'!$R$1:$AC$1,0)),SMALL(IF('การตอบแบบฟอร์ม 1'!$B$2:$B$690=LOOKUP(CHAR(255),$A$2:$A2),ROW('การตอบแบบฟอร์ม 1'!B$2:B$690)-ROW('การตอบแบบฟอร์ม 1'!B$2)+1),ROWS(B$2:B2))) ได้ผลลัพธ์เป็นค่าผิดพลาด ให้แสดงผลลัพธ์เป็นค่าว่าง
จากสูตร
INDEX(INDEX('การตอบแบบฟอร์ม 1'!$R$2:$AC$690,0,MATCH(B$1,'การตอบแบบฟอร์ม 1'!$R$1:$AC$1,0)),SMALL(IF('การตอบแบบฟอร์ม 1'!$B$2:$B$690=LOOKUP(CHAR(255),$A$2:$A2),ROW('การตอบแบบฟอร์ม 1'!B$2:B$690)-ROW('การตอบแบบฟอร์ม 1'!B$2)+1),ROWS(B$2:B2)))
แปลว่า จากช่วง
INDEX('การตอบแบบฟอร์ม 1'!$R$2:$AC$690,0,MATCH(B$1,'การตอบแบบฟอร์ม 1'!$R$1:$AC$1,0) ให้นำผลลัพธ์ในลำดับที่ที่เป็นผลลัพธ์ของ
SMALL(IF('การตอบแบบฟอร์ม 1'!$B$2:$B$690=LOOKUP(CHAR(255),$A$2:$A2),ROW('การตอบแบบฟอร์ม 1'!B$2:B$690)-ROW('การตอบแบบฟอร์ม 1'!B$2)+1),ROWS(B$2:B2)) มาแสดง ขยายความได้ว่า หากผลลัพธ์ของ Small(...) ได้ค่าเป็น 3 ก็ให้นำลำดับที่ 3 มาแสดง หากได้ผลลัพธ์เป็น 8 ก็ให้นำลำดับที่ 8 มาแสดง
จากสูตร
SMALL(IF('การตอบแบบฟอร์ม 1'!$B$2:$B$690=LOOKUP(CHAR(255),$A$2:$A2),ROW('การตอบแบบฟอร์ม 1'!B$2:B$690)-ROW('การตอบแบบฟอร์ม 1'!B$2)+1),ROWS(B$2:B2))
แปลว่า ให้นำค่าที่น้อยที่สุดในลำดับที่ที่เป็นผลลัพธ์ของ
ROWS(B$2:B2) จากช่วง IF('การตอบแบบฟอร์ม 1'!$B$2:$B$690=LOOKUP(CHAR(255),$A$2:$A2),ROW('การตอบแบบฟอร์ม 1'!B$2:B$690)-ROW('การตอบแบบฟอร์ม 1'!B$2)+1) มาแสดง ขยายความได้ว่า หาก ROWS(B$2:B2) มีค่าเป็น 1 ให้นำค่าที่น้อยที่สุดในลำดับที่ 1 มาแสดง ถ้าได้ค่าเป็น 100 ให้นำค่าที่น้อยที่สุดในลำดับที่ 100 มาแสดง
จากสูตร
IF('การตอบแบบฟอร์ม 1'!$B$2:$B$690=LOOKUP(CHAR(255),$A$2:$A2),ROW('การตอบแบบฟอร์ม 1'!B$2:B$690)-ROW('การตอบแบบฟอร์ม 1'!B$2)+1)
แปลว่า ถ้า
'การตอบแบบฟอร์ม 1'!$B$2:$B$690=LOOKUP(CHAR(255),$A$2:$A2 เป็นจริงแล้วให้แสดงผลลัพธ์ของ
ROW('การตอบแบบฟอร์ม 1'!B$2:B$690)-ROW('การตอบแบบฟอร์ม 1'!B$2)+1
จากสูตร
LOOKUP(CHAR(255),$A$2:$A2) แปลว่าให้หาอักขระสุดท้ายในช่วง
$A$2:$A2 สังเกตว่าเลข 2 ของ A ตัวหลังไม่ได้ Lock ด้วย $ หากคัดลอกลงไปด้านล่างจะเป็น A2:A3, A2:A4 ซึ่งจะเป็นการหาค่าอักขระสุดท้ายที่พบในช่วงที่ขยายไปเรื่อย ๆ
จากสูตร
ROW('การตอบแบบฟอร์ม 1'!B$2:B$690)-ROW('การตอบแบบฟอร์ม 1'!B$2)+1 แปลว่าให้แสดงค่าลำดับเริ่มจากเลข 1 สิ้นสุดที่ค่าใด ๆ ที่เป็นจำนวนบรรทัดในช่วง
ROW('การตอบแบบฟอร์ม 1'!B$2:B$690) หากจำนวนบรรทัดเป็น 2000 ก็จะแสดงเลขลำดับจาก 1-2000 เช่นนี้เป็นต้นครับ