: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 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

ขอทราบวิธีนับข้อมูลที่ไม่ซ้ำแบบมีเงื่อนไขโดยเงื่อนไขอยู่คนละ

#1

Post by DhitiBank »

สวัสดีทุกคนครับ
ผมขอคำแนะนำหน่อยครับ ผมมีข้อมูลการขายของเซลส์แต่ละคนและในแต่ละวันที่ส่ง (สนใจคอลัมน์ B วันส่ง, คอลัมน์ D รหัสลูกค้า, คอลัมน์ E รหัสเซลส์ และคอลัมน์ F ยอดซื้อ) จะมีวิธีเขียนสูตรในเซล J3 ถึง P8 อย่างไรเพื่อให้นับจำนวนร้านค้าโดยแยกตามเซลส์และตามวันที่ส่งครับ ซึ่งคอลัมน์ร้านค้าก็จะมีรหัสซ้ำๆ กันแต่จะไม่เหมือนกันในแต่ละเซลส์
(ปกติที่ทำคือ ผมมานั่งคัดลอกข้อมูลในแต่ละวันและแต่ละเซลส์ แล้วก็ใช้สูตร sumproduct ที่ได้จาก อ.คนควน แล้วก็เอาค่าที่ได้ไปใส่ในตารางอีกทีครับ)
http://upic.me/i/4n/2012-11-14_222330.jpg

แล้วก็ รบกวนอีกเรื่องหนึ่งครับ ผมลองใส่สูตรรวมยอดในคอลัมน์ Q ถึง W โดยใช้ sumifs แต่ไม่แน่ใจว่าจะเปิดใน Excel 2003 ได้หรือไม่ ขอคำแนะนำหน่อยครับ
http://upic.me/i/vs/2012-11-14_222902.jpg
User avatar
snasui
Site Admin
Site Admin
Posts: 30761
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขอทราบวิธีนับข้อมูลที่ไม่ซ้ำแบบมีเงื่อนไขโดยเงื่อนไขอยู่

#2

Post by snasui »

:D ฟอรัมนี้สามารถแนบภาพได้ ให้แนบมาที่นี่เลย ควรแนบไฟล์ตัวอย่างมาด้วยเพื่อเพื่อน ๆ จะได้สะดวกในการให้คำแนะนำครับ
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: ขอทราบวิธีนับข้อมูลที่ไม่ซ้ำแบบมีเงื่อนไขโดยเงื่อนไขอยู่

#3

Post by DhitiBank »

ครับอาจารย์ ผมทำไม่เป็นเมื่อสักครู่นี้ลองอัพโหลดไฟล์ (500k กว่าๆ) ขึ้นข้อความเตือนว่าขนาดเกิน เดี๋ยวจะลองตัดที่จำเป็นแล้วอัพใหม่ครับ...
อ้า... อัพได้แล้ว
You do not have the required permissions to view the files attached to this post.
joo
Gold
Gold
Posts: 1213
Joined: Sat Apr 17, 2010 3:50 pm

Re: ขอทราบวิธีนับข้อมูลที่ไม่ซ้ำแบบมีเงื่อนไขโดยเงื่อนไขอยู่

#4

Post by joo »

:D ลองแบบนี้ดูครับว่าตรงกับที่ต้องการไหมที่ J3 คีย์ =SUMPRODUCT(--($I3=$B$2:$B$1715),--(J$2=$E$2:$E$1715))Enter > Copy ไปทางขวาและลงด้านล่าง
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: ขอทราบวิธีนับข้อมูลที่ไม่ซ้ำแบบมีเงื่อนไขโดยเงื่อนไขอยู่

#5

Post by DhitiBank »

joo wrote::D ลองแบบนี้ดูครับว่าตรงกับที่ต้องการไหมที่ J3 คีย์ =SUMPRODUCT(--($I3=$B$2:$B$1715),--(J$2=$E$2:$E$1715))Enter > Copy ไปทางขวาและลงด้านล่าง
ขอบคุณครับคุณ joo
ผมลองคีย์ดูได้เลข 162 ตัวเลขที่ออกมาจะนับรวมร้านทั้งหมด (รวมรหัสซ้ำ) ซึ่งในวันที่ 27 เซลส์ 11 ได้จำนวนร้านเพียง 14 ร้านครับ
คอลัมน์ D (รหัสลูกค้า) เป็นแบบนี้ครับ คือว่า ผมดึงข้อมูลมาจากใบจองสินค้า ซึ่งใบจองแต่ละใบจะมีรายการสินค้าหลายรายการ พอดึงออกมาเป็น excel แล้วแต่ละแถวจะมีข้อมูลสินค้า 1 รายการ สมมติใบจองลูกค้ารหัส 10000 จองสินค้าไว้ 10 รายการในวันที่ 27 ก็จะมีรหัส 10000 ของวันที่ 27 อยู่ 10 แถวครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: ขอทราบวิธีนับข้อมูลที่ไม่ซ้ำแบบมีเงื่อนไขโดยเงื่อนไขอยู่

