เพื่อมุ่งให้เกิดคุณภาพจากการอบรมสูงสุด Excel Expert Training ให้การอบรม Excel กลุ่มเล็กๆ ไม่เกิน 6 คนทุกคนสามารถเรียนรู้ Excel อย่างใกล้ชิด จะมาคนเดียวหรือมาเป็นกลุ่มแล้วนัดวันอบรมแบบส่วนตัวก็ได้ ผู้เข้าอบรมทุกคนสามารถติดตามเนื้อหาที่อบรมได้อย่างชัดเจนจากจอภาพด้านหน้าของตัวเอง
Page 1 of 2 12 LastLast
Results 1 to 10 of 11

Thread: ใช้สูตร Array นับจำนวนคนภายใต้เงื่อนไขที่กำหนด

  1. #1
    Sumon
    Guest

    ใช้สูตร Array นับจำนวนคนภายใต้เงื่อนไขที่กำหนด

    ผมต้องการใช้สูตร Array นับจำนวนคนภายใต้เงื่อนไขที่กำหนด ดังตัวอย่างในไฟล์แนบครับ

    ในไฟล์ จะมีวันที่ขาย ชื่อพนักงานขาย และยอดขาย
    เป้าหมายคือ อยากรู้ว่าในเดือนที่กำหนด (ในตัวอย่างเป็นเดือน 2) มีพนักงานขายกี่คนที่สามารถขายของได้

    จริงๆแล้ว มีวิธีการหาง่ายๆ โดยใช้ pivot table แต่เนื่องจากว่าต้องการนำไปใช้เป็นส่วนหนึ่งในรายงานที่มีการคำนวณหาค่าอื่นๆโดยใช้ Array Formular อยู่แล้ว จึงอยากได้แนวทางการคำนวณโดยใช้สูตร Array Formular ครับ จะได้คำนวณจบได้ในหน้าเดียว

  2. #2
    วานิชย์
    Guest
    =SUM(IF(FREQUENCY(MATCH(IF(MONTH($B$3:$B$9)=$F$11,$C$3:$C$9),IF(MONTH($B$3:$B$9)=$F$11,$C$3:$C$9),0),MATCH(IF(MONTH($B$3:$B$9)=$F$11,$C$3:$C$9),IF(MONTH($B$3:$B$9)=$F$11,$C$3:$C$9),0))>0,1,0))-1

    สูตรนี้เป็น Array อย่าลืมกด Ctrl+Shift+Ente ด้วยนะครับ
    ตัวอย่างตามไฟล์แนบนะครับ
    ปล.สูตรนี้ยังไม่ครอบคลุมกรณีที่พนักงานทุกคนขายในเดือนเดียวกันทั้งหมดนะครับ

  3. #3
    สมเกียรติ
    Guest
    =COUNT(SMALL(IF((MONTH(B4:B10)=G2)*(MATCH(C4:C10&MONTH(B4:B10),C4:C10&MONTH(B4:B10),0))=A4:A10,A4:A10),A4:A10))
    A4 : A10 เป็นเลขลำดับ 1-7
    ลูกเล่นอยู่ที่ทำให้ชื่อพนักงานที่อยู่ต่างเดือนกันเป็นชื่อที่ต่างกัน โดยนำชื่อกับเลขเดือนมาต่อกันก่อนแล้วจึงใช้นำไปเทียบหาตำแหน่งรายการต่อครับ

  4. #4
    อรวีร์
    Guest

    Smile SumProduct( )

    ลองดูอีกแบบค่ะ ไม่ใช้สูตร Array (ไม่ตรงกับที่โจทย์ต้องการ )

  5. #5
    สมเกียรติ
    Guest
    ตัวอย่างที่ผมแนบคราวก่อน มีจุดอ่อนตรงที่ยังไม่สามารถหารายการทั้งหมดมาแสดงได้ จึงคิดอีกวิธีครับ โดยนำตำแหน่งรายการของชื่อมาบวกกับเลขที่รายการ แต่ทำให้เป็นเศษ เพื่อใช้เศษนี้แสดงตำแหน่งรายการ น่าจะสมบูรณ์แล้วครับ
    =SMALL(IF(MONTH(B4:B10)=G2,MATCH(C4:C10&MONTH(B4:B10),C4:C10&MONTH(B4:B10),0)+A4:A10/100),A4:A10)

  6. #6
    Sumon
    Guest
    ขอบคุณ ทุกๆท่านครับ
    ขอเวลานำความรู้ไปศึกษา หากสงสัยจะกลับมาถามเพิ่มเติมครับ

  7. #7
    hs1
    Guest
    ผมลองใช้วิธีของคุณอรวีร์และใช้ Ifเข้ามาช่วยเล็กน้อย
    และสูตร{=SUMPRODUCT(--($E$2:$E$9<>"")/COUNTIF($E$2:$E$9,$E$2:$E$9&""))}
    ครับ

  8. #8
    สมเกียรติ
    Guest
    เยี่ยมเลยครับ ขอปรับสูตรให้สั้นลงเป็น
    =SUMPRODUCT(($E$2:$E$8<>"")/COUNTIF($E$2:$E$8,$E$2:$E$8))

    ไม่ต้องใส่ -- เพราะสูตรหารช่วยเปลี่ยน True=1 และ False=0 อยู่แล้ว
    ไม่ต้อง Ctrl+Shift+Enter เพราะ SumProduct

  9. #9
    มิตรภาพ
    Guest
    ผมขออนุญาตท่านเจ้าของกระทู้ เข้ามาแจมสักนิดนะครับ (เพราะทนไม่ไหวจริงๆ ถึงแม้ อ.สมเกียรติจะเคยบอกว่า อย่ายอกันเลย เดี๋ยวไม่งาม)

    เยี่ยมเลยครับ ขอปรับสูตรให้สั้นลงเป็น
    ตั้งแต่ผมเข้าๆออกๆในบอร์ดนี้ ได้อ่านกระทู้ต่างๆของท่านสมาชิก และอ่านคำถามคำตอบต่างๆแล้ว
    ทั้งสูตรและโค้ด VBA ที่ผมใช้ทำงานอยู่ พากันสั้นลงๆ แต่เร็วขึ้นๆทุกวันๆเลยครับ

  10. #10
    สมเกียรติ
    Guest
    ปัญหานี้ค่อนข้างท้าทายมาก นานแล้วที่ไม่เจอคำถามแบบนี้และคำตอบที่ทำให้คิดต่ออย่างนี้ครับ แม้ได้คำตอบไปแล้วก็ตาม ตอนนี้ผมยังคิดหาทางอื่น สูตรอื่นที่ง่าย และสั้นกว่านี้ว่ายังมีวิธีอื่นอีกไหม ... มีอีกไหมเนี่ย

Similar Threads

  1. การคิดค่าเสื่อม ใช้สูตร DDB
    By janry in forum Excel Expert Forum Library 2012 - 2007
    Replies: 5
    Last Post: 27 Oct 2009, 07:13
  2. Sum Array คำนวณช้า
    By jnooraksa in forum Excel Expert Forum Library 2012 - 2007
    Replies: 5
    Last Post: 12 Nov 2008, 15:14
  3. array ใน VBA
    By khuntai in forum Excel Expert Forum Library 2012 - 2007
    Replies: 2
    Last Post: 3 Sep 2008, 05:39
  4. Replies: 6
    Last Post: 15 Oct 2007, 14:05
  5. ใช้สูตร {=sum(if(.......))} ในexcel 2007 ไม่ได้คะ
    By nuunan in forum Excel Expert Forum Library 2012 - 2007
    Replies: 1
    Last Post: 22 Aug 2007, 17:28

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •