: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

เกี่ยวกับการใช้ Match

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
cokezaha
Member
Member
Posts: 19
Joined: Wed Jul 25, 2012 12:38 am

เกี่ยวกับการใช้ Match

#1

Post by cokezaha »

คือต้องการดึงข้อมูลจาก Sheet1 โดยการอ้างอิงหลายเงื่อนไข ดังไฟล์ที่แนบมาครับ
You do not have the required permissions to view the files attached to this post.
User avatar
puriwutpokin
Guru
Guru
Posts: 3792
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: เกี่ยวกับการใช้ Match

#2

Post by puriwutpokin »

เป็นเวอร์ชั่น2003ใช่ไหมครับจะยาวหน่อยครับ ที่B5=IF(ISNA(MATCH(1,IF(Sheet1!$A$2:$A$37=$B$2,IF(Sheet1!$C$2:$C$37=$A5,1)),0)),"",INDEX(Sheet1!D$2:D$37,MATCH(1,IF(Sheet1!$A$2:$A$37=$B$2,IF(Sheet1!$C$2:$C$37=$A5,1)),0))) ใส่สูตรแล้ว กด Shift + Ctrl แล้ว Enter copy ไปทางขวาและล่างครับ
:shock: :roll: :D
cokezaha
Member
Member
Posts: 19
Joined: Wed Jul 25, 2012 12:38 am

Re: เกี่ยวกับการใช้ Match

#3

Post by cokezaha »

ได้แล้วครับผม ขอบคุณมากครับ K.Puriwutpokin

เพิ่มเติมครับ มีปัญหาตรงที่ว่า พนักงานสแกนรายนิ้วมือซ้ำซ้อน เราต้องการเอาเฉพาะเวลาสแกนครั้งแรก กับครั้งสุดท้ายต้องทำไงครับ

01-02-2017 08:38:14 08:38:21 19:35:27 19:35:29 19:35:32
02-02-2017 10:05:06 10:05:09 10:05:12 10:05:14 10:06:47 10:06:49 10:06:52 20:51:54 20:51:56 20:51:59
03-02-2017 07:50:06 07:50:08 07:50:10 20:35:12 20:35:14 20:35:17

ขอบคุณครับ
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: เกี่ยวกับการใช้ Match

#4

Post by DhitiBank »

ลองแบบนี้ครับ

B5
=LOOKUP(2,1/(($B$2=Sheet1!$A$2:$A$37)*($A5=Sheet1!$C$2:$C$37)),Sheet1!$D$2:$D$37)
Enter >> คัดลอกลงล่าง

C5
=INDEX(Sheet1!$D$2:$S$37,LOOKUP(2,1/(($B$2=Sheet1!$A$2:$A$37)*($A5=Sheet1!$C$2:$C$37)),ROW(Sheet1!$A$2:$A$37)-ROW(Sheet1!$A$2)+1),COUNTA(INDEX(Sheet1!$D$2:$S$37,LOOKUP(2,1/(($B$2=Sheet1!$A$2:$A$37)*($A5=Sheet1!$C$2:$C$37)),ROW(Sheet1!$A$2:$A$37)-ROW(Sheet1!$A$2)+1),0)))
Enter >> คัดลอกลงล่างครับ
User avatar
puriwutpokin
Guru
Guru
Posts: 3792
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: เกี่ยวกับการใช้ Match

#5

Post by puriwutpokin »

ถ้าเป็นชีท Sheet1 ตารางมีวันที่ซ้ำกัน แล้วมีเวลาเข้าออกหลายครั้ง ก็ลองแบบ DhitiBank แต่ปรับนิดหน่อยครับที่
ฺB5=IF(ISNA(MATCH(1,IF(Sheet1!$A$2:$A$37=$B$2,IF(Sheet1!$C$2:$C$37=$A5,1)),0)),"",INDEX(Sheet1!D$2:D$37,MATCH(1,IF(Sheet1!$A$2:$A$37=$B$2,IF(Sheet1!$C$2:$C$37=$A5,1)),0))) Shift+Ctrl+Enter คัดลอกลงล่าง
C5=IF(ISNA(MATCH(1,IF(Sheet1!$A$2:$A$37=$B$2,IF(Sheet1!$C$2:$C$37=$A5,1)),0)),"",LOOKUP(2,1/(($B$2=Sheet1!$A$2:$A$37)*($A5=Sheet1!$C$2:$C$37)),Sheet1!$E$2:$E$37)) Shift+Ctrl+Enter คัดลอกลงล่าง
:shock: :roll: :D
cokezaha
Member
Member
Posts: 19
Joined: Wed Jul 25, 2012 12:38 am

