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

การนับรหัส รายการ และวันที่ ตามลำดับ

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

การนับรหัส รายการ และวันที่ ตามลำดับ

#1

Post by Totem »

:D เรียนอาจาย์และเพื่อนสมาชิก
การนับรหัส รายการ และวันที่ ให้ได้ตามต้องการ
วิธีนับ
1.นับรหัส D569 ที่ซ้ำในคอลัมน์ C

2.ถ้าพบรหัส D569 ซ้ำ รายการซ้ำและวันที่ซ้ำ ให้นับเป็น 1 รายการ
เช่น รหัส D569 ซ้ำ รายการ b ซ้ำ วันที่ 2/4/62 ซ้ำ นับเป็น 1 รายการ

3.ถ้าพบรหัส D569 ซ้ำ รายการซ้ำและวันที่ไม่ซ้ำ ให้นับเป็นแต่ละรายการ
เช่น รหัส D569 ซ้ำ รายการ ก ซ้ำ วันที่ 6/4/62 ไม่ซ้ำ นับเป็น 2 รายการ

4.ถ้าพบรหัส D569 ซ้ำ รายการไม่ซ้ำและวันที่ไม่ซ้ำ ให้นับเป็น 1 รายการ
เช่น รหัส D569 ซ้ำ รายการ o ไม่ซ้ำ และวันที่ 12/4/62 ไม่ซ้ำ นับเป็น 1 รายการ

การพิจารณาเริ่มจาก รหัส รายการ และวันที่ ตามลำดับ

รหัสในคอลัมน์ G เราเป็นคนกำหนดเลือกขึ้นเอง

แสดงผลลัพธ์ ที่คอลัมน์ H เป็นต้น

ขอบคุณครับ
count.xlsx
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31191
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: การนับรหัส รายการ และวันที่ ตามลำดับ

#2

Post by snasui »

:D ตัวอย่างสูตรครับ

เซลล์ H2 คีย์

=SUM(IF(FREQUENCY(IF(ISNUMBER(SEARCH(G2,$C$2:$C$15)),MATCH($B$2:$B$15,$B$2:$B$15,0)),ROW($B$2:$B$15)-ROW($B$2)+1),1))

Ctrl+Shift+Enter > Copy ลงด้านล่าง
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: การนับรหัส รายการ และวันที่ ตามลำดับ

#3

Post by Totem »

snasui wrote: Mon Apr 29, 2019 5:43 pm :D ตัวอย่างสูตรครับ

เซลล์ H2 คีย์

=SUM(IF(FREQUENCY(IF(ISNUMBER(SEARCH(G2,$C$2:$C$15)),MATCH($B$2:$B$15,$B$2:$B$15,0)),ROW($B$2:$B$15)-ROW($B$2)+1),1))

Ctrl+Shift+Enter > Copy ลงด้านล่าง
:D จากสูตรที่อาจารย์ให้มา ยังไม่ได้ตามที่ต้องการครับ

ขออธิบายเพิ่มเติม ดังนี้
D569 นับได้จาก
1.รายการ b วันที่ 2/4/62 แถวที่ 4 และ
รายการ b วันที่ 2/4/62 แถวที่ 13 นับได้เท่ากับ 1
เพราะว่ารายการ b ซ้ำรายการและอยู่ในวันเดียวกัน จึงนับเป็น 1 รายการ
2. รายการ r วันที่ 2/4/62 แถวที่ 5 ไม่มีซ้ำทั้งรายการ นับได้เท่ากับ 1
3. รายการ o วันที่ 12/4/62 แถวที่ 7 ไม่มีซ้ำทั้งรายการ นับได้เท่ากับ 1
4. รายการ ก วันที่ 5/4/62 แถวที่ 8
มีซ้ำกับรายการ ก วันที่ 6/4/62 แถวที่ 9 นับได้เท่ากับ 2
เพราะว่าเป็นคนละวัน แม้ว่าซ้ำรายการกันก็ให้นับแยกกัน จึงนับเป็น 2 รายการ
5. รายการ a วันที่ 6/4/62 แถวที่ 12 ไม่มีซ้ำทั้งรายการ นับได้เท่ากับ 1
6. รายการ ข วันที่ 12/4/62 แถวที่ 15 ไม่มีซ้ำทั้งรายการ นับได้เท่ากับ 1
รวมทั้งหมดนับได้ 7 รายการ อยู่ในคอลัมน์ I

ขอบคุณครับ
count เพิ่มเติม.xlsx
You do not have the required permissions to view the files attached to this post.
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: การนับรหัส รายการ และวันที่ ตามลำดับ

#4

Post by puriwutpokin »

ปรับนิดหนึ่งครับ ที่ H2=SUM(IF(FREQUENCY(IF(ISNUMBER(SEARCH(G2,$C$2:$C$15)),MATCH($A$2:$A$15&$B$2:$B$15,$A$2:$A$15&$B$2:$B$15,0)),ROW($B$2:$B$15)-ROW($B$2)+1),1)) Ctrl+Shift+Enter > Copy ลงด้านล่าง
:shock: :roll: :D
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: การนับรหัส รายการ และวันที่ ตามลำดับ

