Page 1 of 1

แบ่งกลุ่มโดยอ้างอิงรหัส

Posted: Sat May 20, 2017 1:46 pm
by nengba
สวัสดีครับ

มีคำถามเรื่องการแบ่งกลุ่มคนโดยอ้างอิงรหัส ซึ่งบางคนมีหลายรหัส และตัวคั่นรหัสแต่ละตัวมีทั้ง Alt+Enter และ CHAR(10) ดังไฟล์แนบ

ถามว่าจะต้องเขียนสูตรอย่างไรครับ ?

Re: แบ่งกลุ่มโดยอ้างอิงรหัส

Posted: Sat May 20, 2017 4:35 pm
by puriwutpokin
ที่ F2=INDEX(A$2:A$16,SMALL(IF(ISNUMBER(SEARCH("X",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($C$2:$C$16,"Y6","X"),"Y7","X"),"Y8","X"),1)),ROW($A$2:$A$16)-ROW($A$2)+1),ROWS($F$2:$F2))) กด Shift+Ctrl+Enter คัดลอกลงครับ

Re: แบ่งกลุ่มโดยอ้างอิงรหัส

Posted: Sat May 20, 2017 8:56 pm
by nengba
ขอบคุณครับ :thup:

Re: แบ่งกลุ่มโดยอ้างอิงรหัส

Posted: Sat May 20, 2017 11:00 pm
by snasui
:D แถม Mmult อีกสูตรครับ

เซลล์ F2 คีย์

=IFERROR(INDEX(A$2:A$16,SMALL(IF(MMULT({1,1,1},TRANSPOSE(ISNUMBER(SEARCH({"y6","y7","y8"},$C$2:$C$16))+0))>0,TRANSPOSE(ROW($A$2:$A$16)-ROW($A$2)+1)),ROWS(F$2:F7))),"")

Ctrl+Shift+Enter > Copy ไปด้านขวาและลงด้านล่าง

ตรง {1,1,1} เลข 1 มี 3 ตัว จะต้องไปด้วยกันกับจำนวนค่าที่ต้องการค้นหาคือ {"y6","y7","y8"} หากจำนวนที่ต้องการค้นมีกี่ตัว จำนวนเลข 1 ในชุดแรกก็จะต้องมีจำนวนเท่านั้นครับ

Re: แบ่งกลุ่มโดยอ้างอิงรหัส

Posted: Sun May 21, 2017 2:01 pm
by nengba
ขอบคุณคุณคนควนครับ... ความรู้ใหม่ครับ

Re: แบ่งกลุ่มโดยอ้างอิงรหัส

Posted: Tue May 23, 2017 3:31 pm
by nengba
รบกวนถามเพิ่มเติมครับ

จากสูตร F2=IFERROR(INDEX(A$2:A$16,SMALL(IF(MMULT({1,1,1},TRANSPOSE(ISNUMBER(SEARCH({"y6","y7","y8"},$C$2:$C$16))+0))>0,TRANSPOSE(ROW($A$2:$A$16)-ROW($A$2)+1)),ROWS(F$2:F2))),"")

เพื่อความยืดหยุ่นในการเปลี่ยนแปลงรหัส จะปรับสูตรให้รับค่าตัวแปรจากตารางในคอลัมน์ L (ลิ้งค์มาจาก sheet หรือ file อื่น) ได้หรือไม่ครับ ?

Re: แบ่งกลุ่มโดยอ้างอิงรหัส

Posted: Tue May 23, 2017 10:07 pm
by snasui
:D ตัวอย่างสูตรครับ

เซลล์ F2 คีย์

=IFERROR(INDEX(A$2:A$16,SMALL(IF(MMULT(TRANSPOSE(IF($L$1:$L$8<>"",ROW($L$1:$L$8)^0,0)),TRANSPOSE(ISNUMBER(SEARCH(TRANSPOSE($L$1:$L$8),$C$2:$C$16))+0))>0,TRANSPOSE(ROW($A$2:$A$16)-ROW($A$2)+1)),ROWS(F$2:F2))),"")

Ctrl+Shift+Enter > Copy ไปด้านขวาและลงด้านล่าง

Re: แบ่งกลุ่มโดยอ้างอิงรหัส

Posted: Wed May 24, 2017 8:17 am
by nengba
ขอบคุณคุณคนควนครับ :thup:

พอจะมีเวลาช่วยอธิบายการทำงานของสูตรได้หรือไม่ครับ หลาย ๆ คำสั่งไม่เคยใช้เลยครับ MMULT ^0,0 .... :?:

Re: แบ่งกลุ่มโดยอ้างอิงรหัส

