: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
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

TRAINING RECORD

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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: TRINNING RECORD

#21

Post by snasui »

:D นพดลมีอยู่ 3 คน และนพดล คชสิทธิ์คือคนแรก

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

สูตรที่ถูกต้องใน C544 คือ

=VLOOKUP(A544,Data!A:Q,3,FALSE)

ไม่ใช่

=VLOOKUP(B544,Data!B:Q,2,FALSE) ตามไฟล์ที่แนบมาครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: TRINNING RECORD

#22

Post by bank9597 »

ใช้คำสั่ง VLOOKUP อย่างเช่นใช้กับชื่อ แต่ปรากฏว่าผลที่ไม่ มันไม่ใช่ข้อมูลที่แท้จริงของมัน
:D ถ้าเข้าใจไม่ผิดหลักการน่ะครับ การทำ VLOOKUP เราจะอ้างจากชื่อไปรหัสไม่ได้ หรือ อ้างจากข้อมูลที่เป็น Text ไป Number ไม่ได้ (รบกวนอาจารย์แก้ข้อสงสัยให้ผมด้วยครับ) ตรงนี้อาจจะเป็นข้อจำกัดของ VLOOKUP ที่จะใช้อ้างอิงจากซ้ายไปขวา อ้างอิงจากขวาไปซ้ายไม่ได้ครับ
ถ้า Vlookup โดยใช้ชื่อเป็นหลัก จะเจอนพดล คชสิทธิ์ตลอดกาล เนื่องจากเป็นนพดลคนแรก และ Vlookup จะนำข้อมูลที่เจอตัวแรกมาแสดงเสมอ การใช้ Vlookup จะต้อง Lookup ด้วยข้อมูลใด ๆ ที่ไม่ซ้ำกัน ยกตัวอย่างเช่น รหัส ครับ
:D ตรงนี้สำคัญมากๆครับ เห็นด้วยอย่างยิ่งครับ

แนะนำอีกนิดนึงครับ เนื่องจากรูปแบบจำลองฐานข้อมูลที่ผมทำไปให้นั้น อาจจะต้องปรับปรุงอีกครับ เพราะดูการจัดเก็บข้อมูลแล้วค่อนข้างเยอะแน่นอน จะใช้ VLOOKUP ไปตลอดคงไม่ได้ครับ ควรจะปรับสูตรเป็นสูตรอื่นเมื่อมีข้อมูลจำนวนมากครับ เหตุผลที่ไม่แนะนำให้ใช้ VLOOKUP คือจะใช้ทรัพยากรเยอะ คำนวนช้าครับ (อาจารย์แนะนำมาครับ) :D
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
khunapple
Member
Member
Posts: 15
Joined: Fri Nov 18, 2011 7:17 pm

Re: TRINNING RECORD

#23

Post by khunapple »

ทำไมในส่วนของ REPORT ถึงไม่ขึ้นข้อมูลให้ค่ะ แสดงเป็นN/A
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: TRINNING RECORD

#24

Post by snasui »

:lol: ปรับช่วงข้อมูลให้เป็นช่วงข้อมูลจริงก่อนครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: TRINNING RECORD

#25

Post by bank9597 »

:D ลองตามนี้ครับ
ที่ "B20" คีย์ =IF(ROWS($B$20:B21)>$F$16,"",INDEX(Record!D$2:D$1500,SMALL(IF(Record!$A$2:$A$1500=Report!$D$3,ROW(Record!$D$2:$D$1500)-ROW(Record!$A$2)+1),ROWS($B$20:B21))))
กด Ctrl+Shift+Enter แล้วคัดลอกลงมาข้างล่างครับ

ให้สังเกตุ สูตร ในเซลล์ "F16" เพราะเซลล์ "B20" จะอ้างอิงมาจากตรงนั้น จะเห็นได้ว่าสูตรที่ "F16" คือ =COUNTIF(Record!A2:A1500,Report!D3) นั่นคือนับไปแล้วถึง 1500 Record เมื่อเป็นเช่นนั้นแล้ว เราก็ต้องแก้ไขจำนวน Record ในสูตร "B20" ให้ตรงกันด้วยครับ :D

