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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)! | Note: Ctrl+Shift+Enter เป็นการสร้างสูตร Array โดยสามารถเลือกดำเนินการตามข้อ 1 หรือ 2 ด้านล่าง
|
ขอขอบคุณครับ สำหรับคำแนะนำดี ๆ ครับparakorn wrote:INDEX(ช่วงข้อมูลที่ต้องการค้นหา,บรรทัดที่ต้องการ,[คอลัมน์ที่ต้องการ]) จากสูตรที่สร้างใช้แค่บรรทัดครับ
[ยอดชำระแล้ว1.xlsx]Sheet1!$G$2:$G$65
บรรทัดนี้คือ "ช่วงข้อมูลที่ต้องการค้นหา"
MATCH(1,--([ยอดชำระแล้ว1.xlsx]Sheet1!$E$2:$E$65=$F2)*--(ROUNDDOWN([ยอดชำระแล้ว1.xlsx]Sheet1!$H$2:$H$65,0)=$D2)*--([ยอดชำระแล้ว1.xlsx]Sheet1!$I$2:$I$65=$U2),0))
บรรทัดนี้คือการ ค้นหาเลข 1 จากช่วงข้อมูลที่กำหนด โดยเปลี่ยนช่วงข้อมูลที่ต้องการ หากบรรทัดไหนเข้าเงื่อนไข ให้เป็นจริง(TRUE) แล้วใช้เครื่องหมายตรรกกะคณิตศาสตร์ (เครื่องหมาย --) เปลี่ยน TRUE ให้เป็น 1 (หากเป็นเท็จ หรือ FALSE จะได้ 0)
ซึ่ง ช่วงข้อมูลที่นำมาเปลี่ยน จะมี 3 ช่วงข้อมูลตามที่คุณ prasert ต้องการ แล้วนำช่วงข้อมูลทั้ง 3 มาคูณกัน
ซึ่งหาก บรรทัดไหน คืนค่า ได้เลข 1 ทั้งบรรทัด (ข้อมูลตรงกัน 3อย่าง) 1คูณ1คูณ1 เท่ากับ 1 สูตร(ถ้าเจอ 0 จะเท่ากับ 0 เพราะค่าใดๆคูณ0 เท่ากับ 0 เสมอ)
Match ก็จะหาลำดับ ของบรรทัดนั้น ไปใช้กับช่วงข้อมูลที่ต้องการค้นหาด้านบน ซึ่งผลลัพท์ก็คือ เลขที่บิลที่ต้องการนั่นเองครับ
หากมีไฟล์จำนวนมากอาจต้องใช้วิธีอื่น ลองแนบตัวอย่างมาใหม่ โดยแนบมาหลายๆไฟล์ จะได้ช่วยๆกันดูให้ครับ