Re: เกี่ยวกับการใช้ Match

#6

Post by cokezaha »

ขอขอบคุณ คุณ DhitiBank และคุณ puriwutpokin เป็นอย่างสูงครับ ที่ได้ให้ความรู้ในเรื่องการใช้โปรแกรม Excel

ผลลัพท์ออกมาตรงกับความต้องการเป็นอย่างมาก

ผมทำงานคุณ DhitiBank ถ้าผมจะไม่ใช้โชว์ #N/A ต้องทำยังไงครับ ไม่เข้าใจฟังชั่น ISNA ช่วยอธิบายให้กระจ่างที่ครับ
น้องนะห์
Member
Member
Posts: 36
Joined: Thu Mar 02, 2017 4:11 pm

Re: เกี่ยวกับการใช้ Match

#7

Post by น้องนะห์ »

รบกวนสอบถามการดึงข้อมูลโทรศัพท์ออกจากข้อความค่ะ
#ตัวอย่างตามรายละเอียดที่แนบมาค่ะ
"7-9 ถ.ประสิทธิสงคราม ต.บ้านเหนือ อ.เมืองกาญจนบุรี จ.กาญจนบุรี 71000
โทรศัพท์ 0899144355"
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: เกี่ยวกับการใช้ Match

#8

Post by snasui »

น้องนะห์ wrote:รบกวนสอบถามการดึงข้อมูลโทรศัพท์ออกจากข้อความค่ะ
#ตัวอย่างตามรายละเอียดที่แนบมาค่ะ
"7-9 ถ.ประสิทธิสงคราม ต.บ้านเหนือ อ.เมืองกาญจนบุรี จ.กาญจนบุรี 71000
โทรศัพท์ 0899144355"
:D กรณีเป็นคำถามที่ไม่เกี่ยวกับกระทู้นี้ให้ตั้งกระทู้ใหม่ครับ

วิธีการตั้งและตอบกระทู้ อ่านจากข้อ 4 ของหัวข้อโปรดทราบด้านบนครับ :roll:
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: เกี่ยวกับการใช้ Match

#9

Post by DhitiBank »

cokezaha wrote:ถ้าผมจะไม่ใช้โชว์ #N/A ต้องทำยังไงครับ ไม่เข้าใจฟังชั่น ISNA ช่วยอธิบายให้กระจ่างที่ครับ
ฟังก์ชั่น ISNA(...) ไว้ใช้ตรวจสอบสิ่งที่อยู่วงเล็บ (ในวงเล็บอาจเป็นสูตร เซลล์อ้างอิง หรือค่าใดๆ) ว่าเป็นค่าผิดพลาด #N/A หรือไม่ครับ หากเป็นก็จะคืนค่าเป็น TRUE ในกรณีนี้ เมื่อสูตร Lookup หาคนชื่อนั้นในวันนั้นไม่เจอ ก็จะคืนค่าเป็น #N/A

เพื่อเป็นการทดสอบ ให้ลองคีย์
A1 คีย์ =NA()
B1 คีย์ =ISNA(A1) คำตอบคือ TRUE ครับ

สำหรับสูตรด้านบนลองปรับเป็นแบบนี้ครับ

B5
=IF(ISNA(สูตรเดิมใน B5),"ไม่เจอ",สูตรเดิมใน B5)

C5
=IF(B5="ไม่เจอ",B5,สูตรเดิมใน C5)

ส่วนสีน้ำเงินคือส่วนที่เพิ่มเข้ามาครับ
Post Reply