Page 1 of 1

เจอค่าซ้ำให้ข้ามไป หาค่าที่ไม่ซ้ำ

Posted: Mon Apr 23, 2018 1:36 pm
by Supachok
เรียน ท่านผู้รู้

Sheet printer
ที่ C2 ต้องการหาค่าในแถว (A1:A1000) ค่าที่ไม่ซ้ำ
ถ้าเจอซ้ำให้หาค่าในแถว (A1:A1000) ที่ไม่ซ้ำมาแสดง

ตย ค่าที่ต้องการ
C1 = V004
C8 = V001
C15 = V002
C22 = V005
Next C = " "

ขอคำแนะนำด้วยครับ

Re: เจอค่าซ้ำให้ข้ามไป หาค่าที่ไม่ซ้ำ

Posted: Mon Apr 23, 2018 9:59 pm
by snasui
:D ตัวอย่างสูตรตามด้านล่างครับ
  1. ที่ C1 คีย์
    =IFERROR(INDEX($A$1:$A$10,SMALL(IF(FREQUENCY(MATCH($A$1:$A$10,$A$1:$A$10,0),ROW($A$1:$A$10)-ROW($A$1)+1),ROW($A$1:$A$10)-ROW($A$1)+1),$B1)),"")
    Ctrl+Shift+Enter > Copy ลงด้านล่าง

!
Note: Ctrl+Shift+Enter
เป็นการสร้างสูตร Array โดยสามารถเลือกดำเนินการตามข้อ 1 หรือ 2 ด้านล่าง
  1. กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น
    Ctrl และ Shift พร้อมกันค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
  2. กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน
    จากนั้นกดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วตามด้วย Enter เพื่อสร้างเป็นสูตร Array
  3. หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)}
    ปีกกานี้ไม่สามารถคีย์เข้าไปเอง จะต้องมาด้วยการกดแป้น Ctrl+Shift+Enter เท่านั้น
    ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
  4. การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง

Re: เจอค่าซ้ำให้ข้ามไป หาค่าที่ไม่ซ้ำ

Posted: Tue Apr 24, 2018 9:04 am
by Supachok
เรียน ท่านอาจารย์

มีขอสงสัยว่าเมื่อปรับ Row เป็น 40 ขึ้นไปสูตรไม่แสดงค่าครับ

=IFERROR(INDEX($A$1:$A$40,SMALL(IF(FREQUENCY(MATCH($A$1:$A$40,$A$1:$A$40,0),ROW($A$1:$A$40)-ROW($A$1)+1),ROW($A$1:$A$40)-ROW($A$1)+1),$B1)),"")

Re: เจอค่าซ้ำให้ข้ามไป หาค่าที่ไม่ซ้ำ

Posted: Tue Apr 24, 2018 2:39 pm
by logic
ช่วยแนบไฟล์มาด้วยเพื่อนสมาชิกจะได้ช่วยกันดูได้ครับ :P

Re: เจอค่าซ้ำให้ข้ามไป หาค่าที่ไม่ซ้ำ

Posted: Tue Apr 24, 2018 11:25 pm
by puriwutpokin
ลองปรับเป็น
=IFERROR(INDEX($A$1:$A$40,SMALL(IF(FREQUENCY(if($A$1:$A$40<>"" MATCH($A$1:$A$40,$A$1:$A$40,0)​),ROW($A$1:$A$40)-ROW($A$1)+1),ROW($A$1:$A$40)-ROW($A$1)+1),$B1)),"")

Re: เจอค่าซ้ำให้ข้ามไป หาค่าที่ไม่ซ้ำ

Posted: Wed Apr 25, 2018 8:57 am
by Supachok
puriwutpokin

สูตรไม่ยอมทำงานให้ขึ้น Error

Re: เจอค่าซ้ำให้ข้ามไป หาค่าที่ไม่ซ้ำ

Posted: Wed Apr 25, 2018 9:22 am
by puriwutpokin
Supachok wrote: Wed Apr 25, 2018 8:57 am puriwutpokin

สูตรไม่ยอมทำงานให้ขึ้น Error
เช็คแล้วครับสูตรของอาจารย์ คนควนใช้ได้ถูกแล้วแม้จะเพิ่ม จำนวนบรรทัดเพิ่ม
แต่ที่ บรรทัด 40 แล้วไม่ขึ้นข้อมูล เพราะข้อมูลซ้ำ จะมีเพียง 5 ตัว เท่านั้นจึงไม่
มีตัวที่จะแสดงอีก เพราะสูตรแสดงเพราะไม่ซ้ำถ้าซ้ำข้ามไปตัวที่ไม่ซ้ำซึ่งไม่มี
จึงเป็นค่าว่างครับ

