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: Select all
=IF(ISERR(INDEX('BU Line'!$D$2:$D$9,SMALL(IF('BU Line'!$C$2:$C$9=$B5,ROW('BU Line'!$C$2:$C$9)-ROW('BU Line'!$C$2)+1),COLUMNS($E5:E5)))),"",
INDEX('BU Line'!$D$2:$D$9,SMALL(IF('BU Line'!$C$2:$C$9=$B5,ROW('BU Line'!$C$2:$C$9)-ROW('BU Line'!$C$2)+1),COLUMNS($E5:E5)))&",")
หากต้องการคำตอบให้อยู่ใน Cell เดียวกัน คงต้องพึ่ง VBA เข้ามาช่วยแล้วล่ะครับnoonoon wrote: ซึ่งมีเป็นหมื่นๆบัญชีค่ะ if ไม่ไหว
ขอบคุณทุกท่านที่เข้ามาช่วยแก้ปัญหาค่ะDhitiBank wrote:อีกแนวหนึ่งครับ แค่คล้ายๆ ครับ ใช้ปรับความกว้างคอลัมน์มาช่วยเพื่อหลอกตาและไม่ต้องเอาแต่ละผลลัพธ์มาเชื่อมกันเนื่องจากจำนวน BU Line มีไม่แน่นอน
1. ที่ชีท PL เซลล์ E5 คีย์กด Ctrl+Shift ค้างไว้ แล้ว Enter (จะเห็นเครื่องหมายปีกกา { } ขึ้นมาอัตโนมัติ) --> คัดลอกไปทางขวาCode: Select all
=IF(ISERR(INDEX('BU Line'!$D$2:$D$9,SMALL(IF('BU Line'!$C$2:$C$9=$B5,ROW('BU Line'!$C$2:$C$9)-ROW('BU Line'!$C$2)+1),COLUMNS($E5:E5)))),"", INDEX('BU Line'!$D$2:$D$9,SMALL(IF('BU Line'!$C$2:$C$9=$B5,ROW('BU Line'!$C$2:$C$9)-ROW('BU Line'!$C$2)+1),COLUMNS($E5:E5)))&",")
2. ปรับความกว้างคอลัมน์และซ่อน grid line เพื่อหลอกตา
หากนำไปใช้จริง ก็ให้ปรับช่วงที่ระบายสีแดงให้สอดคล้องกับข้อมูลจริงในชีท BU Line ครับ
=IF(ISERR(INDEX('BU Line'!$D$2:$D$9,SMALL(IF('BU Line'!$C$2:$C$9=$B5,ROW('BU Line'!$C$2:$C$9)-ROW('BU Line'!$C$2)+1),COLUMNS($E5:E5)))),"",
INDEX('BU Line'!$D$2:$D$9,SMALL(IF('BU Line'!$C$2:$C$9=$B5,ROW('BU Line'!$C$2:$C$9)-ROW('BU Line'!$C$2)+1),COLUMNS($E5:E5)))&",")