EXCEL TOOLS
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
[code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)ผมได้ทำการลองสูตรที่ให้มาแล้วนะครับ คือจะ copy ได้แถวเดียวlogic wrote:ลองดูครับ
B9 =IFERROR(INDEX(data!AX$5:AX$100,SMALL(IF(data!$B$5:$B$100=$R$2,ROW(data!$B$5:$B$100)-ROW(data!$B$5)+1),ROWS(B$9:B9))),"")
เป็นสูตรอาร์เรย์ต้องกดแป้น ctrl+shift+enter แทนการกด enter ถ้าไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นไม่ถูกต้อง สูตรจะใช้ไม่ได้ แล้วค่อยคัดลอกสูตรไปขวาและลงล่างครับ
ตอนนี้แสดงผลได้แล้วครับ ผมได้ปรับเปลียนสูตรในการคำนวนหน่อยครับlogic wrote:ขอดูไฟล์ที่คีย์สูตรด้วยจะได้เห็นวา่คีย์ถูกต้องหรือไม่ อย่างไรครับ
Code: Select all
=IFERROR(INDEX(data!BI$5:BI$1000,SMALL(IF(data!$B$5:$B$1000=$R$2,ROW(data!$B$5:$B$1000)-ROW(data!$B$5)+1),ROWS(M$9:M28))),"")
logic wrote:ลองดูครับ
B9 =IFERROR(INDEX(data!AX$5:AX$100,SMALL(IF(data!$B$5:$B$100=$R$2,ROW(data!$B$5:$B$100)-ROW(data!$B$5)+1),ROWS(B$9:B9))),"")
เป็นสูตรอาร์เรย์ต้องกดแป้น ctrl+shift+enter แทนการกด enter ถ้าไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นไม่ถูกต้อง สูตรจะใช้ไม่ได้ แล้วค่อยคัดลอกสูตรไปขวาและลงล่างครับ
Code: Select all
O9 = =IFERROR(INDEX(data!BK$4:BK$1000,SMALL(IF(data!$B$5:$B$1000=$U$2,ROW(data!$B$5:$B$1000)-ROW(data!$B$5)+1),ROWS(O$9:O9))),"")
ขอโทษด้วยครับ สำหรับการแนบไฟล์snasui wrote: กรุณาแนบไฟล์ที่ทำเองแล้วมาด้วยจะได้ช่วยดูได้ครับ
สูตรที่คุณ logic ตอบไปนั้นสามารถคีย์ในเซลล์เดียวแล้ว Copy ไปใช้กับเซลล์อื่นได้เลย ไม่จำเป็นต้องคีย์สูตรใหม่ทุกเซลล์
การแนบไฟล์ แนบภาพ กรุณาอ่านกฎการใช้บอร์ดข้อ 4 ด้านบนครับ
Code: Select all
O9 = =IFERROR(INDEX(data!BK$4:BK$1000,SMALL(IF(data!$B$5:$B$1000=$U$2,ROW(data!$B$5:$B$1000)-ROW(data!$B$5)+1),ROWS(O$9:O9))),"")
ขอบคุณมากครับ สำหรับคำตอบsnasui wrote: สูตรควรเป็นตามด้านล่างครับ
=IFERROR(INDEX(data!BK$5:BK$1000,SMALL(IF(data!$B$5:$B$1000=$R$2,ROW(data!$B$5:$B$1000)-ROW(data!$B$5)+1),ROWS(O$9:O9))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง
หรือหากต้องการคำตอบเป็นอื่นใด กรุณาแจ้งรายละเอียดมาใหม่ครับ
ได้แล้วครับsnasui wrote: ปรับสูตรใหม่เป็นตามด้านล่างครับ
=IFERROR(INDEX(INDEX(data!$BK5:$BL$1000,0,MATCH($U$2,data!$BK$4:$BL$4,0)),SMALL(IF(data!$B$5:$B$1000=$R$2,ROW(data!$B$5:$B$1000)-ROW(data!$B$5)+1),ROWS(O$9:O9))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง