: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

มีปัญหามาปรึกษาครับ ถ้าจะค้นหาแบบมีเงื่อนไขใน vlookup จะกำหน

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
kruprince
Member
Member
Posts: 7
Joined: Mon Jun 03, 2013 10:21 am

มีปัญหามาปรึกษาครับ ถ้าจะค้นหาแบบมีเงื่อนไขใน vlookup จะกำหน

#1

Post by kruprince »

:oops: มีปัญหามาปรึกษาครับ ถ้าจะค้นหาแบบมีเงื่อนไขใน vlookup จะกำหนดยังไง
ผมต้องเอาค่า น้ำหนัก และ index ไปค้นหาน้ำหนักตามอายุ
ส่วนสูง และ index ไปค้นหา ส่วนสูงตามอายุ ครับ




ต้องนำค่า น้ำหนัก และ index ในแต่ละคนไปค้นหาน้ำหนักตามอายุ เช่นอย่างคนแรกก็จะไปค้นหาที่ m13.04 จะได้ค่าน้ำหนักตามเกณฑ์ในช่องน้ำหนักตามเกณฑ์อายุ
You do not have the required permissions to view the files attached to this post.
Last edited by kruprince on Mon Jun 03, 2013 12:01 pm, edited 1 time in total.
nattasiray
Bronze
Bronze
Posts: 284
Joined: Thu Feb 11, 2010 8:32 pm
Contact:

Re: มีปัญหามาปรึกษาครับ ถ้าจะค้นหาแบบมีเงื่อนไขใน vlookup จะ

#2

Post by nattasiray »

ขอความร่วมมือแสดงตัวอย่างคำตอบในแฟ้มด้วยครับว่าจะเป็นอย่างไร อย่าแนบแต่แฟ้มเพียงอย่างเดียว

เขียนคำถามในแฟ้มด้วยครับ

เห็นตารางของคุณแล้ว ต้องแก้ไขหลายจุดครับ

จุดแรกคือ วันเดือนปีเกิดครับ

คุณป้อนวันเดือนปีโดยใช้ปีพุุทธศักราช ซึ่งไม่ถูกต้อง ทำให้อายุของข้อมูลนักเรียนคนแรกมีค่าเป็น 13 ปี ทั้ง ๆ ที่มีคำนำหน้าเป็น นาย ครับ มันขัดแย้งกัน

การกรอกวันเดือนปี ต้องใช้ปีคริสตศักราชเท่านั้น

การแก้ไขกระทำดังนี้
1 คลิกเซลล์ F5
2 กดแป้น Ctrl+Shift+แป้นเลื่อนเคอร์เซอร์ลง
3 กดแป้น Ctrl+H
4 ช่อง Find What พิมพ์ 2543
5 ช่อง Replace with พิมพ์ b2543
6 คลิกปุ่ม Replace All
กระทำซ้ำข้อ 4 - 6 ไปจนกว่าจะหมด

เวลากรอกวันเดือนปี ให้กรอกด้วยปีคริสตศักราช หรือ กรอกในรูป d/m/bbbbb เช่น 5/2/b2554 เพื่อให้ไมโครซอฟต์เอ็กเซลแปลงปีพุทธศักราชไปเป็นปีคริสตศักราชให้ครับ

เห็นคุณมีการใช้สูตร TODAY ซ้ำกันหลายจุด รวมถึงเซลล์ F2 ด้วย ดังนัั้น แก้ไขสูตรในเซลล์ที่มีสูตร Today ไปดึงค่าจากเซลล์ F2 มาใช้งานครับ เพื่อเพิ่มความเร็วในการคำนวณ

จุดที่ 2 คือหัวตาราง
หัวตารางมีการเมิร์จเซลล์ (ผสานเซลล์) ทำให้ไม่สามารถใช้คำสั่ง Filter ได้ ดังนั้นยกเลิกการเมิร์จเซลล์ก่อน แล้ว แทรกบรรทัดเปล่า จากนั้นจึงซ่อน แล้วใช้คำสั่ง AutoFilter

จุดที่ 3 ข้อมูลชื่อ นามสกุล ปะปนกัน
ควรแยกชื่อ นามสกุล ออกเป็นฟิลด์ คำนำหน้านาม ชื่อ นามสกุล เพื่อความสะดวกต่อการแก้ไข และเพื่อความสะดวกต่อการจำแนกเพศครับ
ที่ฟิลด์ คำนำหน้านามให้ใช้ Data Validation แบบ ลิสต์ เพื่อใช้สำหรับคลิกเลือกและกำหนดค่าเองครับ

