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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)Code นั้นอ้างอิง A4 ในการ Clear ข้อมูล ดังนั้น A4:E4 ซึ่งเป็นหัวคอลัมน์ ต้องเติมข้อมูลให้ครบครับkhainui wrote:ตามไฟล์แนบ
แต่พอลองเลือกตามตัวอย่างกลับไม่ขึ้นมาเหมือนตัวอย่าง ต้องไปกด run marcro คราวนี้ขึ้น แต่ขึ้นมาแถวเดียว มันผิดตรงจุดไหนครับ งง
เข้าใจแล้วครับ แต่ขอสอบถามเพิ่มเติม ตรงช่อง e2 ใน sheet report ทำอย่างไรให้ดึงข้อมูลมาเป็น drop down list ครับsnasui wrote:Code นั้นอ้างอิง A4 ในการ Clear ข้อมูล ดังนั้น A4:E4 ซึ่งเป็นหัวคอลัมน์ ต้องเติมข้อมูลให้ครบครับkhainui wrote:ตามไฟล์แนบ
แต่พอลองเลือกตามตัวอย่างกลับไม่ขึ้นมาเหมือนตัวอย่าง ต้องไปกด run marcro คราวนี้ขึ้น แต่ขึ้นมาแถวเดียว มันผิดตรงจุดไหนครับ งง
ทำได้แล้วครับด้วยวิธี Unique list แต่ยังติดปัญหามันไม่ได้เรียงลำดับจากมากไปน้อยในช่อง e2 และอีกปัญหาคือsnasui wrote: สามารถทำได้หลายวิธีครับ อย่างง่าย ๆ ก็สร้างด้วย Manual แล้วค่อยนำมาใช้ใน Validation อย่างที่ยากขึ้นไปก็ใช้ VBA เขียนครับ ลองทำมาดูก่อน ติดตรงไหนก็ถามกันต่อครับ
อาจารย์ครับขอความหมายของสูตร 2 สูตรนี้หน่อยครับ (กำลังแกะสูตรอยู่ครับ)snasui wrote: ลองตามนี้ครับ
- ที่เซลล์ I เปลี่ยนสูตรเป็น
=ROUND(SUMPRODUCT((Dept<>"")/COUNTIF(Dept,Dept&"")),0)
Enter- ที่เซลล์ H เปลี่ยนสูตรเป็น
=IF(ROWS(H$2:H2)>$I$2,"",INDEX(Dept,SMALL(IF(FREQUENCY(IF(Dept<>"",MATCH(Dept,Dept,0)),ROW(Dept)-MIN(ROW(Dept))+1),ROW(Dept)-MIN(ROW(Dept))+1),ROWS(H2:$H$2))))
Ctrl+Shift+Enter > Copy ลงด้านล่าง
เป็นการนำค่าใน Dept ตัวแรกไปตรวจสอบกับ Dept ทั้งชุดว่าอยู่ในลำดับที่เท่าไร เมื่อเป็นบรรทัดที่ 2 ก็จะเป็นการนำตัวที่ 2 ไปตรวจ เช่นนี้ไปเรื่อย ๆ ครับkhainui wrote:สูตรแรกคือ =match(Dept,Dept,0) ทำไมผลของสูตรถึงออกมาเป็น 1 พอไปแถวที่ 2 จึงกลายเป็น 2 ครับ
เข้าใจถูกแล้วครับkhainui wrote:สูตรสองคือ เครื่องหมาย if(Dept<>"" หมายถึง ช่วงเซลล์นั้นต้องไม่ใช่ค่าว่างใช่ไม๊ครับ