Page 1 of 2
การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Mon Apr 29, 2019 3:01 pm
by Totem

เรียนอาจาย์และเพื่อนสมาชิก
การนับรหัส รายการ และวันที่ ให้ได้ตามต้องการ
วิธีนับ
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
Re: การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Mon Apr 29, 2019 5:43 pm
by snasui

ตัวอย่างสูตรครับ
เซลล์ 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 ลงด้านล่าง
Re: การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Tue Apr 30, 2019 9:53 am
by Totem
snasui wrote: Mon Apr 29, 2019 5:43 pm

ตัวอย่างสูตรครับ
เซลล์ 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 ลงด้านล่าง

จากสูตรที่อาจารย์ให้มา ยังไม่ได้ตามที่ต้องการครับ
ขออธิบายเพิ่มเติม ดังนี้
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
Re: การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Tue Apr 30, 2019 11:10 am
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 ลงด้านล่าง
Re: การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Wed May 01, 2019 8:42 am
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 ลงด้านล่าง

ขอบคุณครับ ได้ตามต้องการครับ
Re: การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Thu May 02, 2019 3:25 pm
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 ดู
ขอบคุณมากค่ะ

Re: การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Wed Dec 30, 2020 10:22 am
by Totem

เรียนอาจารย์และเพื่อนสมาชิกทุกท่าน
สูตร =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))
เมื่อมีข้อมูลที่ใช้สูตรนี้ จำนวนแถวมากขึ้น ทำให้สูตรคำนวนช้าลงมากๆใช้เวลานานในการประมวลผล พอจะมีแนวทางอื่นๆแก้ไขได้ไหมครับ
ขอบคุณครับ
Re: การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Wed Dec 30, 2020 11:12 am
by puriwutpokin
Re: การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Wed Dec 30, 2020 1:40 pm
by Totem

สูตรไม่ปัญหาครับ แต่ว่าเมื่อข้อมูลมีปริมาณมาก การประมวลผลโดยสูตรจึงใช้เวลานาน เช่น ข้อมูลมีประมาณ เกินหนึ่งหมื่นแถว เป็นต้น จึงคิดว่ามีทางอื่นที่แก้ปัญหานี้ได้ไหม
ใช้ office 365
ขอบคุณครับ
Re: การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Wed Dec 30, 2020 2:19 pm
by puriwutpokin
ปรับเป็น สำหรับ 365 ดูว่าจะดีขึ้นไหมครับ
=COUNTA(UNIQUE(FILTER(A$2:A$15&B$2:B$15,ISNUMBER(SEARCH(G2,C$2:C$15)),)))
Re: การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Wed Dec 30, 2020 5:08 pm
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)),)))

สูตรใช้ได้ตามต้องการ ดีขึ้นมากมายก่ายกองเลยครับ
ขอบคุณครับ
Re: การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Wed Dec 30, 2020 6:18 pm
by Totem

สูตรใหม่
การนับในช่อง J2 ได้ 1 ซึ่งที่ถูกต้อง คือ 0 เพราะ รหัส A569 ไม่มีในข้อมูลใน column C ซึ่งต้องนับไปได้ 0 ตามสูตรเดิม เหมือนช่อง H2 ครับ
ขอบคุณครับ
count UNIQUE FILTER.xlsx
Re: การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Wed Dec 30, 2020 7:21 pm
by puriwutpokin
J2=COUNT(--(UNIQUE(FILTER(A$2:A$15&B$2:B$15,ISNUMBER(SEARCH(G2,C$2:C$15)),))>0))
Re: การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Wed Dec 30, 2020 8:27 pm
by Bo_ry
J2
=COUNT(UNIQUE(FILTER(A$2:B$15,ISNUMBER(FIND(G2,C$2:C$15)))))
Re: การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Mon Jan 04, 2021 11:45 am
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))

ได้ตามต้องการครับ ขอบคุณครับ
Re: การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Mon Jan 04, 2021 12:01 pm
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)))))

จากสูตรนำไปใช้จริง การนับจะคูณ 2 หรือเพิ่มไปอีก 1 เท่า ครับ เช่น
สูตรคุณ puriwutpokin ถ้านับได้ที่ช่อง J2 เป็น 1 (ถูกต้อง) แต่
สูตรคุณ Bo_ry จะนับได้ที่ช่อง J2 เป็น 2 ครับ กล่าวคือเพิ่มได้อีก 1 เท่าครับ
หากดูก็น่าจะเท่ากันนะครับ แต่พอไปใช้จริงกับนับได้เหมือนกันครับ
อีกอย่างคือผมนำไปประยุกต์ใช้ในลักษณะอื่นเช่น ถ้าใน column G ผมใส่รหัสเป็น A569* , M7501* , Z010* , B24* , A419* สูตรคุณ Bo_ry จะมีค่านับเป็น 0 ทุกช่องครับ
แต่ สูตรคุณ puriwutpokin จะนับได้ปกติที่ช่อง J2 เป็น 1 (ถูกต้อง) ครับ
ขอบคุณทั้ง 2 ท่านมากครับ
Re: การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Mon Jan 04, 2021 6:32 pm
by Bo_ry
J2 ได้ 2 ยังไง
ส่วนถ้าจะใช้กับ wildcard ก็เปลี่ยน FIND เป็น Search
=COUNT(UNIQUE(FILTER(A$2:B$15,ISNUMBER(SEARCH(G2,C$2:C$15)))))
Re: การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Tue Jan 05, 2021 4:32 pm
by Totem

เปลี่ยน FIND เป็น Search ถูกต้อง
ผมเข้าใจว่าไม่เท่ากันเพราะ ถ้า column A ประยุกต์ไปใช้เป็นตัวเลข จะทำให้สูตรคุณ สูตรคุณ Bo_ry ไม่เท่ากับ
สูตรคุณ puriwutpokin
ถ้า column A เป็นชื่อตัวอักษรจะได้เท่ากัน
Re: การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Tue Jan 05, 2021 5:54 pm
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))
Re: การนับรหัส รายการ และวันที่ ตามลำดับ
Posted: Tue Jan 05, 2021 6:00 pm
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))

ได้ตามต้องการครับ ขอบคุณครับ