ขอบคุณที่ให้ความร่วมมือ
Last edited by nattasiray on Mon Jun 03, 2013 12:29 pm, edited 2 times in total.
ณัฐศิระ เยาวสุต
(N. Yauvasuta)
kruprince
Member
Member
Posts: 7
Joined: Mon Jun 03, 2013 10:21 am

Re: มีปัญหามาปรึกษาครับ ถ้าจะค้นหาแบบมีเงื่อนไขใน vlookup จะ

#3

Post by kruprince »

แก้ไขไฟล์ต้นฉบับในแฟ้มแล้วนะครับ
kruprince
Member
Member
Posts: 7
Joined: Mon Jun 03, 2013 10:21 am

Re: มีปัญหามาปรึกษาครับ ถ้าจะค้นหาแบบมีเงื่อนไขใน vlookup จะ

#4

Post by kruprince »

nattasiray wrote:ขอความร่วมมือแสดงตัวอย่างคำตอบในแฟ้มด้วยครับว่าจะเป็นอย่างไร อย่าแนบแต่แฟ้มเพียงอย่างเดียว

เขียนคำถามในแฟ้มด้วยครับ

ขอบคุณที่ให้ความร่วมมือ
ครับขอโทษครับ

อย่างข้อมูลคนที่ 1 ต้องนำค่า น้ำหนัก และ index ไปค้นหาน้ำหนักตามอายุ เช่นอย่างคนแรกก็จะไปค้นหาที่ m13.04 จะได้ค่าน้ำหนักตามเกณฑ์ในช่องน้ำหนักตามเกณฑ์อายุอะครับ
You do not have the required permissions to view the files attached to this post.
nattasiray
Bronze
Bronze
Posts: 284
Joined: Thu Feb 11, 2010 8:32 pm
Contact:

Re: มีปัญหามาปรึกษาครับ ถ้าจะค้นหาแบบมีเงื่อนไขใน vlookup จะ

#5

Post by nattasiray »

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

ในตารางแสดงผลลัพธ์ผมใช้ Conditional Formatting เพื่อเน้นผลลัพธ์ให้ตรงกับตารางข้อกำหนดผลลัพธ์ หากผลลัพธ์เปลี่ยน สีเซลล์ก็เปลี่ยนตามด้วย สะดวกต่อการตรวจสอบ

ตารางแปลผลลัพธ์ควรนำข้อมูลมาพิมพ์ให้ต่อเนื่องกัน ไม่ใช่แยกกัน มิฉะนั้นสูตรจะยุ่งยากกว่านี้

วันเดือนปีใช้ Data Validation ตรวจสอบว่าผู้ใช้กรอกวันเดือนปีโดยใช้ปีพุทธศักราชหรือไม่ ส่วนที่ฟิลด์ชื่อ นามสกุล ก็ใช้ Data Validation แบบลิสต์ เพื่อบังคับให้ผู้ใช้คลิกเลือกรายการคำนำหน้าแทนการพิมพ์เข้าไป

เคยใช้ Conditional Formatting หรือไม่ครับ ถ้าไม่เคย ต้องหัดใช้นะครับ

งานของคุณเป็นฐานข้อมูลบนไมโครซอฟต์เอ็กเซล ลองหาหนังสือจัดการฐานข้อมูลด้วยไมโครซอฟต์เอ็กเซล 2010 มาอ่านนะครับ
You do not have the required permissions to view the files attached to this post.
ณัฐศิระ เยาวสุต
(N. Yauvasuta)
nattasiray
Bronze
Bronze
Posts: 284
Joined: Thu Feb 11, 2010 8:32 pm
Contact:

Re: มีปัญหามาปรึกษาครับ ถ้าจะค้นหาแบบมีเงื่อนไขใน vlookup จะ

#6

Post by nattasiray »

ใช้ได้หรือไม่ครับแจ้งกลับมาด้วยครับ
ณัฐศิระ เยาวสุต
(N. Yauvasuta)
kruprince
Member
Member
Posts: 7
Joined: Mon Jun 03, 2013 10:21 am

