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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)อธิบายเครื่องหมาย $ ก่อนแล้วกันครับ เพราะจะต้องเข้าใจตรงนี้เป็นหลักถึงจะสามารถสร้างหรือเข้าใจสูตรต่าง ๆ ได้sakkatos wrote:จากไฟล์ Ans_ResortData.xls นะคับ ใน sheet2 ช่อง A2 ที่เรียงตามรหัส
=IF(ROWS($A$2:A2)>$E$1,"",SMALL(INDEX(Sheet1!$A$2:$A$15+0,0),ROWS($A$2:A2)))
ตรง INDEX(Sheet1!$A$2:$A$15+0,0) มันใช้ยังไงเหรอคับแล้วมันใช้เก็บค่าประเภทไหนเหรอคับเพราะผมลองเอาไปใช้กับเลขบัตรประชาชนแล้วมันใช้ไม่ได้
และเครื่องหมาย $ ในสูตรหมายถึงอะไรคับ
คลิกขวาลงในฐานข้อมูล > Create List > ทำเครื่องหมายตรง My list has headersakkatos wrote:จากไฟล์ Ans_ResortData ถ้าผมจะนำไปใช้กับข้อมูลที่เพิ่มขึ้นในอนาคตคุณบอกว่าให้ทำ create list ตรงฐานข้อมูลแต่ผมหาไม่เจอน่ะคับ
ไม่มีข้อเสียครับ มีแต่ข้อดี เช่นสูตรสั้นลง เข้าใจง่ายขึ้น ทั้งนี้เพราะคุณได้เปลี่ยนเลขบัตรประชาชนของ Sheet Data ซึ่งอยู่ในคอลัมน์ A ให้เป็นตัวเลขก่อนแล้วจากไฟล์ ตรวจการโอนเงิน ชีทเรียงตามเลข คอลั่ม C,D,E,F จากสูตรที่คุณให้มา (Ans_ResortData sheet2 คอลั่มB)
=INDEX(Sheet1!B$2:B$15,MATCH(TEXT($A2,"000"),Sheet1!$A$2:$A$15,0))
ตรงคำสั่ง MATCH น่ะ คับถ้าผมใช้สูตรนี้จะมีข้อเสียอะไรมั้ยคับ
=INDEX(data!B$2:B$167,MATCH($B2,data!$A$2:A$167,0))
สูตรนี้เป็นสูตร Array ครับ การคีย์ให้รับสูตรจะต้องกด 3 แ้ป้นคือ Ctrl+Shift+Enter หากกดแป้นถูกต้องจะเห็นเครื่องหมายปีกกาคร่อมสูตร และปีกกานี้จะีคีย์เข้าไปเองไม่ได้ กรณีต้องการแก้ไข เมื่อแก้แล้วจะต้องกดแป้น Ctrl+Shift+Enter เท่านั้นและจากไฟล์ Ans_ResortData sheet3 รบกวนช่วยอธิบายสูตรนี้ให้หน่อยคับ และวงเล็บ{}นี่มันหมายความว่ายังไงเหรอคับ พอผมกดเข้าไปแล้ววงเล็บมันก็หายไป พอ enter/tab ค่ามันก็เปลี่ยนไป
{=IF(ROWS($A$2:D2)>$E$1,"",INDEX(Sheet1!D$2:D$15,SMALL(IF(Sheet1!$C$2:$C$15=$C2,ROW(Sheet1!$C$2:$C$15)-ROW(Sheet1!$C$2)+1),COUNTIF($C$2:$C2,$C2))))}