แนะนำนิดนึงครับ ในกรณีที่เราต้องกรอกข้อมูลบ่อย เราต้องหมั่นดูด้วยว่าตอนนี้จำนวน Record ไปถึงไหนแล้ว
และก้พยายามปรับใช้สูตรไปเรื่อยครับ ลองศึกษาเองดูครับ เพราะถ้าไม่อย่างนั้น ข้อมูลยิ่งมากขึ้นไป ก็จะเจอปัญหานี้เดิมอีกครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
khunapple
Member
Member
Posts: 15
Joined: Fri Nov 18, 2011 7:17 pm

Re: TRINNING RECORD

#26

Post by khunapple »

ต้องขอโทษด้วยค่ะ พอดีว่าใหม่จริง ๆ กับ EXCEL ทำให้บางครั้งไม่เข้าใจความหมาย ตอนนี้พบปัญหา ในส่วนของ REPORT แสดง 15 รายการ แต่ว่าขึ้นข้อมูลจริงแค่ 14 รายการ และ ด้านท้ายตารางมีอักษรซ้อนขึ้นมา #REF ค่ะ
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: TRINNING RECORD

#27

Post by snasui »

:D ที่ B20 ปรับสูตรใหม่เป็น

=IF(ROWS($B$20:B20)>$F$16,"",INDEX(Record!D$2:D$1500,SMALL(IF(Record!$A$2:$A$1500=Report!$D$3,ROW(Record!$D$2:$D$1500)-ROW(Record!$A$2)+1),ROWS($B$20:B20))))

Ctrl+Shift+Enter > Copy ลงด้านล่างครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: TRINNING RECORD

#28

Post by bank9597 »

:D ลองตามนี้ครับ
ที่ "B20" คีย์ =IF(ROWS($B$20:B20)>$F$16,"",INDEX(Record!D$2:D$1500,SMALL(IF(Record!$A$2:$A$1500=Report!$D$3,ROW(Record!$D$2:$D$1500)-ROW(Record!$A$2)+1),ROWS($B$20:B20))))

อันเดิมคือ =IF(ROWS($B$20:B21)>$F$16,"",INDEX(Record!D$2:D$1500,SMALL(IF(Record!$A$2:$A$1500=Report!$D$3,ROW(Record!$D$2:$D$1500)-ROW(Record!$A$2)+1),ROWS($B$20:B21))))

ตัวอักษรสีแดงคือส่วนที่ผิดพลาดครับ ขออภัยที่ดูให้ไม่ครบครับ :lol:
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
snoopy1150
Member
Member
Posts: 84
Joined: Mon Sep 05, 2011 7:03 pm
Location: Bangkok, Thailand

Re: TRINNING RECORD

#29

Post by snoopy1150 »

ผมลองดูไฟล์แล้ว คือ มีปัญหาอยู่คือช่วงข้อมมูลมันเลื่อน ครับ เลยแสดงข้อมูลผิด

จากตัวอย่าง ช่อง ชื่อ คือดึงข้อมูลจากรหัส
=VLOOKUP(A544,Data!A:P,2,FALSE)

ช่อง นามสกุล ก็ต้องดึงจากรหัสเช่นกันครับ ข้อมูลถึงจะตรง
=VLOOKUP(A544,Data!A:P,3,FALSE) <------ ลองแก้ตามนี้ดูครับ

ขออนุญาติ แนะนำครับ ถ้าจะให้ดีควรล็อคช่วงข้อมูล คือ เพิ่ม $ เป็นการล็อคข้อมูล ครับ

=VLOOKUP($A544,Data!$A:$P,3,FALSE)
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: TRINNING RECORD

#30

Post by bank9597 »

:D ขอบคุณเพื่อนสมาชิกที่ช่วยกันตรวจสอบครับ ถือว่าเป็นเรื่องที่ดีครับ :D

ผมคิดว่าปัญหาการแสดงข้อมูลไม่ถูกต้องเกิดจาก การทำ VLOOKUP ในลักษณะนี้ :arrow: =VLOOKUP(A544,Data!A:P,3,FALSE)
ไม่ได้กำหนดช่วงข้อมูล (Array) ถึงแม้จะมี FALSE ที่บังคับให้ข้อมูลตรงกันทั้งหมดก็ตาม อาจจะสรุปได้ว่าเมื่อข้อมูลยิ่งมากขึ้นเท่าไหร ความผิดพลาดก็จะเกิดขึ้นได้มากขึ้นเท่านั้น