Re: มีปัญหามาปรึกษาครับ ถ้าจะค้นหาแบบมีเงื่อนไขใน vlookup จะ

#7

Post by kruprince »

nattasiray wrote:ใช้ได้หรือไม่ครับแจ้งกลับมาด้วยครับ
ขอบคุณมากครับ เดี๋ยวลองเปิดดูก่อนนะครับ
kruprince
Member
Member
Posts: 7
Joined: Mon Jun 03, 2013 10:21 am

ใช้ได้ครับ ขอบพระคุณมากๆ แต่รบกวนสอบถามเพิ่มดังนี้

#8

Post by kruprince »

nattasiray wrote:ใช้ได้หรือไม่ครับแจ้งกลับมาด้วยครับ

ใช้ได้ครับ แต่ผมยังง งงอยู่อะครับ เกี่ยวกับความหมายสูตรที่ใช้
=IFERROR(OFFSET($W$4,MATCH($E5&"-"&TEXT($H5,"000.00")&"-"&TEXT($I5,"000.00"),$T$5:$T$374&TEXT($U$5:$U$374,"000.00")&TEXT($V$5:$V$374,"000.00"),1),0),"แปลผลไม่ได้")


มันมีความหมายว่ายังไงอะครับ ผมลองดัดแปลงแก้ไขในช่องส่วนสูงแล้วแต่มันแปลผลไม่ได้อะครับ ขอความกรุณาช่วยอธิบายหน่อยนะครับ อาจารย์
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31255
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: มีปัญหามาปรึกษาครับ ถ้าจะค้นหาแบบมีเงื่อนไขใน vlookup จะ

#9

Post by snasui »

:D จากสูตร

=IFERROR(OFFSET($W$4,MATCH($E5&"-"&TEXT($H5,"000.00")&"-"&TEXT($I5,"000.00"),$T$5:$T$374&TEXT($U$5:$U$374,"000.00")&TEXT($V$5:$V$374,"000.00"),1),0),"แปลผลไม่ได้")

แปลว่า ถ้า OFFSET($W$4,MATCH($E5&"-"&TEXT($H5,"000.00")&"-"&TEXT($I5,"000.00"),$T$5:$T$374&TEXT($U$5:$U$374,"000.00")&TEXT($V$5:$V$374,"000.00"),1),0) เป็นค่าผิดพลาดให้แสดงคำว่า แปลผลไม่ได้

ถ้าไม่ผิดพลาดให้แสดงผลลัพธ์ของ OFFSET($W$4,MATCH($E5&"-"&TEXT($H5,"000.00")&"-"&TEXT($I5,"000.00"),$T$5:$T$374&TEXT($U$5:$U$374,"000.00")&TEXT($V$5:$V$374,"000.00"),1),0)

จากสูตร

OFFSET($W$4,MATCH($E5&"-"&TEXT($H5,"000.00")&"-"&TEXT($I5,"000.00"),$T$5:$T$374&TEXT($U$5:$U$374,"000.00")&TEXT($V$5:$V$374,"000.00"),1),0)

แปลว่า จากตำแหน่ง $W$4 ให้ลงไปอีกกี่บรรทัดขึ้นอยู่กับผลลัพธ์ของ MATCH($E5&"-"&TEXT($H5,"000.00")&"-"&TEXT($I5,"000.00"),$T$5:$T$374&TEXT($U$5:$U$374,"000.00")&TEXT($V$5:$V$374,"000.00"),1) เช่นหากผลลัพธ์เป็น 3 ก็จะแปลว่าจาก $W$4 ให้ลงไป 3 บรรทัด ซึ่งก็คือ W7

จากสูตร

MATCH($E5&"-"&TEXT($H5,"000.00")&"-"&TEXT($I5,"000.00"),$T$5:$T$374&TEXT($U$5:$U$374,"000.00")&TEXT($V$5:$V$374,"000.00"),1)

แปลว่า ให้หาว่า $E5&"-"&TEXT($H5,"000.00")&"-"&TEXT($I5,"000.00") อยู่ในลำดับที่เท่าไรของ $T$5:$T$374&TEXT($U$5:$U$374,"000.00")&TEXT($V$5:$V$374,"000.00")

สูตรดังกล่าวเป็นสูตร Array ค่อนข้างยากต่อการทำความเข้าใจสำหรับมือใหม่ครับ
Post Reply