Page 1 of 1
จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Thu Jul 02, 2020 2:55 pm
by Totem

เรียนอาจารย์และเพื่อนสมาชิก
มีปัญหาการจัดกลุ่มชื่อ ตำแหน่ง และรหัส
จากสูตรเดิมใช้ไม่ได้ครับ
Code: Select all
=IFERROR(INDEX($A$2:$A$18,SMALL(IF(FREQUENCY(IF($A$2:$A$18<>"",IF($B$2:$B$18=$G2,IF($C$2:$C$18=I$1,MATCH($B$2:$B$18&$C$2:$C$18,$B$2:$B$18&$C$2:$C$18,0)))),ROW($A$2:$A$18)-ROW($A$2)+1),ROW($A$2:$A$18)-ROW($A$2)+1),ROWS(Q4:Q4))),"")
ขออธิบายดังนี้ ครับ
ใน column g , h เว้นแถว 1 บรรทัดเป็นตัวอย่าง
ข้อมูลจริงจะเว้นตามจำนวน NAME อาจจะมีมากกว่า 1 บรรทัดขึ้นไป
ให้จัดเรียง NAME ใน column A มาไว้ใน column I2:S24
ตาม code ที่กำหนดใน column c ให้ครบทุก code
ซึ่ง NAME แต่ละคน จะมีหลาย POSITION ซ้ำกัน แต่อยู่ใน code เดียวกัน ตามที่ระบายสีไว้
ขอบคุณครับ
จัดกลุ่มชื่อตำแหน่ง.xlsx
Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Thu Jul 02, 2020 6:33 pm
by Bo_ry
I2
=IF(VLOOKUP(LOOKUP("zz",$G$2:$G2),$B$2:$C$18,2,)=I$1,$H2&"","")
Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Thu Jul 02, 2020 10:40 pm
by Totem
Bo_ry wrote: Thu Jul 02, 2020 6:33 pm
I2
=IF(VLOOKUP(LOOKUP("zz",$G$2:$G2),$B$2:$C$18,2,)=I$1,$H2&"","")

ขอบคุณครับ ยังไม่ได้ตามต้องการครับ
ผมอาจจะอธิบายไม่ละเอียดครับ ขออธิบายเพิ่มเติม ดังนี้
1.ข้อมูลใน column A ถึง C ชื่อคน ตำแหน่ง รหัส เป็นการดึงออกมาจากระบบ แต่ละ column อาจไม่ได้อยู่ติดกัน
ตัวอย่างยกมาแต่ column ที่ใช้ ตามเงื่อนไข โดยข้อมูลจริงมี column อื่นๆ อีกหลาย column ครับ
2.ใน column G ที่เป็นตำแหน่งสร้างรอไว้และเว้นแถวเผื่อไว้ให้เพียงพอกับจำนวนคนไว้แล้ว
เมื่อนำข้อมูลใน column A ถึง C มาใช้
ให้ไปแสดงรายการชื่อคน NAME อยู่ใน column I ถึง S ตามรหัสและตำแหน่ง
3.เมือได้ข้อมูลรายชื่อไปอยู่ใน column I ถึง S อย่างถูกต้องแล้ว ใน column H ให้แสดงรายการชื่อตาม
column I ถึง S เรียงลงตามลำดับครับ
ขอบคุณครับ
Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Fri Jul 03, 2020 12:42 am
by Bo_ry
I2
=IF(VLOOKUP(LOOKUP("zz",$G$2:$G2),$B$2:$C$18,2,)=I$1,IFERROR(INDEX($A:$A,AGGREGATE(15,6,ROW($B$2:$B$18)/(LOOKUP("zz",$G$2:$G2)=$B$2:$B$18),MOD(ROWS(I$2:I2)-1,2)+1)),""),"")
Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Fri Jul 03, 2020 10:37 am
by Totem
Bo_ry wrote: Fri Jul 03, 2020 12:42 am
I2
=IF(VLOOKUP(LOOKUP("zz",$G$2:$G2),$B$2:$C$18,2,)=I$1,IFERROR(INDEX($A:$A,AGGREGATE(15,6,ROW($B$2:$B$18)/(LOOKUP("zz",$G$2:$G2)=$B$2:$B$18),MOD(ROWS(I$2:I2)-1,2)+1)),""),"")