ซึ่งต่างจากการทำ VLOOKUP ในลักษณะนี้ :arrow: =IF(B20<>"",VLOOKUP(B20,CourseName,2,FALSE),"")
ซึ่งเราจะกำหนดช่วงข้อมูล (CourseName) ไว้ชัดเจน เก็บไว้เป็น Array ข้อมูลเพิ่มขึ้นเท่าไหร่ เราก็เพิ่มช่วงข้อมูลตาม ความผิดพลาดก็ไม่เกิดครับ

ฉะนั้น ลองเลือกใช้ตามความเหมาะสมครับ :D
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  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: TRINNING RECORD

#31

Post by snasui »

:lol: ดีครับ มาช่วย ๆ กันแชร์

ความผิดพลาดไม่ได้เกิดจากข้อมูลมากหรือน้อยครับ

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

การจะใช้ชื่อให้กับช่วงข้อมูลหรือ Range Name ให้เกิดประโยชน์ได้มากขึ้นควรกำหนดให้ยืดหยุ่นได้ นั่นคือชื่อจะขยายเพิ่มลดตามปริมาณข้อมูลที่มี ไม่ต้องกำหนดเผื่อไว้ทั้งคอลัมน์ ซึ่งการทำเช่นนั้นต้องใช้ฟังก์ชั่นอื่น ๆ เข้ามาช่วยกำหนดขอบเขต เช่นฟังก์ชั่น Offset, Match ,Count, Counta, Lookup เป็นต้น

ส่วนข้อเสียคือ การให้ชื่อกับช่วงเซลล์ปริมาณมาก ๆ ทั้งเป็นการอ้างอิงข้ามไฟล์ จะทำให้ไฟล์ใหญ่ ทำงานช้า
snoopy1150
Member
Member
Posts: 84
Joined: Mon Sep 05, 2011 7:03 pm
Location: Bangkok, Thailand

Re: TRINNING RECORD

#32

Post by snoopy1150 »

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

หากผิดพลาดประการใด ขออภัยด้วยครับ
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: TRINNING RECORD

#33

Post by bank9597 »

:D โอ๊ว...ขอบคุณอาจารย์มากครับ ได้ความรู้เพิ่มอีกแล้วครับ

และขอบคุณเพื่อนสมาชิกด้วยครับ ที่ร่วมแชร์ความคิดกัน เป็นประโยชน์มากครับ :D
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
khunapple
Member
Member
Posts: 15
Joined: Fri Nov 18, 2011 7:17 pm

Re: TRINNING RECORD

#34

Post by khunapple »

ขอบคุณทุกคนเลยค่ะ ที่ช่วยแบ่งปันข้อมูลกัน
khunapple
Member
Member
Posts: 15
Joined: Fri Nov 18, 2011 7:17 pm

Re: TRAINING RECORD

#35

Post by khunapple »

ผู้รู้ทุกท่านทำไม REPORT ถึงไม่ขึ้นอีกค่ะ งง
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: TRAINING RECORD

#36

Post by snasui »

ที่ B20 เป็นสูตร Array การกดแป้นให้รับสูตรจำเป็นต้องกด 3 แป้น คือ กดแป้น Ctrl+Shift ค้างไว้แล้วตามด้วย Enter หากกดแป้นถูกต้องจะเห็นเครื่องหมายปีกกาคร่อมสูตร ปีกกานี้จะคีย์เข้าไปเองไม่ได้ครับ กรณีมีการเปลี่ยนแปลงแก้ไขก็จะต้องกด 3 แป้นให้รับสูตรเสมออีกเช่นกัน ซึ่งในไฟล์ที่ส่งมาเป็นการกดแป้นให้รับด้วยการ Enter ธรรมดาเท่านั้น จึงทำให้ไม่ได้ผลลัพธ์ตามต้องการ :P
khunapple
Member
Member
Posts: 15
Joined: Fri Nov 18, 2011 7:17 pm

Re: TRAINING RECORD

#37

Post by khunapple »

COPY ไม่ไป ทำไงค่ะ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: TRAINING RECORD

#38

Post by bank9597 »

COPY ไม่ไป ทำไงค่ะ
อะไรคือ Copy ไม่ไป อธิบายเพิ่มหน่อยได้ไหมหนอ

ลองดูตามไฟล์แนบครับ
อย่าลืมกด Ctrl+Shift+Enter เวลาใส่แล้ว ตามที่อาจารย์ได้กล่าวไว้
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
Post Reply