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

Re: หาค่าที่ไม่ซ้ำกัน
Posted: Wed Dec 21, 2011 5:15 pm
by snasui

ลองตามนี้ครับ
ที่เซลล์ 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

มีเซลล์อ้างอิงด้วย อาจารย์กล่าวว่ากระชับดีแล้ว
แต่อย่าไรก็ดี อยู่ที่ผู้ใช้ จะเลือกใช้แบบไหนครับ
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
ขอบคุณครับสำหรับข้อแนะนำที่ดีๆ
