:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

ให้Excell แสดงผลลัพธ์ครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ให้Excell แสดงผลลัพธ์ครับ

#21

Post by snasui »

:D เพราะเงื่อนไขในการเขียน Validation ไม่ได้รวมเรื่องรหัสสินค้าเข้าไปเนื่องจากไม่ได้แจ้งมาด้วยครับ มีเงื่อนไขอื่นอีกไหมครับ :?:
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ให้Excell แสดงผลลัพธ์ครับ

#22

Post by snasui »

กรณีไม่มีเงื่อนไขเพิ่มเติมอีก สามารถทำตามด้านล่างครับ

ไปที่ Sheet2
1. คลุม F3:Fn (n คือค่าใด ๆ ที่ต้องการเช่น 1000)
2. เข้าเมนู Data > Data Validation
3. ที่แถบ Setting ตรง Allow เลือก Custom > ตรง Formula คีย์
=SUMPRODUCT(--(D$3:D3&F$3:F3=D3&F3))=1
4. คลิก OK แล้วทดสอบการคีย์ข้อมูล > สังเกตการแสดงผล
rocketkenji
Member
Member
Posts: 57
Joined: Sun Jun 26, 2011 1:52 am

Re: ให้Excell แสดงผลลัพธ์ครับ

#23

Post by rocketkenji »

หมดแล้วครับสุดท้ายจริงๆๆ ขอบคุณมากครับอาจารย์
rocketkenji
Member
Member
Posts: 57
Joined: Sun Jun 26, 2011 1:52 am

Re: ให้Excell แสดงผลลัพธ์ครับ

#24

Post by rocketkenji »

ช่อง F3 - F9 สามารถใส่มัดงาน ที่ 1 ได้หมดเลยครับ รบกวนอาจารย์อีกทีนะครับ ดังตัวอย่างไฟล์ที่แนบมาครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ให้Excell แสดงผลลัพธ์ครับ

#25

Post by snasui »

:lol: :lol: 1 กับ ,1 กับ 1, ไม่เท่ากันนะครับ
rocketkenji
Member
Member
Posts: 57
Joined: Sun Jun 26, 2011 1:52 am

Re: ให้Excell แสดงผลลัพธ์ครับ

#26

Post by rocketkenji »

ไม่มีตัวช่วยหรือครับ..ถ้าเป็นแบบนั้น หนึ่งบรรทัดผมก็ ครีข้อมูลได้แค่ 1 มัดเองสิครับ

ข้อมูลจิงๆๆ มีเป็นร้อยมัดเลยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ให้Excell แสดงผลลัพธ์ครับ

#27

Post by snasui »

:shock:
rocketkenji wrote:ถ้าเป็นแบบนั้น หนึ่งบรรทัดผมก็ คีย์ข้อมูลได้แค่ 1 มัดเองสิครับ
คงไม่ใช่ครับ ถ้า 1,2,3,4 คือ 4 มัด
rocketkenji wrote: ข้อมูลจริงๆๆ มีเป็นร้อยมัดเลยครับ
ถ้าผมต้องคีย์ 100 มัดผมจะหาวิธีการปรับปรุง Worksheet ใหม่ แค่ 10 มัดก็ถือว่าไม่เหมาะในการทำข้อมูลลักษณะนี้

ส่วนวิธีการปรับปรุงจากเดิมก็ใช้คอลัมน์ Q เข้ามาช่วยเชื่อมข้อมูลเข้าไปใหม่แล้วนำไปใช้ใน Validation ลองดูตามไฟล์แนบครับ
You do not have the required permissions to view the files attached to this post.
rocketkenji
Member
Member
Posts: 57
Joined: Sun Jun 26, 2011 1:52 am

Re: ให้Excell แสดงผลลัพธ์ครับ

#28

Post by rocketkenji »

แล้วจะป้องกันการคีย์ข้อมูลซ้ำ แบบไหนดีครับในเมื่อข้อมูลมีปริมาณมาก ขอคำแนะนำหน่อยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ให้Excell แสดงผลลัพธ์ครับ

