: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

นับรหัสรายการที่กำหนดไว้

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

นับรหัสรายการที่กำหนดไว้

#1

Post by Totem »

:D เรียนอาจารย์และเพื่อนสมาชิก
การนับรายการในคอลัมน์ tables รหัส sheet1 โดยให้นับ D569
ได้กำหนดในไฟล์ไว้ดังนี้
Queries
a
a_detail

1.ผลที่แสดงออกมา นับใน a ที่ถูกต้องคือ 9 ครับ ต้องปรับใน a_detail อย่างไรครับ

2.ถ้าหากให้นับ D569 และ E785 อยู่ในบรรทัดเดียวกันให้นับเป็น 1 ในที่นี้ นับใน a ที่ถูกต้องคือ 2

ตัวอย่าง ตำแหน่งของรหัสรายการในแต่ละแถวอาจจะสลับกันไปมาหรือในแต่ละแถวอาจมีรายการน้อยกว่าหรือมากกว่านี้ได้ครับ

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

Re: นับรหัสรายการที่กำหนดไว้

#2

Post by snasui »

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

Code: Select all

SELECT sheet1.[รหัส] AS รหัส
FROM sheet1
WHERE (((InStr(1,[รหัส],"D569"))>0) AND ((InStr(1,[รหัส],"E785"))>0))
GROUP BY sheet1.[รหัส];
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: นับรหัสรายการที่กำหนดไว้

#3

Post by Totem »

snasui wrote: Tue May 07, 2019 10:26 pm :D ตัวอย่าง Query ครับ

Code: Select all

SELECT sheet1.[รหัส] AS รหัส
FROM sheet1
WHERE (((InStr(1,[รหัส],"D569"))>0) AND ((InStr(1,[รหัส],"E785"))>0))
GROUP BY sheet1.[รหัส];
:D ปรับสูตรแล้วใช้ได้ครับ
แต่กรณี a_detail
SELECT sheet1.รหัส AS รหัส
FROM sheet1
WHERE (((InStr(1,[รหัส],"D569"))>0))
GROUP BY sheet1.รหัส;
เลือกรหัสรายการเดียว "D569"
ได้ผลลัพธ์
รหัส
A165, M7501, D569
A419, D569, J189
A419, E119, I639, D569, I10, E785
B24, A153, D569
D569
D569, E785, E110, I10
E031, Z240, Z271, D569

ซึ่งที่เข้าใจน่าจะเป็น
รหัส
A165, M7501, D569
A419, D569, J189
A419, E119, I639, D569, I10, E785
B24, A153, D569
D569
E031, Z240, Z271, D569
D569, E785, E110, I10
D569 หายไปครับ
และเมื่อ Query นับใน a
SELECT Count(a_detail.[รหัส]) AS Total
FROM a_detail
GROUP BY 1;
นับได้แค่ 2 ที่ต้องการคือ 8 ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30801
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: นับรหัสรายการที่กำหนดไว้

#4

Post by snasui »

:D อ่านแล้วไม่ค่อยกระจ่างในคำถามครับ

เพื่อความสะดวกต่อการสังเกตว่ามีการนับถูกต้องหรือไม่ สามารถเพิ่มคอลัมน์ของรหัสกับคอลัมน์ผลลัพธ์ของการนับเข้ามาใน Query ได้ตามด้านล่างครับ

Code: Select all

SELECT sheet1.[รหัส] As รหัส, Count(sheet1.[รหัส]) AS จำนวน
FROM sheet1
WHERE (InStr([รหัส],"D569")>0)
Group By รหัส
กรณีต้องการเฉพาะผลลัพธ์ว่านับแล้วได้เท่าไร ใช้ Query ตามด้านล่างครับ

Code: Select all

Selete Count(sheet1.[รหัส] As Total
FROM sheet1
WHERE (InStr([รหัส],"D569")>0)
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: นับรหัสรายการที่กำหนดไว้

#5

Post by Totem »

snasui wrote: Wed May 08, 2019 12:07 am :D อ่านแล้วไม่ค่อยกระจ่างในคำถามครับ

เพื่อความสะดวกต่อการสังเกตว่ามีการนับถูกต้องหรือไม่ สามารถเพิ่มคอลัมน์ของรหัสกับคอลัมน์ผลลัพธ์ของการนับเข้ามาใน Query ได้ตามด้านล่างครับ

Code: Select all

SELECT sheet1.[รหัส] As รหัส, Count(sheet1.[รหัส]) AS จำนวน
FROM sheet1
WHERE (InStr([รหัส],"D569")>0)
Group By รหัส
กรณีต้องการเฉพาะผลลัพธ์ว่านับแล้วได้เท่าไร ใช้ Query ตามด้านล่างครับ

Code: Select all

Selete Count(sheet1.[รหัส]) As Total
FROM sheet1
WHERE (InStr([รหัส],"D569")>0)

:D ขอบคุณครับอาจารย์ พอจะนำไปใช้ได้แล้วครับ
Post Reply