จากตัวอย่างใช้ได้ นำไปใช้จริงยังขึ้น #N/A
=VLOOKUP(LOOKUP("zz",$G$2:$G2),$B$2:$C$18,2,)=I$1 #N/A
จัดกลุ่มชื่อตำแหน่ง.xlsx
Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Fri Jul 03, 2020 10:55 am
by Bo_ry
=IF(VLOOKUP(LOOKUP("ๆ",$G$2:$G2)&"*",$B$2:$C$18,2,)=I$1,IFERROR(INDEX($A:$A,AGGREGATE(15,6,ROW($B$2:$B$18)/(LOOKUP("ๆ",$G$2:$G2)&"*"=$B$2:$B$18),MOD(ROWS(I$2:I2)-1,2)+1)),""),"")
ทำให้ตำแหน่งเหมือนกันหน่อยนะ
Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Fri Jul 03, 2020 11:05 am
by Totem
Bo_ry wrote: Fri Jul 03, 2020 10:55 am
=IF(VLOOKUP(LOOKUP("ๆ",$G$2:$G2)&"*",$B$2:$C$18,2,)=I$1,IFERROR(INDEX($A:$A,AGGREGATE(15,6,ROW($B$2:$B$18)/(LOOKUP("ๆ",$G$2:$G2)&"*"=$B$2:$B$18),MOD(ROWS(I$2:I2)-1,2)+1)),""),"")
ทำให้ตำแหน่งเหมือนกันหน่อยนะ

ขอโทษทีครับ พิมพ์เร็วไปหน่อยครับ
Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Fri Jul 03, 2020 11:24 am
by Totem
Bo_ry wrote: Fri Jul 03, 2020 10:55 am
=IF(VLOOKUP(LOOKUP("ๆ",$G$2:$G2)&"*",$B$2:$C$18,2,)=I$1,IFERROR(INDEX($A:$A,AGGREGATE(15,6,ROW($B$2:$B$18)/(LOOKUP("ๆ",$G$2:$G2)&"*"=$B$2:$B$18),MOD(ROWS(I$2:I2)-1,2)+1)),""),"")
ทำให้ตำแหน่งเหมือนกันหน่อยนะ

ตำแหน่งตรงกันแล้ว ไม่แสดงรายการครับ
จัดกลุ่มชื่อตำแหน่ง.xlsx
Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Fri Jul 03, 2020 12:15 pm
by Bo_ry
=IF(VLOOKUP(LOOKUP("ๆ",$G$2:$G2)&"*",$B$2:$C$18,2,)=I$1,IFERROR(INDEX($A:$A,AGGREGATE(15,6,ROW($B$2:$B$18)/(LOOKUP("ๆ",$G$2:$G2)=$B$2:$B$18),MOD(ROWS(I$2:I2)-1,2)+1)),""),"")
Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Fri Jul 03, 2020 1:54 pm
by Totem
Bo_ry wrote: Fri Jul 03, 2020 12:15 pm
=IF(VLOOKUP(LOOKUP("ๆ",$G$2:$G2)&"*",$B$2:$C$18,2,)=I$1,IFERROR(INDEX($A:$A,AGGREGATE(15,6,ROW($B$2:$B$18)/(LOOKUP("ๆ",$G$2:$G2)=$B$2:$B$18),MOD(ROWS(I$2:I2)-1,2)+1)),""),"")