Posted: Wed May 24, 2017 10:10 pm
by snasui
:D ดูคำอธิบาย Mmult ที่ Link นี้ครับ viewtopic.php?t=8972

Re: แบ่งกลุ่มโดยอ้างอิงรหัส

Posted: Thu Jun 01, 2017 5:06 pm
by nengba
ขอบคุณครับ

Re: แบ่งกลุ่มโดยอ้างอิงรหัส

Posted: Wed Dec 06, 2017 10:30 pm
by nengba
เจอปัญหา เวลารหัสมีตัวเลขต่อท้าย เป็น 1 กับ 10 ครับ เช่น Y1 กับ Y10

ตามตัวอย่างในไฟล์แนบครับ

Re: แบ่งกลุ่มโดยอ้างอิงรหัส

Posted: Wed Dec 06, 2017 10:58 pm
by puriwutpokin
ปรับที่ D2=IFERROR(INDEX(A$2:A$16,SMALL(IF(MMULT({1},TRANSPOSE(ISNUMBER(SEARCH($E$1,IF(NOT(ISNUMBER(SEARCH("Y10",$B$2:$B$16))),$B$2:$B$16)))+0))>0,TRANSPOSE(ROW($A$2:$A$16)-ROW($A$2)+1)),ROWS(D$2:D2))),"") Ctrl+Shift+Enter > Copy ไปด้านขวาและลงด้านล่าง
ที่ K2=IFERROR(INDEX(A$2:A$16,SMALL(IF(MMULT(TRANSPOSE(IF($Q$1<>"",ROW($Q$1)^0,0)),TRANSPOSE(ISNUMBER(SEARCH(TRANSPOSE($Q$1),IF(NOT(ISNUMBER(SEARCH("Y10",$B$2:$B$16))),$B$2:$B$16)))+0))>0,TRANSPOSE(ROW($A$2:$A$16)-ROW($A$2)+1)),ROWS(K$2:K2))),"") Ctrl+Shift+Enter > Copy ไปด้านขวาและลงด้านล่าง

Re: แบ่งกลุ่มโดยอ้างอิงรหัส

Posted: Thu Dec 07, 2017 6:24 am
by nengba
ขอบคุณ คุณpuriwutpokin ครับ แต่ยังไม่ตรงกับความต้องการครับ

ต้องขอโทษที่ผมตั้งคำถามไม่ชัดเจน สื่อความหมาย ความต้องการไม่ถูกต้องครับ

ผมได้แก้ไขคำถามใหม่ พร้อมทั้งตัวอย่างตามไฟล์ที่แนบครับ

Re: แบ่งกลุ่มโดยอ้างอิงรหัส

Posted: Thu Dec 07, 2017 8:14 am
by puriwutpokin
nengba wrote:ขอบคุณ คุณpuriwutpokin ครับ แต่ยังไม่ตรงกับความต้องการครับ

ต้องขอโทษที่ผมตั้งคำถามไม่ชัดเจน สื่อความหมาย ความต้องการไม่ถูกต้องครับ

ผมได้แก้ไขคำถามใหม่ พร้อมทั้งตัวอย่างตามไฟล์ที่แนบครับ
ตามที่ทดสอบก็ตรงตามที่แสดงคำตอบมานะครับ ดูตามไฟล์แนบครับ

Re: แบ่งกลุ่มโดยอ้างอิงรหัส

Posted: Thu Dec 07, 2017 8:54 am
by nengba
ขอบคุณครับ

ถ้าเราไม่ต้องอ้างอิงรหัสที่ไม่ต้องการ คือถ้าตามตัวอย่าง ต้องการหา "Y1" ในสูตรไม่ต้องอ้างอิง "Y10" จะได้ไหมครับ ?

Re: แบ่งกลุ่มโดยอ้างอิงรหัส

Posted: Sat Dec 09, 2017 10:33 am
by snasui
:D ตัวอย่างสูตรตามด้านล่างครับ

ที่ E2 คีย์

=IFERROR(INDEX($A$2:$A$12,SMALL(IF(ISNUMBER(SEARCH(", "&$O$1&",",", "&SUBSTITUTE($B$2:$B$12,CHAR(10),", ")&",")),ROW($B$2:$B$12)-ROW($B$2)+1),ROWS(E$2:E2))),"")
Ctrl+Shift+Enter > Copy ลงด้านล่าง

เปลี่ยน $O$1 ในสูตรซึ่งปัจจุบันคือ Y1 เป็นการอ้างอิงเซลล์อื่นใดได้ตามต้องการ

Re: แบ่งกลุ่มโดยอ้างอิงรหัส

Posted: Sun Jun 10, 2018 8:24 pm
by nengba
ขอบคุณครับ