Page 1 of 2

ต้องหาหาค่าที่ซ้ำกันมาแสดงว่าค่าเดียว

Posted: Tue Dec 19, 2017 10:51 pm
by March201711
อยากสอบถามคะว่าต้องการดึงค่าที่ซ้ำกันหลายตัวมาแสดงว่าเป็นค่าเดียวคะ
ตามเอกสารนี้คะ

Re: ต้องหาหาค่าที่ซ้ำกันมาแสดงว่าค่าเดียว

Posted: Tue Dec 19, 2017 11:11 pm
by snasui
:D ผมพบว่าคุณ March201711 ใช้ "คะ" แทน "ค่ะ" อยู่บ่อยครั้ง ลองเขียนมาใหม่ให้ถูกต้องด้วยครับ

คร่าว ๆ คือ ประโยคไหนเป็นคำถามใช้ "คะ"
อันไหนเป็นคำบอกเล่าใช้ "ค่ะ"

ตามโพสต์ #1 ต้องใช้ "ค่ะ" ทั้ง 3 ตำแหน่งครับ

Image

Re: ต้องหาหาค่าที่ซ้ำกันมาแสดงว่าค่าเดียว

Posted: Wed Dec 20, 2017 12:00 am
by March201711
คะ ขอบคุณที่ชี้แนะค่ะ

Re: ต้องหาหาค่าที่ซ้ำกันมาแสดงว่าค่าเดียว

Posted: Wed Dec 20, 2017 6:37 am
by snasui
March201711 wrote:คะ ขอบคุณที่ชี้แนะค่ะ
ที่ถูกคือ ค่ะ ขอบคุณที่ชี้แนะค่ะ

:D ตัวอย่างสูตรตามด้านล่างครับ

ที่ D4 คีย์

=IF(ROWS(D$4:D4)>$A$4,"",INDEX($B$4:$B$76,SMALL(IF(FREQUENCY(MATCH($B$4:$B$76,$B$4:$B$76,0),ROW($B$4:$B$76)-ROW($B$4)+1),ROW($B$4:$B$76)-ROW($B$4)+1),ROWS(D$4:D4))))

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

Re: ต้องหาหาค่าที่ซ้ำกันมาแสดงว่าค่าเดียว

Posted: Wed Dec 20, 2017 8:28 am
by March201711
ค่ะ ขอบคุณที่ชี้แนะค่ะอาจารย์ :D

Re: ต้องหาหาค่าที่ซ้ำกันมาแสดงว่าค่าเดียว

Posted: Wed Dec 20, 2017 9:23 pm
by March201711
สอบถามเพิ่มคะ ถ้าจะให้ดึงข้อมูลโดยเริ่มเลข 4***, 5.***,6***,7*** ไปถึง เลข 8*** ต้องทำอย่างไรคะ

Re: ต้องหาหาค่าที่ซ้ำกันมาแสดงว่าค่าเดียว

Posted: Wed Dec 20, 2017 10:43 pm
by puriwutpokin
March201711 wrote:สอบถามเพิ่มคะ ถ้าจะให้ดึงข้อมูลโดยเริ่มเลข 4***, 5.***,6***,7*** ไปถึง เลข 8*** ต้องทำอย่างไรคะ
ปรับเป็นที่ D4=IFERROR(INDEX($B$4:$B$76,MATCH(0,IF(LEFT($B$4:$B$76)+0>=4,COUNTIF(D$3:D3,$B$4:$B$76)),0)),"")กด Ctrl+Shift+Enter คัดลอกลงครับ

Re: ต้องหาหาค่าที่ซ้ำกันมาแสดงว่าค่าเดียว

Posted: Thu Dec 21, 2017 8:06 am
by March201711
ได้แล้วคะ ถามต่อคะ ถ้า column B มีเลขเพิ่มต่อท้ายไปเรื่อยๆ เพราะข้อมูลใน column B มีการเพิ่มขึ้นหรือลดลงในแต่ละวันไม่เท่ากัน อยากให้สูตร column D มีความยืดหยุ่นโดยไม่ต้องไปแก้ ในcell column D ทุกครั้งที่ column B มีการเพิ่มขึ้นหรือลดลงของข้อมูลต้องทำอย่างไรคะ

Re: ต้องหาหาค่าที่ซ้ำกันมาแสดงว่าค่าเดียว

Posted: Thu Dec 21, 2017 9:02 am
by puriwutpokin
March201711 wrote:ได้แล้วคะ ถามต่อคะ ถ้า column B มีเลขเพิ่มต่อท้ายไปเรื่อยๆ เพราะข้อมูลใน column B มีการเพิ่มขึ้นหรือลดลงในแต่ละวันไม่เท่ากัน อยากให้สูตร column D มีความยืดหยุ่นโดยไม่ต้องไปแก้ ในcell column D ทุกครั้งที่ column B มีการเพิ่มขึ้นหรือลดลงของข้อมูลต้องทำอย่างไรคะ
ปรับตรงสีแดงครับ ปรับให้มากขึ้นไว้ล่วงหน้าได้เลยครับ
D4=IFERROR(INDEX($B$4:$B$100,MATCH(0,IF(LEFT($B$4:$B$100)+0>=4,COUNTIF(E$3:E34,$B$4:$B$100)),0)),"")

Re: ต้องหาหาค่าที่ซ้ำกันมาแสดงว่าค่าเดียว

Posted: Thu Dec 21, 2017 9:11 am
by March201711
ถ้าใช้ Offset จะได้ไหมคะ

