
Dropdown ที่เลือกในไฟล์แรกเป็นการเลือกจากคอลัมน์ A ของ Database ซึ่งป็นหัวบรรทัด แต่ไฟล์ตัวอย่างที่แนบมาใหม่เป็นการเลือกจากบรรทัดที่ 2 ซึ่งเป็นหัวคอลัมน์ จึงต้องปรับสูตรใหม่
จากไฟล์เดิมควรจะอธิบายว่าคุณต้องการคำตอบเป็นอย่างไร จากเงื่อนไขใด แม้จะเขียนสูตรมาก็ต้องบอกว่าต้องการจะทำอะไร เงื่อนไขคืออะไร ต้องการคำตอบเป็นเท่าใด เช่นนี้จึงจะเข้าถึงปัญหาได้โดยไว ไม่ควรด่วนสรุปว่าสูตรถูกต้องแล้ว เพราะสูตรที่เขียนอย่างถูกต้องย่อมไม่แสดง Error ชนิดใด ๆ ที่ไม่พึงประสงค์ครับ
หากผมเข้าใจถูกต้อง ความต้องการของคุณคือต้องการค่าที่มากทีสุด 3 ลำดับ โดยให้แสดงชื่อเดือนและค่าจากชีท sales12,13 มีเงื่อนไขว่า หาก C6 ในชีท toppb ตรงกับค่าใด ๆ ในช่วง A2:A57 ของชีท sales12,13 ก็ให้หาค่าที่มากที่สุด 3 ลำดับจากบรรทัดนั้นมาแสดงเรียงจากมากไปหาน้อย
สูตรจึงควรจะเป็น
- ที่ C7 คีย์
=LARGE(INDEX('sales12,13'!$B$2:$M$57,MATCH(toppb!$C$6,'sales12,13'!$A$2:$A$57,0),0),toppb!$A7)
Ctrl+Shift+Enter > Copy ลงด้านล่าง
- ที่ B7 คีย์
=INDEX('sales12,13'!$B$1:$M$1,SMALL(IF(INDEX('sales12,13'!$B$2:$M$57,MATCH(toppb!$C$6,'sales12,13'!$A$2:$A$57,0),0)=toppb!$C7,COLUMN('sales12,13'!$B$1:$M$1)-COLUMN('sales12,13'!$B$1)+1),COUNTIF(toppb!$C$7:C7,C7)))
Ctrl+Shift+Enter > Copy ลงด้านล่าง
สังเกตว่าแม้สูตร Index จะคล้ายกันแต่ไม่เหมือนกันครับ