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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)_Name
_Name
DhitiBank wrote:อีกแบบหนึ่งครับ
ชีท List
อย่างที่คุณ menem บอก ตารางเดิมไม่สะดวกในการสร้าง range name เลยมาสร้างใหม่ด้วยสูตรครับ
1. E2 คีย์
=LOOKUP(CHAR(255),A$2:A2)
enter -> คัดลอกไป G2 และลงล่างจนสุดตาราง
2. แยกรายการไม่ซ้ำของแต่ละคน
2.1 I2 คีย์
=INDEX($E$2:$E$61,SMALL(IF(MATCH($E$2:$E$61,$E$2:$E$61,0)=ROW($E$2:$E$61)-ROW($E$2)+1,ROW($E$2:$E$61)-ROW($E$2)+1),COLUMNS($I2:I2)))
Ctrl+Shift+Enter -> คัดลอกไปทางขวาจนเห็นค่า error
2.2 I3 คีย์
=INDEX($F$2:$F$61,SMALL(IF(($E$2:$E$62=I$2)*FREQUENCY(MATCH(IF($E$2:$E$61=I$2,$F$2:$F$61),IF($E$2:$E$61=I$2,$F$2:$F$61),0),ROW($F$2:$F$61)-ROW($F$2)+1),ROW($F$2:$F$61)-ROW($F$2)+1),ROWS(I$3:I3)))
Ctrl+Shift+Enter -> คัดลอกไปทางขวาจนสุดสูตรในแถว 2 และลงล่างจนเห็นค่า error
2.3 H2 คีย์
=SUMPRODUCT(--ISTEXT(I2:N2))
enter
2.4 I1 คีย์
=SUMPRODUCT(--ISTEXT(I3:I19))
enter -> คัดลอกไปทางขวาจนสุดสูตรที่แถว 2
ที่ทำมาทั้งหมดนี้เพื่อหาว่ามีกี่คน และแต่ละคนมีรายการให้เลือกแบบไม่ซ้ำอะไรบ้างครับ
3. สร้าง dynamic range name ที่เป็นชื่อคน ผมสมมติว่าชื่อ_Name
Ctrl+F3 --> New... --> ตั้งชื่อ --> refer to: คีย์
=List!$I$2:INDEX(List!$I$2:$N$2,List!$H$2)
(range name ของขนาดก็สร้างแบบธรรมดาเลยครับ เพราะเข้าใจว่ามีให้เลือก 3 ขนาดเหมือนกันหมด หรือเปล่า )
4. ไปที่ชีท order
4.1 ที่ A5 ไปตั้งค่า data validation แบบเลือกจากรายการโดยให้ source คือ_Name
4.2 ที่ B5 เลือก data validation แบบรายการ แต่ตรง source ให้คีย์
=OFFSET(List!$I$3,0,MATCH($A5,List!$I$2:$N$2,0)-1,INDEX(List!$I$1:$N$1,MATCH($A5,List!$I$2:$N$2,0)))
แล้ว OK
4.3 ที่ C5 ตั้งค่า data validation โดยใช้ source เป็นขนาดที่ทำไว้
4.4 คัดลอก validation ในเซลล์ A5:C5 ไปใช้กับตำแหน่งอื่นๆ ครับ
โปรดลืมไปเถอะครับ ทำแบบนั้นข้อจำกัดเยอะ แถมได้แค่ drop down ที่เกี่ยวข้องกันแค่ 2 fields ลองดูของคุณ menem ครับใช้วิธีเขียน user defined function และนอกจากนี้ผมเจอวิธีทำที่น่าสนใจอีกอย่าง ลองดูที่ลิ้งค์ด้านล่างนี้ครับ แต่เสียเวลาตอนแรกที่ต้องนั่งสร้าง unique list ของแต่ละตัวเลือกjanesit wrote:อ่านแล้วท้อเลยค่ะ
อีกตัวอย่าง เป็นการใช้สูตรหาค่า Unique List เพื่อใช้ใน Validation และค่อนข้างซับซ้อนครับsanyadraco wrote:ถามผู้รู้
วิธีการสร้างเงื่อนไขใน Drop Down List ทำยังไงบ้างครับ
โดยสิ่งที่ต้องการมีดังนี้ครับ
ต้องการข้อมูลตั่งต้นจาก Sheets list และ me Drop down list ใน Sheet order
ตอนนี้ได้ตั้งชื่อ กลุ่มคอลัมแล้ว
อยากให้หากเราเลือกDDLในคอลัม A แล้ว จะให้ DDL คอลัม B และ C โชว์แต่ที่เกี่ยวข้องเท่านั้น
แล้วใน DDL ไม่ต้องการให้โชว์ข้อมูลที่ซ้ำกัน และ ช่องว่าง
ตัวอย่างเช่น(ดูไฟล์แนบประกอบ) หากผมเลือกร้าน วัลลพ จะโชว์แต่รายการที่เกี่ยวข้องกับร้าน และโชว์ขนาดเฉพาะรายการที่ต้องการเท่านั้น
ผู้รู้บอกทีครับ
Thanks
ขอบคุณครับอาจารย์snasui wrote: Sat May 19, 2018 6:59 am การทำ Validation แบบสัมพันธ์กันตามตัวอย่างที่แนบมาจะต้องสร้าง Range Name จำนวนมาก ปัญหาที่เกิดขึ้นคือยังสร้าง Range Name ไว้ไม่ครบครับ
ตัวอย่างการสร้าง Validation แบบสัมพันธ์กันอีกวิธีดูที่นี่ครับ wordpress/multi-level-relational-validation/