Re: เจอค่าซ้ำให้ข้ามไป หาค่าที่ไม่ซ้ำ

Posted: Wed Apr 25, 2018 9:52 am
by Supachok
ยังงงๆ อยู่ครับ

กรณีข้อมูลของผมมีมากกว่า 40 row คือ 50 row
แล้วผมมีข้อมูลอ้างอิงเพิ่ม เป็น V006 และ V007 มันจะแสดงค่าไหมครับ

เพราะสูตรระบุไว้ที่ช่อง แรกก่็ขึ้นค่าว่างครับ.

=IFERROR(INDEX($A$1:$A$40,SMALL(IF(FREQUENCY(MATCH($A$1:$A$40,$A$1:$A$40,0),ROW($A$1:$A$40)-ROW($A$1)+1),ROW($A$1:$A$40)-ROW($A$1)+1),$B1)),"")

Re: เจอค่าซ้ำให้ข้ามไป หาค่าที่ไม่ซ้ำ

Posted: Wed Apr 25, 2018 7:25 pm
by snasui
Supachok wrote: Wed Apr 25, 2018 9:52 am ยังงงๆ อยู่ครับ

กรณีข้อมูลของผมมีมากกว่า 40 row คือ 50 row
แล้วผมมีข้อมูลอ้างอิงเพิ่ม เป็น V006 และ V007 มันจะแสดงค่าไหมครับ

เพราะสูตรระบุไว้ที่ช่อง แรกก่็ขึ้นค่าว่างครับ.

=IFERROR(INDEX($A$1:$A$40,SMALL(IF(FREQUENCY(MATCH($A$1:$A$40,$A$1:$A$40,0),ROW($A$1:$A$40)-ROW($A$1)+1),ROW($A$1:$A$40)-ROW($A$1)+1),$B1)),"")
:D กรุณาแนบไฟล์ที่เป็นปัญหามาถามกัน ชี้ให้เห็นว่าเซลล์ไหนที่แสดงค่าผิดพลาดหรือแสดงไม่ตรงกับที่ต้องการ ค่าที่ถูกต้องควรเป็นเท่าใด จะได้สะดวกในการตอบ

สูตรนั้นจะนำค่าที่ซ้ำกันมาแสดงเพียงครั้งเดียวไม่ว่าจะซ้ำกันกี่ครั้งก็ตามครับ

Re: เจอค่าซ้ำให้ข้ามไป หาค่าที่ไม่ซ้ำ

Posted: Thu Apr 26, 2018 10:56 am
by Supachok
เรียน ท่านอาจารย์

ที่ sheet printer @ C1

สูตรเดิม ช่วง Array 1:40
=IFERROR(INDEX($A$1:$A$40,SMALL(IF(FREQUENCY(MATCH($A$1:$A$40,$A$1:$A$40,0),ROW($A$1:$A$40)-ROW($A$1)+1),ROW($A$1:$A$40)-ROW($A$1)+1),$B1)),"")

แก้สูตรช่วง Array 1:40++++
=IFERROR(INDEX($A$1:$A$41,SMALL(IF(FREQUENCY(MATCH($A$1:$A$41,$A$1:$A$41,0),ROW($A$1:$A$41)-ROW($A$1)+1),ROW($A$1:$A$41)-ROW($A$1)+1),$B1)),"")

หลังแก้ช่วง Array 1:40++++ ไม่มีค่าแสดงครับ

Re: เจอค่าซ้ำให้ข้ามไป หาค่าที่ไม่ซ้ำ

Posted: Thu Apr 26, 2018 7:28 pm
by snasui
:D ปรับสูตรที่ C1 ใหม่เป็นด้านล่างครับ

=IFERROR(INDEX($A$1:$A$41,SMALL(IF(FREQUENCY(IF($A$1:$A$41<>"",MATCH($A$1:$A$41,$A$1:$A$41,0)),ROW($A$1:$A$41)-ROW($A$1)+1),ROW($A$1:$A$41)-ROW($A$1)+1),$B1)),"")

Ctrl+Shift+Enter

Re: เจอค่าซ้ำให้ข้ามไป หาค่าที่ไม่ซ้ำ

Posted: Fri Apr 27, 2018 9:04 am
by Supachok
ได้แล้วครับ ขอบคุณครับ
ท่านอาจารย์