Page 1 of 1

หาค่าที่ไม่ซ้ำกัน

Posted: Wed Dec 21, 2011 5:07 pm
by wisit
อาจารย์ครับผมได้ทำการหาค่าที่ไม่ซ้ำกัน โดยอาศัยจากสูตรของอาจารย์มาหาค่า (แค่ปรับเปลี่ยนตำแหน่ง และทำการข้ามชีท) แต่สูตรมันฟ้องว่าผิดครับ ไม่รู้ว่าผิดตรงไหนครับ รบกวนอาจารย์ด้วยครับ ผมได้แนบไฟล์ตัวอย่างมาด้วยครับ :D

Re: หาค่าที่ไม่ซ้ำกัน

Posted: Wed Dec 21, 2011 5:15 pm
by snasui
:D ลองตามนี้ครับ

ที่เซลล์ B3 คีย์

=IF(ROWS($B$3:B3)>$A$1,"",INDEX(Sheet1!$B$3:$B$1955,SMALL(IF(FREQUENCY(MATCH(Sheet1!$B$3:$B$1955,Sheet1!$B$3:$B$1955,0),ROW(Sheet1!$B$3:$B$1955)-ROW(Sheet1!$B$3)+1),ROW(Sheet1!$B$3:$B$1955)-ROW(Sheet1!$B$3)+1),ROWS($B$3:B3))))

Ctrl+Shift+Enter > Copy ลงด้านล่าง

Re: หาค่าที่ไม่ซ้ำกัน

Posted: Wed Dec 21, 2011 10:44 pm
by norkaz
ขออนุญาต เพิ่มเติมครับ

ใส่ ROUND( ) เข้าไป
ปรับสูตรที่ A1 เป็น =ROUND(SUMPRODUCT(1/COUNTIF(Sheet1!B3:B1955,Sheet1!B3:B1955)),0)

ส่วนที่เหลือทำตามที่คุณ คนควนแสดงไว้ทั้งหมด ครับ

์Norkaz

Re: หาค่าที่ไม่ซ้ำกัน

Posted: Thu Dec 22, 2011 12:09 am
by bank9597
:D มีเซลล์อ้างอิงด้วย อาจารย์กล่าวว่ากระชับดีแล้ว
แต่อย่าไรก็ดี อยู่ที่ผู้ใช้ จะเลือกใช้แบบไหนครับ

Re: หาค่าที่ไม่ซ้ำกัน

Posted: Thu Dec 22, 2011 1:06 am
by norkaz
ปกติการใช้สูตร =SUMPRODUCT(1/COUNTIF(Range,Range))

หรือ =SUM(1/COUNTIF(Range,Range)) ->กดเป็น Array
ติดรูป {=SUM(1/COUNTIF(Range,Range))}

จะให้ค่าออกมาเท่ากับ COUNTIF ปกติเสมอ มักจะไม่ค่อยพลาด

กรณีอื่นๆ อาจจะไม่ต้องครอบด้วย ROUND( ) ส่วนงานนี้ ล็อกมันรั่วอยู่นิดหนึ่ง
ต้องอาศัยฟังก์ชั่น กลุ่ม ROUND( ) ไปครอบครับ หรือจะใช้วิธีอื่นๆ อีกสารพัดวิีธีก็ได้
จุดประสงค์เพื่อบังคับค่า Array ที่ออกมา จาก SUMPRODUCT ให้ถูกต้อง แบบเป๊ะๆ! ในที่นี้ 12
ถ้าไม่บังคับค่าที่ A1 ในกรณีนี้จะได้ไม่เท่ากับ 12 จำไม่ได้แล้ว น่าจะประมาณ 11.99999994

ไม่งั้น ค่าสุดท้ายจะหายไปครับ

ด้วยความปรารถนาดี
Norkaz

Re: หาค่าที่ไม่ซ้ำกัน

Posted: Thu Dec 22, 2011 7:14 am
by wisit
ขอบคุณครับสำหรับข้อแนะนำที่ดีๆ :D