Page 1 of 2

การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Thu Jan 29, 2015 1:23 pm
by parakorn
เรียนอาจารย์และพี่ๆทุกท่านครับ

จากไฟล์แนบใน Sheet "Print CN" ต้องการดึงข้อมูลให้แสดงบนตาราง
โดยดึงตามเงื่อนไข ที่ User เลือก คือ "แผนก" "ส่งบริษัท" และ "คืนได้/ไม่ได้"
โดยมีฐานข้อมูล จาก Sheet "CN Data" ซึ่งถูกบันทึกจาก User

และอีกอย่างที่ต้องการคือ การดึงตามเงื่อนไข คือ "แผนก" "ส่งบริษัท" และ "คืนได้/ไม่ได้"
มีวิธีการอย่างไร ไม่ให้ข้อมูลใน dropdownlist มันซ้ำ ครับ ขอรบกวนด้วยครับ

พลากร

Re: การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Thu Jan 29, 2015 2:00 pm
by DhitiBank
ลองแนบไฟล์อีกครั้งครับ มองไม่เห็นไฟล์แนบ

Re: การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Thu Jan 29, 2015 2:34 pm
by parakorn
ทำไมแนบแล้วขึ้น สเตตัส error ครับ :(

Re: การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Thu Jan 29, 2015 2:36 pm
by snasui
:D ไฟล์แนบต้องตั้งชื่อเป็นภาษาอังกฤษครับ

Re: การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Thu Jan 29, 2015 2:50 pm
by parakorn
:D :D
SampleCN - Copy.xlsm

Re: การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Thu Jan 29, 2015 3:31 pm
by snasui
:D ตัวอย่าง Code ในเซลล์ B9 ตามด้านล่างครับ

=IFERROR(INDEX('CN Data'!$C$9:$C$11,SMALL(IF('CN Data'!$H$8:$H$11=$D$6,IF('CN Data'!$K$8:$K$11=$H$4,IF('CN Data'!$G$8:$G$11=$B$6,ROW('CN Data'!$C$8:$C$11)-ROW('CN Data'!$C$8)+1))),ROWS(B$9:B9))),"")

Ctrl+Shift+Enter ปรับสูตรโดยเปลียนเฉพาะค่าที่ระบายสีแดงในสูตรเพื่อใช้กับคอลัมน์ต่าง ๆ ตามต้องการ

กรณีแสดง Validation แบบ Unique Record ให้ทำ Unique Record ในพื้นที่อื่นแล้วค่อยนำมาใช้ใน Validation

ตัวอย่างการทำ Unique Record ด้วยสูตร ศึกษาจาก Link นี้ครับ wordpress/unique-record/

Re: การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Thu Jan 29, 2015 4:00 pm
by parakorn
ขอบคุณครับอาจารย์ เดี๋ยวแบกของเสร็จจะกลับมาลองทำแล้วแจ้งผลให้ทราบครับ :tt:

Re: การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Thu Jan 29, 2015 7:13 pm
by parakorn
ผมปรับสูตรของอาจารย์แล้ว ไม่ขึ้นครับ เนื่องจากฐานข้อมูลมาจากข้อมูลที่ user คีย์เพิ่มเรื่อยๆ
จึงจำเป็นต้องใช้ ฐานข้อมูลแบบไดนามิค ไม่ทราบว่ามีผลต่อสูตรนี้หรือไม่ หรือผมใส่ฐานข้อมูลผิดเอง
ลองไล่ดูแล้วครับ แต่ไม่เจอเลย
รบกวนด้วยครับผม
SampleCN(revise1) - Copy.xlsm

Re: การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Thu Jan 29, 2015 7:45 pm
by snasui
:D ปรับ Range Name โดยกำหนดสูตรของ Range Name ใหม่ตามด้านล่างครับ

Bar2Data =OFFSET('CN Data'!$C$8,,,COUNTA('CN Data'!$C:$C)-3)
SupData =OFFSET('CN Data'!$H$8,,,COUNTA('CN Data'!$C:$C)-3)
เงื่อนไขคืนData =OFFSET('CN Data'!$K$8,,,COUNTA('CN Data'!$C:$C)-3)
CatData =OFFSET('CN Data'!$G$8,,,COUNTA('CN Data'!$C:$C)-3)

จากนั้น B9 ปรับสูตรเป็น

=IFERROR(INDEX(Bar2Data,SMALL(IF(SupData=$D$6,IF(เงื่อนไขคืนData=$H$4,IF(CatData=$B$6,ROW(Bar2Data)-MIN(ROW(Bar2Data)+1)))),ROWS(B$9:B9))),"")

เมื่อปรับสูตรแล้วลองเปลียนเงื่อนไขการคืนและเงื่อนไขที่เกี่ยวข้องแล้วสังเกตดูผล

Re: การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Thu Jan 29, 2015 9:18 pm
by parakorn
ขอบคุณอาจารย์มากครับผม พรุ่งนี้เช้าจะนำไปปรับใช้ดูนะครับ ต่อไปพี่ๆน้องๆในสาขาคงสบายขึ้นมากมาย เพราะไม่ต้องเขียนให้เมื่อยมือ ฝันดีครับผม

Re: การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Fri Jan 30, 2015 12:30 pm
by parakorn
ปรับตามอาจารย์แล้วครับ ยังไม่ขึ้นเลยครับ
SampleCN(revise2) - Copy.xlsm

Re: การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Fri Jan 30, 2015 1:01 pm
by snasui
:D ยังไม่ได้ปรับ Range Name ที่ชื่อ เงื่อนไขคืนData ให้เป็นไปตามที่ผมโพสต์ด้านบนครับ

Re: การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Fri Jan 30, 2015 2:12 pm
by parakorn
ขึ้นแล้วครับ แต่ยังไม่ตรงตามที่ต้องการ เพราะbar มีข้อมูลจากบริษัทอื่นปนมา 2บรรทัด
และรายการก็เหมือนเพี้ยนๆ
ผมลองปรับดูมั่วๆเช่น =IFERROR(INDEX(Bar2Data,SMALL(IF(SupData=$D$6,IF(เงื่อนไขคืนData=$H$4,IF(CatData=$B$6,ROW(Bar2Data)-MIN(ROW(Bar2Data)+1)))),ROWS(B$9:B9))),"") :lol: เป็น

=IFERROR(INDEX(Bar2Data,SMALL(IF(SupData=$D$6,IF(เงื่อนไขคืนData=$H$4,IF(CatData=$B$6,ROW(Bar2Data)-MIN(ROW(Bar2Data)-1)))),ROWS(B$9:B9))),"")

ปรากฏว่า Excel เป็นอะไรไม่รู้เลยครับ ลบ Cell ก็ไม่ได้ ต้องปิดเปิดใหม่เลยครับ :shock:
SampleCN(revise3) - Copy.xlsm

Re: การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Fri Jan 30, 2015 4:52 pm
by snasui
:D ปรับสูตรที่ B8 เป็นตามด้านล่าง เนื่องจากเดิมมี่การวงเล็บผิดตำแหน่งครับ

=IFERROR(INDEX(Bar2Data,SMALL(IF(SupData=$D$6,IF(เงื่อนไขคืนData=$H$4,IF(CatData=$B$6,ROW(Bar2Data)-MIN(ROW(Bar2Data))+1))),ROWS(B$9:B9))),"")

Re: การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Fri Jan 30, 2015 5:46 pm
by parakorn
มันขึ้นแบบนี้แล้ว ทำอะไรไม่ได้เลยครับ กด ESC คืนค่าได้อย่างเดียว -*-

You Cannot change part of an array

Re: การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Fri Jan 30, 2015 5:51 pm
by snasui
:D เพราะคีย์สูตรลงในเซลล์ "ผิดรูปแบบ" ตั้งแต่แรกครับ

ให้ลองดูว่าที่คอลัมน์ B มีสูตรไปถึงไหน ให้คลุมเท่านั้น > กดแป้น F2 > Ctrl+Enter > แก้สูตรที่ B8 ให้เป็นไปตามที่ผมโพสต์ > Ctrl+Shift+Enter > Copy ลงด้านล่างและปรับใช้กับคอลัมน์อื่น ๆ

Re: การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Fri Jan 30, 2015 5:56 pm
by parakorn
แก้ได้แล้วครับ Ctrl+Shift แล้ว Double Click แล้วกด Delete ทิ้งไปเลย

สูตรแสดงผล ตรงแล้วครับผม ตอนนี้มีเงื่อนไขคือจำนวนลังเพิ่มขึ้นมา

เดี๋ยวผมจะลองทำความเข้าใจแล้วเพิ่มเข้าไปเองดูนะครับ

ขอบพระคุณอาจารย์ครับผม :thup:

Re: การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Fri Jan 30, 2015 6:56 pm
by parakorn
พบความผิดพลาด จากตัวอย่าง แผนก Home คืนได้ มีแตก 2 ชิ้น แต่บนตารางแสดงแค่ชิ้นเดียวครับ
SampleCN(revise4) - Copy.xlsm

Re: การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Fri Jan 30, 2015 7:01 pm
by parakorn
ได้ละครับ ลืม ctrl+shift+enter :lol: :lol:

Re: การดึงข้อมูล จาก3เงื่อนไข , การสร้างdropdownlist จากตารางไดนามิคโดยตัวเลือกไม่ซ้ำกัน

Posted: Sat Jan 31, 2015 9:49 am
by parakorn
ผมนำ massage box vbYesno ครอปแล้วเด้งออก ขอสอบถามวิธีการ ครอปด้วยครับเหมือนจะผิดวิธี :lol:

และสอบถามเพิ่มเติมครับ หากผมต้องการใส่เงื่อนไขบังคับให้กรอกข้อมูลในSheet "CN for team" Cell B5,D5,F5,H5 และ H10 เมื่อรัน Macro Save

หลังจาก กด Yes หากไม่มีข้อมูล ใน Cell ทั้ง 5 Cell ที่กล่าว ให้มี Msg Box แจ้งเตือนให้กรอกให้ครบ ต้องปรับโค้ดอย่างไรครับ

ปล. กรณีกรอกข้อมูลครบถ้วน ไม่ต้องการ Msg box แจ้งเตือนหลังจากรันมาโครเสร็จครับ แค่ กด Yes ก็พอแล้วกรอกข้อมูลต่อทันที

รบกวนด้วยครับผม :D

แก้ไข:แนบไฟล์
SampleCN(revise5) - Copy.xlsm