#29

Post by snasui »

ไม่ทราบว่าได้ดูไฟล์ที่ผมปรับปรุงไปให้แล้วยังครับ ติดตรงไหนก็ถามมาได้ต่อ มีกี่เงื่อนไขก็ควรแจ้งให้ครบครับ อ้อ Validation มันไม่ตรวจค่าที่คีย์ไว้แล้วนะครับ การทดสอบต้องคีย์ค่าเข้าไปใหม่
rocketkenji
Member
Member
Posts: 57
Joined: Sun Jun 26, 2011 1:52 am

Re: ให้Excell แสดงผลลัพธ์ครับ

#30

Post by rocketkenji »

ดูแล้วครับ มันจะติด กรณี ถ้าผมคีย์มัดที่ 1,2,3,4 ไปแล้ว ถ้าเจอมัดที่ 12,3,4 มันก้อจะคีย์ต่อไม่ได้ครับ กำลังปรับปรุงการใช้ภาษาไทยให้ถูกต้องอยู่ครับผิดพลาดตรงไหนขออภัยด้วยครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ให้Excell แสดงผลลัพธ์ครับ

#31

Post by snasui »

:D ผมปรับสูตรที่ Q3 มาให้ใหม่เป็น

=MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(","&K3&","&L3&","&M3&","&N3&","&O3&",",",,,,,",","),",,,,",","),",,,",","),",,",","),2,LEN(K3&L3&M3&N3&O3)+COUNTIF(K3:O3,"?*")-1)

ลองทดสอบดูตามไฟล์แนบครับ
You do not have the required permissions to view the files attached to this post.
rocketkenji
Member
Member
Posts: 57
Joined: Sun Jun 26, 2011 1:52 am

Re: ให้Excell แสดงผลลัพธ์ครับ

#32

Post by rocketkenji »

มัดงานมันตรวจสอบไม่ได้ครับ. ผมว่าต้องลงได้ทีละมัด แล้วก็ใช้ Data Validation อย่างเดียวโอเคกว่าครับ แต่เวลาคีย์ข้อมูลเหนื่อยแน่ๆ T^T

อย่างที่อาจารย์บอกไว้ครับ ว่า 1 กับ 1, มันคนละชื่อกัน
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ให้Excell แสดงผลลัพธ์ครับ

#33

Post by snasui »

:D ไม่เข้าใจครับ จากไฟล์ล่าสุดที่ผมแนบมา คุณ rocketkenji ทดสอบคีย์ค่าซ้ำใดลงไปแล้วโปรแกรมไม่ตรวจสอบให้ครับ :?:
rocketkenji
Member
Member
Posts: 57
Joined: Sun Jun 26, 2011 1:52 am

Re: ให้Excell แสดงผลลัพธ์ครับ

#34

Post by rocketkenji »

อย่างช่อง F3 กับ F3 จะมีมัดงานที่ 1 ซ้ำกันครับ เพราะชื่อมันไม่เหมือนกันอย่างที่อาจารย์เคยบอกไว้ครับ เลยทำให้ Data Validation ตรวจสอบไม่ได้
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ให้Excell แสดงผลลัพธ์ครับ

#35

Post by snasui »

:D ลองดูตามไฟล์แนบครับ

1. ที่เซลล์ K3 คีย์

=IF(LEN($I3&TRIM(MID(SUBSTITUTE(","&$F3,",",REPT(" ",$J3)),COLUMNS($K3:K3)*$J3,$J3)))=4,"",$I3&TRIM(MID(SUBSTITUTE(","&$F3,",",REPT(" ",$J3)),COLUMNS($K3:K3)*$J3,$J3)))

Enter > Copy ไปทางขวาและลงด้านล่าง

2. ที่เซลล์ P3 คีย์

=SUMPRODUCT(--(K$3:O3<>""),--(COUNTIF(K$3:O3,K$3:O3)>1))

Enter > Copy ลงด้านล่าง

3. ที่ F3:F15 กำหนด Validation