Re: ต้องหาหาค่าที่ซ้ำกันมาแสดงว่าค่าเดียว

Posted: Thu Dec 21, 2017 9:54 am
by puriwutpokin
March201711 wrote:ถ้าใช้ Offset จะได้ไหมคะ
ได้ครับ แต่จะการ ใช้ Offset อาจทำให้สูตรยาวและหนักได้ถ้าข้อมูลเยอะนะครับ ลองดูได้เลยครับ

Re: ต้องหาหาค่าที่ซ้ำกันมาแสดงว่าค่าเดียว

Posted: Thu Dec 21, 2017 9:56 am
by March201711
ต้องเขียนอย่างไรบ้างคะ ยังไม่ค่อยเข้าใจ offset นะคะ ช่วยอธิบายให้หน่อยได้ไหมคะ

Re: ต้องหาหาค่าที่ซ้ำกันมาแสดงว่าค่าเดียว

Posted: Thu Dec 21, 2017 10:02 am
by parakorn
ตัวอย่างสูตรตามด้านล่าง ลองทดสอบและประยุกต์ดูครับ :)
  1. ที่ D4 คีย์
    =IFERROR(INDEX(OFFSET($B$3,1,,COUNTA($B:$B)-1,),MATCH(0,IF(LEFT(OFFSET($B$3,1,,COUNTA($B:$B)-1,))+0>=4,COUNTIF(D$3:D3,OFFSET($B$3,1,,COUNTA($B:$B)-1,))),0)),"")
    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: Thu Dec 21, 2017 10:18 am
by March201711
ได้แล้วคะ :cp: ขอบคุณมากเลยนะ แต่สงสัยสูตรว่าทำไมในสตรต้องมี ,, 2 ครั้งคะ เช่น

OFFSET($B$3,1,,COUNTA($B:$B)-1,)

Re: ต้องหาหาค่าที่ซ้ำกันมาแสดงว่าค่าเดียว

Posted: Thu Dec 21, 2017 10:28 am
by parakorn
ไวยากรณ์ดังนี้ครับ offset( จุดเริ่ม , ให้เริ่มจากจุดเริ่มลงด้านล่างกี่บรรทัด(ถ้าใส่ค่าลบจะขึ้นข้างบนแทน) , ให้เริ่มจากจุดเริ่มไปทางขวากี่คอลัมน์(ถ้าใส่ค่าลบจะไปทางซ้ายแทน) , ความสูง , ความกว้าง)

ตัวอย่างคำอธิบายครับ

OFFSET($B$3,1,,COUNTA($B:$B)-1,) จึงเท่ากับ "เริ่ม" สูตรคำนวณ B3 , "ลงด้านล่าง" 1บรรทัด จึงเริ่มคลุมข้อมูลที่ B4 , "ไปทางขวา" 0 คอลัมน์(สมมติเริ่มสูตรคำนวณที่ A3 ต้องเปลี่ยนจาก 0 เป็น 1 เพราะไปทางขวา 1คอลัมน์) , "ความสูง" COUNTA($B:$B) ให้นับจำนวนข้อความ คอลัมภ์ B ทั้งคอลัมน์ -1 คือลบหัวข้อด้านบนสุด ซึ่งหากมีการคีย์ข้อมูลเพิ่มตัวเลขก็จะเพิ่มเรื่อยๆ ทำให้ความสูงเพิ่มขึ้นเรื่อยๆครับ , "ความกว้าง" ไม่มี เพราะเลือกฐานข้อมูลแค่คอลัมน์เดียวครับ

Re: ต้องหาหาค่าที่ซ้ำกันมาแสดงว่าค่าเดียว

Posted: Thu Dec 21, 2017 10:37 am
by March201711
เข้าใจแล้วคะ จะได้ไปประยุกต์ใช้กับงานอื่น ขอบคุณมากคะ :D

Re: ต้องหาหาค่าที่ซ้ำกันมาแสดงว่าค่าเดียว

Posted: Thu Dec 21, 2017 12:14 pm
by March201711
ถามอีกนิ้ดนึงคะ ถ้าเอาตั้งแต่ 4*** ถึง 7*** ต้องปรับแก้อย่างไรคะ

Re: ต้องหาหาค่าที่ซ้ำกันมาแสดงว่าค่าเดียว

Posted: Thu Dec 21, 2017 12:30 pm
by parakorn
ปรับเป็น =IFERROR(INDEX(OFFSET($B$2,1,,COUNTA($B:$B)-1,),MATCH(0,IF(LEFT(OFFSET($B$2,1,,COUNTA($B:$B)-1,))+0>=4,IF(LEFT(OFFSET($B$2,1,,COUNTA($B:$B)-1,))+0<8,COUNTIF(D$2:D2,OFFSET($B$2,1,,COUNTA($B:$B)-1,)))),0)),"") Ctrl+Shift+Enter ครับ

Re: ต้องหาหาค่าที่ซ้ำกันมาแสดงว่าค่าเดียว

Posted: Thu Dec 21, 2017 1:46 pm
by March201711
ขอบคุณมากคะ :cp:

Re: ต้องหาหาค่าที่ซ้ำกันมาแสดงว่าค่าเดียว

Posted: Thu Dec 21, 2017 4:44 pm
by March201711
สอบถามหน่อยคะ ทำไมเวลาใช้สูตร { } เครื่องจะประมวลผลช้าไหมคะ พอเขียนสูตรตามอาจารย์แล้วรู้สึกว่าเครื่องจะคำนวณนานขึ้นคะ