#5

Post by Totem »

puriwutpokin wrote: Tue Apr 30, 2019 11:10 am ปรับนิดหนึ่งครับ ที่ H2=SUM(IF(FREQUENCY(IF(ISNUMBER(SEARCH(G2,$C$2:$C$15)),MATCH($A$2:$A$15&$B$2:$B$15,$A$2:$A$15&$B$2:$B$15,0)),ROW($B$2:$B$15)-ROW($B$2)+1),1)) Ctrl+Shift+Enter > Copy ลงด้านล่าง
:D ขอบคุณครับ ได้ตามต้องการครับ
Kullaphorn Won
Member
Member
Posts: 10
Joined: Thu May 02, 2019 2:43 pm

Re: การนับรหัส รายการ และวันที่ ตามลำดับ

#6

Post by Kullaphorn Won »

ขออนุญาติสอบถามเพิ่มเติมค่ะ จะนำสูตรตามตัวอย่างข้างต้นไปปรับใช้แต่เกิด #VALUE! ที่ H2 สามารถแก้ไขได้อย่างไรบ้างคะ =SUM(IF(FREQUENCY(IF(ISNUMBER(SEARCH(G2,$C$2:$C$15)),MATCH($A$2:$A$15&$B$2:$B$15,$A$2:$A$15&$B$2:$B$15,0)),ROW($B$2:$B$15)-ROW($B$2)+1),1))

ใช้ได้แล้วค่ะ ลองกด Ctrl+Shift+Enter ดู

ขอบคุณมากค่ะ :D
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: การนับรหัส รายการ และวันที่ ตามลำดับ

#7

Post by Totem »

:D เรียนอาจารย์และเพื่อนสมาชิกทุกท่าน
สูตร =SUM(IF(FREQUENCY(IF(ISNUMBER(SEARCH(G2,$C$2:$C$15)),MATCH($A$2:$A$15&$B$2:$B$15,$A$2:$A$15&$B$2:$B$15,0)),ROW($B$2:$B$15)-ROW($B$2)+1),1))
เมื่อมีข้อมูลที่ใช้สูตรนี้ จำนวนแถวมากขึ้น ทำให้สูตรคำนวนช้าลงมากๆใช้เวลานานในการประมวลผล พอจะมีแนวทางอื่นๆแก้ไขได้ไหมครับ

ขอบคุณครับ
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: การนับรหัส รายการ และวันที่ ตามลำดับ

#8

Post by puriwutpokin »

แจ้งเวอร์ชั่น Office มาด้วยครับตามนี้ https://snasui.com/viewtopic.php?f=6&t=17480
:shock: :roll: :D
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: การนับรหัส รายการ และวันที่ ตามลำดับ

#9

Post by Totem »

puriwutpokin wrote: Wed Dec 30, 2020 11:12 am แจ้งเวอร์ชั่น Office มาด้วยครับตามนี้ https://snasui.com/viewtopic.php?f=6&t=17480
:D สูตรไม่ปัญหาครับ แต่ว่าเมื่อข้อมูลมีปริมาณมาก การประมวลผลโดยสูตรจึงใช้เวลานาน เช่น ข้อมูลมีประมาณ เกินหนึ่งหมื่นแถว เป็นต้น จึงคิดว่ามีทางอื่นที่แก้ปัญหานี้ได้ไหม
ใช้ office 365
ขอบคุณครับ
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: การนับรหัส รายการ และวันที่ ตามลำดับ

#10

Post by puriwutpokin »

ปรับเป็น สำหรับ 365 ดูว่าจะดีขึ้นไหมครับ
=COUNTA(UNIQUE(FILTER(A$2:A$15&B$2:B$15,ISNUMBER(SEARCH(G2,C$2:C$15)),)))
:shock: :roll: :D
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: การนับรหัส รายการ และวันที่ ตามลำดับ

#11

Post by Totem »

puriwutpokin wrote: Wed Dec 30, 2020 2:19 pm ปรับเป็น สำหรับ 365 ดูว่าจะดีขึ้นไหมครับ
=COUNTA(UNIQUE(FILTER(A$2:A$15&B$2:B$15,ISNUMBER(SEARCH(G2,C$2:C$15)),)))
:D สูตรใช้ได้ตามต้องการ ดีขึ้นมากมายก่ายกองเลยครับ
ขอบคุณครับ
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: การนับรหัส รายการ และวันที่ ตามลำดับ

#12

Post by Totem »

:D สูตรใหม่
การนับในช่อง J2 ได้ 1 ซึ่งที่ถูกต้อง คือ 0 เพราะ รหัส A569 ไม่มีในข้อมูลใน column C ซึ่งต้องนับไปได้ 0 ตามสูตรเดิม เหมือนช่อง H2 ครับ
ขอบคุณครับ

