Page 1 of 1

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

Posted: Wed Feb 22, 2017 8:33 pm
by cokezaha
คือต้องการดึงข้อมูลจาก Sheet1 โดยการอ้างอิงหลายเงื่อนไข ดังไฟล์ที่แนบมาครับ

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

Posted: Wed Feb 22, 2017 9:54 pm
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 ไปทางขวาและล่างครับ

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

Posted: Wed Mar 01, 2017 10:34 am
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

ขอบคุณครับ

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

Posted: Wed Mar 01, 2017 4:35 pm
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 >> คัดลอกลงล่างครับ

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

Posted: Wed Mar 01, 2017 4:36 pm
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 คัดลอกลงล่าง

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

Posted: Thu Mar 02, 2017 2:12 pm
by cokezaha
ขอขอบคุณ คุณ DhitiBank และคุณ puriwutpokin เป็นอย่างสูงครับ ที่ได้ให้ความรู้ในเรื่องการใช้โปรแกรม Excel

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

ผมทำงานคุณ DhitiBank ถ้าผมจะไม่ใช้โชว์ #N/A ต้องทำยังไงครับ ไม่เข้าใจฟังชั่น ISNA ช่วยอธิบายให้กระจ่างที่ครับ

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

Posted: Thu Mar 02, 2017 4:14 pm
by น้องนะห์
รบกวนสอบถามการดึงข้อมูลโทรศัพท์ออกจากข้อความค่ะ
#ตัวอย่างตามรายละเอียดที่แนบมาค่ะ
"7-9 ถ.ประสิทธิสงคราม ต.บ้านเหนือ อ.เมืองกาญจนบุรี จ.กาญจนบุรี 71000
โทรศัพท์ 0899144355"

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

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

วิธีการตั้งและตอบกระทู้ อ่านจากข้อ 4 ของหัวข้อโปรดทราบด้านบนครับ :roll:

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

Posted: Thu Mar 02, 2017 11:51 pm
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)

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