=$P3=0
You do not have the required permissions to view the files attached to this post.
rocketkenji
Member
Member
Posts: 57
Joined: Sun Jun 26, 2011 1:52 am

Re: ให้Excell แสดงผลลัพธ์ครับ

#36

Post by rocketkenji »

ซูฮก เลยครับ โอเคเลยครับ อาจารย์.. เดี๋ยวถ้ามีปัญหาอะไรเพิ่มเติมจะเข้ามาถามนะครับ ขอบคุณครับ
rocketkenji
Member
Member
Posts: 57
Joined: Sun Jun 26, 2011 1:52 am

Re: ให้Excell แสดงผลลัพธ์ครับ

#37

Post by rocketkenji »

รบกวนอีกครั้งครับ..... EDIT6 ช่องจำนวนตัว ไม่รวมยอดของมัดงานให้ครับ จำนวนตัวเป็น 0 ไม่ว่าจะใส่กี่มัดก็ตาม
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ให้Excell แสดงผลลัพธ์ครับ

#38

Post by snasui »

:D จากไฟล์ล่าสุดแก้สูตรที่ Sheet2 เซลล์ G3 เป็นด้านล่างครับ

จากสูตรเดิม

=SUM(INDEX(Sheet1!$F$3:$J$12,MATCH(1,IF(Sheet1!$B$3:$B$12=$D3,IF(Sheet1!$C$3:$C$12=$E3,1)),0),0)*ISNUMBER(MATCH(Sheet1!$F$2:$J$2,$K3:$O3+0,0)))

เป็น

=SUM(INDEX(Sheet1!$F$3:$J$12,MATCH(1,IF(Sheet1!$B$3:$B$12=$D3,IF(Sheet1!$C$3:$C$12=$E3,1)),0),0)*ISNUMBER(MATCH($I3&Sheet1!$F$2:$J$2,$K3:$O3,0)))

Ctrl+Shift+Enter > Copy ลงด้านล่าง
rocketkenji
Member
Member
Posts: 57
Joined: Sun Jun 26, 2011 1:52 am

Re: ให้Excell แสดงผลลัพธ์ครับ

#39

Post by rocketkenji »

ได้ละครับสุดยอดจริงๆ ขอบคุณมากครับ


ปล. ผมลองขยายขนาดเป็น 100 มัด คอมประมวลผลช้ามากเลยครับ ขนาดมี 2 แถว เอง รอประมาณ 5 วินาที แล้วถ้ามีเป็น หมื่นแถวนี้สงสัยประมวลผลไม่ไหวแน่
User avatar
snasui
Site Admin
Site Admin
Posts: 31176
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: ให้Excell แสดงผลลัพธ์ครับ

#40

Post by snasui »

rocketkenji wrote: ปล. ผมลองขยายขนาดเป็น 100 มัด คอมประมวลผลช้ามากเลยครับ ขนาดมี 2 แถว เอง รอประมาณ 5 วินาที แล้วถ้ามีเป็น หมื่นแถวนี้สงสัยประมวลผลไม่ไหวแน่
ครับ...เนื่องจากสูตรพวกนี้เป็นสูตร Array แล้วในบางสูตรต้องเช็คทุกเซลล์ตั้งแต่บรรทัดแรก เมื่อใช้สูตรจำนวนมากย่อมคำนวณช้าแน่นอนครับ แค่ 2 บรรทัดก็เสียเวลาไป 5 วินาที ในหนึ่งวันมีแค่ 86400 วินาที ถ้าไม่ทำงานอื่นใด 1 วัน (24 ชม.) จะคำนวณได้แค่ 17280 บรรทัด

หากต้องการทำงานให้เร็วคงต้องปรับการเก็บข้อมูลใหม่ เช่น ใน 1 เซลล์ก็แค่ 1 มัด ข้อมูลอาจจะเยอะก็ถือว่าปกติ เพราะหลักการเก็บข้อมูลควรจะเก็บเช่นนี้ คือเป็น Database สามารถนำไปใช้ได้โดยง่าย :mrgreen:
Post Reply