
เรื่องอธิบายสูตร ผมไม่ค่อยมั่นใจครับ อยากให้รออาจารย์มาอธิบายอีกครั้งครับ อีกประการคือ สูตรถูกใช้งานบน Table ซึ่งผมก็ไม่ชำนาญกับฟังก์ชั่นนี้เช่นกัน
ตามที่ผมเข้าใจ สูตร Lookup สามารถใช้อ้างอิงกับข้อมูลที่เป็นตัวเลขเท่านั้น จะเป็นตัวอักษรไม่ได้ ต่างจากสูตร Max ที่อ้างอิงข้อมูลทั้งตัวเลขและตัวอักษรได้
จากสูตร =IF(ISNUMBER(SEARCH(Home!$E$2,Database!$O2)),LOOKUP(9.9999999999999E+307,$AD$1:AD1)+1,"") หากเปลี่ยนค่าที่ AD1 เป็นตัวอักษร สูตรนี้ก็จะใช้ไม่ได้เช่นกัน
แต่สูตร =IF(Home!$E$2="","",IF(Home!$E$2=$O$2,(IF(AA2<>"","",MAX($AB$1:AB1)+1)),(IF(AA2="","",MAX($AB$1:AB1)+1)))) หากเปลี่ยนค่าที่ AB1 เป็นตัวอักษร สูตรก็ยังให้ค่าที่ถูกต้องเหมือนเดิม
ด้วยฟังก์ชัน Table ที่น่าจะกำหนดให้หัวคอลัมน์มีฟอร์แมตเป็น Text เท่านั้น ไม่สามารถเป็นตัวเลขได้ ถึงแม้จะคีย์ตัวเลขลงไปก็ตาม สูตรทุกสูตรจะอ่านค่าเป็น Text เท่านั้น
ทดสอบคีย์เลข 0 ที AB1 แล้วที่ เซลล์ใดๆ คีย์ =Count($AB$1:AB1) จะได้เท่ากับ 0 ที่เป็นเช่นนั้นเพราะสูตร Count จะนับแค่ตัวเลขเท่านั้น หากเป็น Text มันจะนับค่าไม่ได้ ดังนั้นถึงแม้ที่ AB1 จะคีย์เลข 0 ลงไปก็ตาม ฟังก์ชั่น Table ก็จะเปลี่ยนให้เป็น Text ทั้งหมด
แต่หาก คีย์เลข 0 ตั้งแต่ AB2 ลงมา แล้วเปลี่ยนอ้างอิงในสูตรเป็น =IF(ISNUMBER(SEARCH(Home!$E$2,Database!$O2)),LOOKUP(9.9999999999999E+307,$AB$2:AB2)+1,"")
สูตรก็จะแสดงค่าได้โดยไม่แสดง Error ใด
ด้วยเหตุดังกล่าวมานี้ ผมเลยคิดว่าน่าจะเป็นไปประมาณนี้ครับ แต่หากจะให้แน่ชัดจริง ต้องรออาจารย์มาอธิบายอีกครั้งครับ