#6

Post by bank9597 »

DhitiBank wrote:
joo wrote::D ลองแบบนี้ดูครับว่าตรงกับที่ต้องการไหมที่ J3 คีย์ =SUMPRODUCT(--($I3=$B$2:$B$1715),--(J$2=$E$2:$E$1715))Enter > Copy ไปทางขวาและลงด้านล่าง
ขอบคุณครับคุณ joo
ผมลองคีย์ดูได้เลข 162 ตัวเลขที่ออกมาจะนับรวมร้านทั้งหมด (รวมรหัสซ้ำ) ซึ่งในวันที่ 27 เซลส์ 11 ได้จำนวนร้านเพียง 14 ร้านครับ
คอลัมน์ D (รหัสลูกค้า) เป็นแบบนี้ครับ คือว่า ผมดึงข้อมูลมาจากใบจองสินค้า ซึ่งใบจองแต่ละใบจะมีรายการสินค้าหลายรายการ พอดึงออกมาเป็น excel แล้วแต่ละแถวจะมีข้อมูลสินค้า 1 รายการ สมมติใบจองลูกค้ารหัส 10000 จองสินค้าไว้ 10 รายการในวันที่ 27 ก็จะมีรหัส 10000 ของวันที่ 27 อยู่ 10 แถวครับ
:D
ที่ G2 คีย์ =IF(COUNTIF($B2:$B2,B3),IF(COUNTIF($D2:$D2,D3),IF(COUNTIF($E2:$E2,E3)=1,0))) คัดลอกลงมา
ที่ J3 คีย์ =SUMPRODUCT(--($B$2:$B$1715=$I3),--($E$2:$E$1715=J$2),--($G$2:$G$1715=FALSE)) คัดลอกไปทางขวา แล้วลงล่างพร้อมกัน
sumifs แต่ไม่แน่ใจว่าจะเปิดใน Excel 2003 ได้หรือไม่ ขอคำแนะนำหน่อยครับ
สูตร Sumifs ไม่สามารถใช้กับ 2003 ได้ครับ ต้องใช้ Sumproduct หรือ Sum(if เท่านั้น
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: ขอทราบวิธีนับข้อมูลที่ไม่ซ้ำแบบมีเงื่อนไขโดยเงื่อนไขอยู่

#7

Post by bank9597 »

:D
แก้ไขอีกนิดครับ
สูตร =IF(COUNTIF($B2:$B2,B3),IF(COUNTIF($D2:$D2,D3),IF(COUNTIF($E2:$E2,E3)=1,0))) ยังมีโอกาสผิด ในกรณีที่ข้อมูลกระจัดกระจาย
ให้เปลี่ยนเป็น ดังนี้
ที่ G2 คีย์ =IF(COUNTIF($B$2:$B2,B3),IF(COUNTIF($D$2:$D2,D3),IF(COUNTIF($E$2:$E2,E3)>1,0,1))) คัดลอกลงมา
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: ขอทราบวิธีนับข้อมูลที่ไม่ซ้ำแบบมีเงื่อนไขโดยเงื่อนไขอยู่

#8

Post by DhitiBank »

โอ้ ขอบคุณคุณ bank9597 มากครับ เดี๋ยวกลับบ้านแล้วจะลองดูครับ
ขอบคุณคุณ joo ด้วยนะครับ
joo
Gold
Gold
Posts: 1213
Joined: Sat Apr 17, 2010 3:50 pm

Re: ขอทราบวิธีนับข้อมูลที่ไม่ซ้ำแบบมีเงื่อนไขโดยเงื่อนไขอยู่

#9

Post by joo »

:D ลองแบบนี้ดูอีกวิธีครับที่ J3 คีย์ =SUM(IF(FREQUENCY(IF($B$2:$B$1715=$I3,IF($E$2:$E$1715=J$2,MATCH($C$2:$C$1715,$C$2:$C$1715,0))),ROW($C$2:$C$1715)-ROW($C$2)+1),1))
กด Ctrl+Shift+Enter พร้อมกันแล้วคัดลอกไปทางขวาและลงด้านล่าง
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: ขอทราบวิธีนับข้อมูลที่ไม่ซ้ำแบบมีเงื่อนไขโดยเงื่อนไขอยู่

#10

Post by DhitiBank »

joo wrote::D ลองแบบนี้ดูอีกวิธีครับที่ J3 คีย์ =SUM(IF(FREQUENCY(IF($B$2:$B$1715=$I3,IF($E$2:$E$1715=J$2,MATCH($C$2:$C$1715,$C$2:$C$1715,0))),ROW($C$2:$C$1715)-ROW($C$2)+1),1))
กด Ctrl+Shift+Enter พร้อมกันแล้วคัดลอกไปทางขวาและลงด้านล่าง
:shock: ... สูตร array สินะครับ เดี๋ยวจะลองดูครับ... ถ้าไม่รบกวนเกินไป ผมขอคำอธิบายหน่อยได้ไหมครับ (สูตรดึงข้อมูลซ้ำที่ใช้กับวันที่ในเอกสารผมยังงงอยู่เลย ได้แต่ขอลอกมาใช้ก่อน)
ขอบคุณมากครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30761
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: ขอทราบวิธีนับข้อมูลที่ไม่ซ้ำแบบมีเงื่อนไขโดยเงื่อนไขอยู่

#11

Post by snasui »

:D ความหมายของสูตร

=SUM(IF(FREQUENCY(IF($B$2:$B$1715=$I3,IF($E$2:$E$1715=J$2,MATCH($C$2:$C$1715,$C$2:$C$1715,0))),ROW($C$2:$C$1715)-ROW($C$2)+1),1))

หมายความว่าให้รวมยอดโดย ถ้า FREQUENCY(IF($B$2:$B$1715=$I3,IF($E$2:$E$1715=J$2,MATCH($C$2:$C$1715,$C$2:$C$1715,0))),ROW($C$2:$C$1715)-ROW($C$2)+1) เป็นจริงแล้วให้มีค่าเป็น 1 จากนั้นจะรวมว่ามีค่า 1 อยู่กี่ตัว

จากสูตร FREQUENCY(IF($B$2:$B$1715=$I3,IF($E$2:$E$1715=J$2,MATCH($C$2:$C$1715,$C$2:$C$1715,0))),ROW($C$2:$C$1715)-ROW($C$2)+1) มีความหมายว่าเมื่อเทียบ IF($B$2:$B$1715=$I3,IF($E$2:$E$1715=J$2,MATCH($C$2:$C$1715,$C$2:$C$1715,0))) กับ ROW($C$2:$C$1715)-ROW($C$2)+1 แล้วมีความถี่แตะละค่า (จำนวนครั้งที่เกิดขึ้น) เป็นเท่าใด ดูเพิ่มเติมที่นี่ครับ http://www.snasui.com/viewtopic.php?f=3&t=2221

จากสูตร IF($B$2:$B$1715=$I3,IF($E$2:$E$1715=J$2,MATCH($C$2:$C$1715,$C$2:$C$1715,0))) มีความหมายว่า หาก $B$2:$B$1715=$I3 เป็นจริงแล้วให้นำผลลัพธ์ของ IF($E$2:$E$1715=J$2,MATCH($C$2:$C$1715,$C$2:$C$1715,0)) มาแสดง

จากสูตร IF($E$2:$E$1715=J$2,MATCH($C$2:$C$1715,$C$2:$C$1715,0)) หมายความว่า หาก $E$2:$E$1715=J$2 เป็นจริงให้นำผลลัพธ์ของ MATCH($C$2:$C$1715,$C$2:$C$1715,0) มาแสดง

จากสูตร ROW($C$2:$C$1715)-ROW($C$2)+1 เป็นการให้ค่าลำดับ อ่านได้จากที่นี่ครับ http://www.snasui.com/viewtopic.php?p=17983#p17983
User avatar
DhitiBank
Gold
Gold
Posts: 1676
Joined: Mon Oct 15, 2012 12:07 am

Re: ขอทราบวิธีนับข้อมูลที่ไม่ซ้ำแบบมีเงื่อนไขโดยเงื่อนไขอยู่

#12

Post by DhitiBank »

ขอบคุณ อ.คนควน มากครับสำหรับคำอธิบาย ผมคงต้องอ่านอีกหลายรอบกว่าจะเข้าใจละครับ
ในทางปฏิบัติ ผมขอใช้วิธีของคุณ bank นะครับ เพราะข้อมูลมีหลายพันแถว หากใช้สูตร array จะใช้เวลาคำนวณนานพอดู เครื่องผมไม่ค่อยแรงครับ
ขอบคุณทุกคนอีกครั้งครับ
Post Reply