Announcement

Collapse

ยินดีต้อนรับสู่ Excel Expert Training Forum

กฏกติกาของฟอรัม: แจ้งชื่อและนามสกุลจริงในการสมัครสมาชิก - ตั้งชื่อกระทู้ให้ตรงกับปัญหาที่ถาม - เขียนอธิบายคำถามทั้งในตัวกระทู้และในแฟ้มแนบ - ห้ามใช้คำว่า อ่ะ คับ คำผวน - ตั้งชื่อแฟ้มเป็นภาษาอังกฤษให้สื่อถึงปัญหา - อย่าระบุชื่อให้คนใดเป็นผู้ตอบ - งดให้ความร่วมมือหรือช่วยกระทู้ที่ละเมิดกฏของฟอรัม
See more
See less

ท่านไหนสามารถทำ unique list เป็น array formula ได้บ้างครับ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ท่านไหนสามารถทำ unique list เป็น array formula ได้บ้างครับ?

    ท่านไหนเคยทำ unique list ไม่รวม cell ว่าง เป็น array formula ได้บ้างครับ
    ปกติเห็น count row ตามบันทัดเพื่อเลื่อน record ในการหาค่าซ้ำ เลยจำเป็นต้องเขียนสูตรแล้วคัดลอกลงมาทีละบันทัดเอา บางกรณีอาจไม่สะดวกในการทำแบบนั้นครับ ใคร create สูตรนี้ได้น่าจะช่วยในการทำงานได้เยอะเลยครับ (พยายามมั่วมานานแต่ยังไม่สำเร็จ 555) ฝากรบกวนช่วย share idea ทีครับผม ขอบคุณจ้า...

    ตัวอย่าง
    https://www.get-digital-help.com/200...remove-blanks/

  • Vajaraphol
    replied
    ถ้าข้อมูลเยอะๆ ผมคิดว่าน่าลองใช้ VBA ในการทำ unique list ครับ
    ถ้า algorithm ดีๆ ไวกว่า array เยอะเลย

    Leave a comment:


  • Mathlife
    replied
    https://exceljet.net/formula/extract...ms-from-a-list
    https://trumpexcel.com/unique-items-...list-in-excel/
    https://stackoverflow.com/questions/...alues-in-excel

    เว็บไซต์เหล่านี้อาจช่วยได้บ้างครับ แต่ขอบพระคุณVajarapholมากครับที่ช่วยในทุกเรื่องในExcel

    Leave a comment:


  • Vajaraphol
    replied
    ถ้าดูตามสูตรที่ให้มา ยังไงก็ประมวลผลมากกว่าสูตรที่ผมให้ไปแน่ๆ ไม่น่าจะไวกว่าเดิมนะครับ
    สงสัยต้องลองข้อมูลเยอะๆแล้วใช้ โปรแกรม benchmark มาจับความไวดู

    Leave a comment:


  • Legir
    replied
    =INDEX(ข้อมูล,SMALL(IF(IF(ISBLANK(ข้อมูล),FALSE,MATCH(ข้อมูล,ข้อมูล,0)=1+ROW(ข้อมูล)-MIN(ROW(ข้อมูล))),1+ROW(ข้อมูล)-MIN(ROW(ข้อมูล))),1+ROW(ข้อมูล)-MIN(ROW(ข้อมูล))))

    Ctrl+Shift+Enter
    Last edited by Legir; 11 Oct 2018, 23:35.

    Leave a comment:


  • Vajaraphol
    replied
    เรื่องช้าเร็วนี่ตอบยากครับเพราะยังนึกสูตรตามที่บอกไม่ออก
    ถ้านึกออกบอกด้วยครับอยากลองเหมือนกัน
    แต่โดยความเห็นผมว่าคงไม่ได้ช่วยให้ต่างกันมากมาย เผลอๆจะใช้การคำนวณเยอะกว่าแบบนี้อีก

    ส่วนเรื่อง dynamic range สูตรที่ให้ไปมีช่วงข้อมูลเดียวคือ "ข้อมูล" สามารถสร้างได้อยู่แล้วไม่ติดขัดอะไรครับ

    ปล.การทำเป็น application ผมนิยมใช้ VBA สร้าง unique list มากกว่าครับ เร็วกว่ากันเยอะเลย

    Leave a comment:


  • musf_gz
    replied
    คือในความคิดตัวเอง การทำงานของสูตร Array น่าจะใช้ทรัพยากรในการคำนวณน้อยกว่าให้ ดำนินการเป็น cell แยกไป
    และเพื่อความสะดวกในการกำหนดช่วง กรณีเกิด record ใหม่ ซึ่งอาจจะใช้ร่วมกับ Dynamic range ได้โดยไม่ต้องมาปรับสูตรใหม่หลายรอบครับ

    ถ้า Copy แล้วลากยาวลงมาอาจจะสะดวกในตอนแรกหรือผู้ Design แต่เมื่อในไปให้ user ใช้อาจจะย้อนกลับมาให้ผู้ design กลับมาปรับให้ใหม่เป็นระยะๆกรณี Requirement เปลี่ยนแปลง รึขนาดข้อมูลเปลี่ยนแปลงไปครับ ถ้ามี idea อื่นดีกว่าฝากชี้แนะด้วยครับ คืออยากจะใช้ Application พื้นฐานกันให้เต็มประสิทธิภาพก่อนข้ามไปใช้ระบบ Data base ครับผม

    Leave a comment:


  • Vajaraphol
    replied
    อยากทราบเหตุผลว่าทำไมถึงต้องการทำแบบนั้นครับ
    ผมนึกประโยชร์ไม่ออก

    Leave a comment:


  • musf_gz
    replied
    ขอบคุณครับ สงสัยต้องนั่งคิดกันต่อ อยากได้แบบ เลือก 100 cell ใส่สูตร Ctrl+Shift+Enter แล้วจบ
    ไม่รู้จะเป็นไปได้รึเปล่านะครับ

    Leave a comment:


  • Vajaraphol
    replied
    A2=INDEX(ข้อมูล, MATCH(0, IF(ISBLANK(ข้อมูล), 1, COUNTIF(A$1:$A1, ข้อมูล)), 0)) Ctrl+Shift+Enter
    แล้วก๊อปปี้ลงข้างล่างครับ

    Leave a comment:

Working...
X