count UNIQUE FILTER.xlsx
You do not have the required permissions to view the files attached to this post.
User avatar
puriwutpokin
Guru
Guru
Posts: 3801
Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365

Re: การนับรหัส รายการ และวันที่ ตามลำดับ

#13

Post by puriwutpokin »

J2=COUNT(--(UNIQUE(FILTER(A$2:A$15&B$2:B$15,ISNUMBER(SEARCH(G2,C$2:C$15)),))>0))
:shock: :roll: :D
User avatar
Bo_ry
Gold
Gold
Posts: 1245
Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:

Re: การนับรหัส รายการ และวันที่ ตามลำดับ

#14

Post by Bo_ry »

J2
=COUNT(UNIQUE(FILTER(A$2:B$15,ISNUMBER(FIND(G2,C$2:C$15)))))
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: การนับรหัส รายการ และวันที่ ตามลำดับ

#15

Post by Totem »

puriwutpokin wrote: Wed Dec 30, 2020 7:21 pm J2=COUNT(--(UNIQUE(FILTER(A$2:A$15&B$2:B$15,ISNUMBER(SEARCH(G2,C$2:C$15)),))>0))

:D ได้ตามต้องการครับ ขอบคุณครับ
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: การนับรหัส รายการ และวันที่ ตามลำดับ

#16

Post by Totem »

Bo_ry wrote: Wed Dec 30, 2020 8:27 pm J2
=COUNT(UNIQUE(FILTER(A$2:B$15,ISNUMBER(FIND(G2,C$2:C$15)))))
:D จากสูตรนำไปใช้จริง การนับจะคูณ 2 หรือเพิ่มไปอีก 1 เท่า ครับ เช่น

สูตรคุณ puriwutpokin ถ้านับได้ที่ช่อง J2 เป็น 1 (ถูกต้อง) แต่
สูตรคุณ Bo_ry จะนับได้ที่ช่อง J2 เป็น 2 ครับ กล่าวคือเพิ่มได้อีก 1 เท่าครับ
หากดูก็น่าจะเท่ากันนะครับ แต่พอไปใช้จริงกับนับได้เหมือนกันครับ
อีกอย่างคือผมนำไปประยุกต์ใช้ในลักษณะอื่นเช่น ถ้าใน column G ผมใส่รหัสเป็น A569* , M7501* , Z010* , B24* , A419* สูตรคุณ Bo_ry จะมีค่านับเป็น 0 ทุกช่องครับ
แต่ สูตรคุณ puriwutpokin จะนับได้ปกติที่ช่อง J2 เป็น 1 (ถูกต้อง) ครับ

ขอบคุณทั้ง 2 ท่านมากครับ
User avatar
Bo_ry
Gold
Gold
Posts: 1245
Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:

Re: การนับรหัส รายการ และวันที่ ตามลำดับ

#17

Post by Bo_ry »

J2 ได้ 2 ยังไง

ส่วนถ้าจะใช้กับ wildcard ก็เปลี่ยน FIND เป็น Search
=COUNT(UNIQUE(FILTER(A$2:B$15,ISNUMBER(SEARCH(G2,C$2:C$15)))))
You do not have the required permissions to view the files attached to this post.
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: การนับรหัส รายการ และวันที่ ตามลำดับ

#18

Post by Totem »

:D เปลี่ยน FIND เป็น Search ถูกต้อง

ผมเข้าใจว่าไม่เท่ากันเพราะ ถ้า column A ประยุกต์ไปใช้เป็นตัวเลข จะทำให้สูตรคุณ สูตรคุณ Bo_ry ไม่เท่ากับ
สูตรคุณ puriwutpokin
ถ้า column A เป็นชื่อตัวอักษรจะได้เท่ากัน
You do not have the required permissions to view the files attached to this post.
User avatar
Bo_ry
Gold
Gold
Posts: 1245
Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:

Re: การนับรหัส รายการ และวันที่ ตามลำดับ

#19

Post by Bo_ry »

เพราะ Count นับตัวเลขจาก 2 column ถ้าเป็นตัวเลขทั้ง 2 column ก็จะนับได้ 2 เท่า
แต่ Counta นับทั้ง Error Number Text,

อันนี้นับ column แรก
=COUNT(INDEX(UNIQUE(FILTER(A$2:B$100,ISNUMBER(SEARCH(E2,$C$2:$C$100)))),,1))
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: การนับรหัส รายการ และวันที่ ตามลำดับ

#20

Post by Totem »

Bo_ry wrote: Tue Jan 05, 2021 5:54 pm เพราะ Count นับตัวเลขจาก 2 column ถ้าเป็นตัวเลขทั้ง 2 column ก็จะนับได้ 2 เท่า
แต่ Counta นับทั้ง Error Number Text,

อันนี้นับ column แรก
=COUNT(INDEX(UNIQUE(FILTER(A$2:B$100,ISNUMBER(SEARCH(E2,$C$2:$C$100)))),,1))
:D ได้ตามต้องการครับ ขอบคุณครับ
Post Reply