=VLOOKUP(LOOKUP("ๆ",$G$2:$G2)&"*",$B$2:$C$18,2,)=I$1 ใช่ได้
แต่ตรงนี้ ยัง (LOOKUP("ๆ",$G$2:$G2)=$B$2:$B$18) ยังเป็น FALSE ครับ
คือว่าจากสูตร Lookup เข้าใจว่าไม่ครอบคลุม เนื่องจาก position ในแต่ละตำแหน่งมีความหลากหลายไม่เหมือนกัน หากวันนี้กำหนดโดย LOOKUP("ๆ"...
แล้ว ในอนาคตการทำงานย่อมมีการเพิ่ม position มาอีกหรือมีการตัดออกไป และตำแหน่งมีจำนวนมาก การใช้ Lookup จะใช่ไม่หรือไม่ครับ
ซึ่งที่ต้องการคือตำแหน่งที่ใส่ไป เป็นกำหนดตัวอย่างตำแหน่งว่า ไม่ว่าจะเป็นตัวอักษรอะไรก็ตาม ย่อมแสดงรายการออกมาได้โดยไม่ติดขัดว่าจะต้องเป็นกำหนดตัวอักษรใดๆ ครับ
ณ ปัจจุบันปรับแล้ว
Code: Select all
INDEX($A:$A,AGGREGATE(15,6,ROW($C$2:$C$900)/(LOOKUP("ๆ",$N$2:$N2)&"*"=$C$2:$C$900),MOD(ROWS(P$2:P2)-1,2)+1)),"")
เป็น #NUM! ทำให้ยังไม่ได้ตามต้องการครับ
ขอบคุณครับ
Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Fri Jul 03, 2020 2:01 pm
by Totem
Totem wrote: Thu Jul 02, 2020 2:55 pm

