Page 1 of 1

จัดกลุ่มชื่อ ตำแหน่ง และรหัส

Posted: Thu Jul 02, 2020 2:55 pm
by Totem
:D เรียนอาจารย์และเพื่อนสมาชิก
มีปัญหาการจัดกลุ่มชื่อ ตำแหน่ง และรหัส
จากสูตรเดิมใช้ไม่ได้ครับ

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&"","")
:D ขอบคุณครับ ยังไม่ได้ตามต้องการครับ
ผมอาจจะอธิบายไม่ละเอียดครับ ขออธิบายเพิ่มเติม ดังนี้
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)),""),"")
:D จากตัวอย่างใช้ได้ นำไปใช้จริงยังขึ้น #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)),""),"")

ทำให้ตำแหน่งเหมือนกันหน่อยนะ
:D ขอโทษทีครับ พิมพ์เร็วไปหน่อยครับ

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)),""),"")

ทำให้ตำแหน่งเหมือนกันหน่อยนะ
:D ตำแหน่งตรงกันแล้ว ไม่แสดงรายการครับ

จัดกลุ่มชื่อตำแหน่ง.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)),""),"")
:D =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 :D เรียนอาจารย์และเพื่อนสมาชิก
มีปัญหาการจัดกลุ่มชื่อ ตำแหน่ง และรหัส
จากสูตรเดิมใช้ไม่ได้ครับ

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 ตรงไหน
แต่หาได้คนเดียว ตรงไหน
:D

Code: Select all

หาได้คนเดียว ตรงไหน
หมายถึง สูตรเดิมครับ

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))),"")

Code: Select all

Num ตรงไหน
ผมลองทำใหม่แล้วไม่เกิด 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
:D ขอบคุณครับ ได้ตามต้องการ

Re: จัดกลุ่มชื่อ ตำแหน่ง และรหัส

Posted: Sat Jul 04, 2020 9:35 pm
by Totem
:D ขอเพิ่มเติมเงื่อนไข
กรณี 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))),""),"")
:D ได้ตามต้องการ ขอบคุณครับ

ถ้าหากปรับสูตร =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)),""),"")

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