เรียนอาจารย์และเพื่อนสมาชิก
มีปัญหาการจัดกลุ่มชื่อ ตำแหน่ง และรหัส
จากสูตรเดิมใช้ไม่ได้ครับ
Code: Select all
=IFERROR(INDEX($A$2:$A$18,SMALL(IF(FREQUENCY(IF($A$2:$A$18<>"",IF($B$2:$B$18=$G2,IF($C$2:$C$18=I$1,MATCH($B$2:$B$18&$C$2:$C$18,$B$2:$B$18&$C$2:$C$18,0)))),ROW($A$2:$A$18)-ROW($A$2)+1),ROW($A$2:$A$18)-ROW($A$2)+1),ROWS(Q4:Q4))),"")
ขออธิบายดังนี้ ครับ
ใน column g , h เว้นแถว 1 บรรทัดเป็นตัวอย่าง
ข้อมูลจริงจะเว้นตามจำนวน NAME อาจจะมีมากกว่า 1 บรรทัดขึ้นไป
ให้จัดเรียง NAME ใน column A มาไว้ใน column I2:S24
ตาม code ที่กำหนดใน column c ให้ครบทุก code
ซึ่ง NAME แต่ละคน จะมีหลาย POSITION ซ้ำกัน แต่อยู่ใน code เดียวกัน ตามที่ระบายสีไว้
ขอบคุณครับ
จัดกลุ่มชื่อตำแหน่ง.xlsx
ขอบคุณครับ
จากสูตรเดิมนี้หาได้ครับ แต่หาได้คนเดียวครับ
Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Fri Jul 03, 2020 5:39 pm
by Bo_ry
Num ตรงไหน
แต่หาได้คนเดียว ตรงไหน
Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Fri Jul 03, 2020 10:57 pm
by Totem
Bo_ry wrote: Fri Jul 03, 2020 5:39 pm
Num ตรงไหน
แต่หาได้คนเดียว ตรงไหน
หมายถึง สูตรเดิมครับ
Code: Select all
=IFERROR(INDEX($A$2:$A$18,SMALL(IF(FREQUENCY(IF($A$2:$A$18<>"",IF($B$2:$B$18=$G2,IF($C$2:$C$18=I$1,MATCH($B$2:$B$18&$C$2:$C$18,$B$2:$B$18&$C$2:$C$18,0)))),ROW($A$2:$A$18)-ROW($A$2)+1),ROW($A$2:$A$18)-ROW($A$2)+1),ROWS(Q4:Q4))),"")
ผมลองทำใหม่แล้วไม่เกิด Num เข้าใจผิดครับ
ปัญหาที่พบคือ
1.หากมีข้อมูลใน column A ถึง C เพิ่มขึ้น เช่น
ที่ช่อง a16 > aaa
ที่ช่อง b16 > hhhh
ที่ช่อง c16 > DDDDDD
ที่ช่อง a17 > bbb
ที่ช่อง b17 > hhhh
ที่ช่อง c17 > DDDDDD
ทำให้สูตรในช่อง s23:s25 แสดงข้อมูลซ้ำกันคครั้งละ 2 บรรทัด W aaa W
ซึ่งที่ถูกต้อง W aaa bbb ตามลำดับ
ปัญหาการเว้นบรรทัด ได้แจ้งข้างต้นแล้วว่า
ใน column g , h เว้นแถว 1 บรรทัดเป็นตัวอย่าง
ข้อมูลจริงจะเว้นตามจำนวน NAME อาจจะมีมากกว่า 1 บรรทัดขึ้นไป
เช่น หากเป็นตำแหน่งผู้จัดการ อาจมี 2 คน , ผู้ช่วยผู้จัดการ อาจมี 4 คน , เจ้าหน้าที่ อาจมี 3 คน , คนงาน อาจมี 10 คน เป็นต้น
จึงเว้นบรรทัดเผื่อไว้ตามความเหมาะสมของตำแหน่ง
2. สูตรที่ให้มา ตรง LOOKUP("ๆ"... > "ๆ" ต้องเป็นพยัชญชนะ "ๆ" เสมอไปหรือไม่
หากในอนาตคมีชื่อตำแหน่งเกิดขึ้นมาใหม่จะทำให้สูตรแสดงรายการข้อมูลไม่ถูกต้องหรือไม่
เพราะหากมีความเกี่ยวเนื่องกันเป็นสาระสำคัญ เมื่อการกำหนดชื่อตำแหน่งใหม่่เกิดขึ้น จะทำให้สูตรแสดงรายการข้อมูลไม่ถูกต้อง
ขอบคุณครับ
จัดกลุ่มชื่อตำแหน่ง.xlsx
Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Fri Jul 03, 2020 11:19 pm
by Bo_ry
I2
=IF(VLOOKUP(LOOKUP("ๆ",$G$2:$G2)&"*",$B$2:$C$18,2,)=I$1,IFERROR(INDEX($A:$A,AGGREGATE(15,6,ROW($B$2:$B$18)/(LOOKUP("ๆ",$G$2:$G2)=$B$2:$B$18),ROWS(G$1:G2)-MATCH("ๆ",$G$2:$G2))),""),"")
"ๆ" เป็นอักษรที่มีค่ามากกว่า ฮ ใช้หาคำสุดท้ายที่เว้นว่างไว้ได้ ถ้าไม่มีชื่อไหนที่มากกว่า "ๆๆ" ก็ใช้ได้หมด
https://www.facebook.com/XcWizard/posts ... 8149514947
Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Sat Jul 04, 2020 2:18 pm
by Totem
Bo_ry wrote: Fri Jul 03, 2020 11:19 pm
I2
=IF(VLOOKUP(LOOKUP("ๆ",$G$2:$G2)&"*",$B$2:$C$18,2,)=I$1,IFERROR(INDEX($A:$A,AGGREGATE(15,6,ROW($B$2:$B$18)/(LOOKUP("ๆ",$G$2:$G2)=$B$2:$B$18),ROWS(G$1:G2)-MATCH("ๆ",$G$2:$G2))),""),"")
"ๆ" เป็นอักษรที่มีค่ามากกว่า ฮ ใช้หาคำสุดท้ายที่เว้นว่างไว้ได้ ถ้าไม่มีชื่อไหนที่มากกว่า "ๆๆ" ก็ใช้ได้หมด
https://www.facebook.com/XcWizard/posts ... 8149514947

ขอบคุณครับ ได้ตามต้องการ
Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Sat Jul 04, 2020 9:35 pm
by Totem

ขอเพิ่มเติมเงื่อนไข
กรณี code ใน column c ข้อมูล และ column i ถึง s จัดแยก code แบ่งแยกเป็น column ละ code
เมื่อ NAME แสดงตามตำแหน่งได้แล้ว ให้ NAME ใน column i ถึง s จัดแยก code แบ่งแยกเป็น column
เช่น ชื่อ A ตำแหน่ง ผู้จัดการทั่วไป code AAAA ชื่อ A ไปแสดงในช่อง I2 ถูกต้องแล้ว
ชื่อ B ตำแหน่ง ผู้จัดการทั่วไป code CCCC ชื่อ B ไปแสดงในช่อง I2 ให้ไปอยู่ในช่อง J3 เป็นต้น
ให้จัดแบ่งตาม code ตาม column i ถึง s เพิ่มขึ้นมา
ขอบคุณครับ
จัดกลุ่มชื่อตำแหน่ง.xlsx
Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Sat Jul 04, 2020 10:27 pm
by Bo_ry
I2
=IFERROR(IF(INDEX($C:$C,AGGREGATE(15,6,ROW($B$2:$B$18)/(LOOKUP("ๆ",$G$2:$G2)=$B$2:$B$18),ROWS(G$1:G2)-MATCH("ๆ",$G$2:$G2)))=I$1,INDEX($A:$A,AGGREGATE(15,6,ROW($B$2:$B$18)/(LOOKUP("ๆ",$G$2:$G2)=$B$2:$B$18),ROWS(G$1:G2)-MATCH("ๆ",$G$2:$G2))),""),"")
Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Sun Jul 05, 2020 3:06 pm
by Totem
Bo_ry wrote: Sat Jul 04, 2020 10:27 pm
I2
=IFERROR(IF(INDEX($C:$C,AGGREGATE(15,6,ROW($B$2:$B$18)/(LOOKUP("ๆ",$G$2:$G2)=$B$2:$B$18),ROWS(G$1:G2)-MATCH("ๆ",$G$2:$G2)))=I$1,INDEX($A:$A,AGGREGATE(15,6,ROW($B$2:$B$18)/(LOOKUP("ๆ",$G$2:$G2)=$B$2:$B$18),ROWS(G$1:G2)-MATCH("ๆ",$G$2:$G2))),""),"")

ได้ตามต้องการ ขอบคุณครับ
ถ้าหากปรับสูตร =IFERROR(IF(INDEX($C:$C....,,INDEX($A:$A.....) ให้กำหนดช่วงข้อมูลได้ตามความต้องการกับการใช้งาน ไม่ให้ใช้ทั้ง column ปรับได้อย่างไร
ขอบคุณครับ
Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Sun Jul 05, 2020 8:10 pm
by Bo_ry
=IFERROR(IF(INDEX($C$2:$C$18,AGGREGATE(15,6,ROW($B$2:$B$18)/(LOOKUP("ๆ",$G$2:$G2)=$B$2:$B$18),ROWS(G$1:G2)-MATCH("ๆ",$G$2:$G2))-ROWS($B$1))=I$1,INDEX($A$2:$A$18,AGGREGATE(15,6,ROW($B$2:$B$18)/(LOOKUP("ๆ",$G$2:$G2)=$B$2:$B$18),ROWS(G$1:G2)-MATCH("ๆ",$G$2:$G2))-ROWS($B$1)),""),"")
Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส
Posted: Wed Jul 08, 2020 2:30 pm
by Totem
Bo_ry wrote: Sun Jul 05, 2020 8:10 pm
=IFERROR(IF(INDEX($C$2:$C$18,AGGREGATE(15,6,ROW($B$2:$B$18)/(LOOKUP("ๆ",$G$2:$G2)=$B$2:$B$18),ROWS(G$1:G2)-MATCH("ๆ",$G$2:$G2))-ROWS($B$1))=I$1,INDEX($A$2:$A$18,AGGREGATE(15,6,ROW($B$2:$B$18)/(LOOKUP("ๆ",$G$2:$G2)=$B$2:$B$18),ROWS(G$1:G2)-MATCH("ๆ",$G$2:$G2))-ROWS($B$1)),""),"")

ได้ตามต้องการ ขอบคุณครับ