Page 1 of 1
รายการชื่อซ้ำกันให้นำแผนกหลักหรือแผนกย่อยมีแสดงในคอลัมน์เดียวกัน
Posted: Sat Mar 28, 2020 10:52 pm
by Totem

เรียนอาจารย์และเพื่อนสมาชิกทุกท่านครับ
มีปัญหาสูตรไม่เป็นไปตามต้องการ ขออธิบายดังนี้
ในรายการ และ แผนก ในคอลัมน์ A และ คอลัมน์ B ได้ข้อมูลมา
รายการ แผนกหลัก และ แผนกย่อย เป็น คอลัมน์ G คอลัมน์ H และ คอลัมน์ J ตามลำดับ
เมื่อต้องการหารายการจากคอลัมน์ A แล้วในแสดงแผนกใน คอลัมน์ D
โดยพิจารณาข้อมูลชื่อรายการในคอลัมน์ G และชื่อแผนกหลักในคอลัมน์ H กับแผนกย่อยในคอลัมน์ J
ให้มาแสดงแผนกหลักหรือย่อยลงในคอลัมน์ D
ปัญหาจึงมีอยู่ว่า
1.รายการที่อยู่ในคอลัมน์ A ที่ช่อง A2 , A3 , A5 มีชื่อแผนกในคอลัมน์ B ไม่เหมือนกัน เพราะจะมีทั้งชื่อแผนกหลักและแผนกย่อยปะปนกันไป
ตัวอย่างคือ รายการ ghj ในช่อง G4 มี แผนกหลัก คือ กกกกก และ
แผนกย่อย ตั้งแต่ ช่อง J2 : J13 คือ กกกก1a ถึง กกกกก1aaaa
เมื่อรายการ และ แผนก ในคอลัมน์ A และ คอลัมน์ B
ที่ช่อง a3 = ghj และที่ช่อง b3 = กกกกก1opu
ให้แสดงชื่อแผนกย่อย กกกกก1opu เป็นต้น
2.รายการที่อยู่ในคอลัมน์ A ที่ช่อง A6 , A8 มีชื่อแผนกในคอลัมน์ B ไม่เหมือนกัน เพราะจะมีทั้งชื่อแผนกหลักและแผนกย่อยปะปนกันไปเช่นกัน
ตัวอย่างคือ รายการ aaa ในช่อง G6 มี แผนกหลัก คือ รรรรรลลลลล และ
แผนกย่อย ตั้งแต่ ช่อง J14 : J15 คือ รรรรร กับ ลลลลล
เมื่อรายการ และ แผนก ในคอลัมน์ A และ คอลัมน์ B
ที่ช่อง a6 = aaa และที่ช่อง b6 = รรรรร
ให้แสดงชื่อแผนกย่อย รรรรร เป็นต้น
สิ่งทีทำให้มีปัญหาคือในคอลัมน์ A ชื่อรายการซ้ำ และคอลัมน์ B ชื่อแผนก มีได้ทั้งแผนกหลักและแผนกย่อย
จึงต้องให้แสดงแผนกย่อยเป็นไปตามคอลัมน์ B
หากเป็นแผนกหลักก็เป็นไต้แผนกหลัก
ขอบคุณครับ
หลักและย่อย.xlsx
Re: รายการชื่อซ้ำกันให้นำแผนกหลักหรือแผนกย่อยมีแสดงในคอลัมน์เดียวกัน
Posted: Sun Mar 29, 2020 7:55 am
by snasui

ผมอ่านแล้วไม่เข้าใจ คงต้องให้ผู้ทเี่เข้าใจมาช่วยตอบครับ
คอลัมน์ B กับคอลัมน์ D เหมือนกันทุกประการ เลยไม่มีสิ่งที่จะทำให้เห็นว่าอะไรคือปัญหา ถ้าเหมือนทุกประการก็ควรนำคอลัมน์ B มาใช้โดยตรงไม่ต้องคำนวณหาอะไรเพิ่มอีกครับ
Re: รายการชื่อซ้ำกันให้นำแผนกหลักหรือแผนกย่อยมีแสดงในคอลัมน์เดียวกัน
Posted: Sun Mar 29, 2020 3:27 pm
by Totem

ขอบคุณครับ พอทำได้แล้ว จะปรับลองวิธีอื่นครับ
Re: รายการชื่อซ้ำกันให้นำแผนกหลักหรือแผนกย่อยมีแสดงในคอลัมน์เดียวกัน
Posted: Mon Mar 30, 2020 5:19 pm
by Totem

เรียนอาจารย์และเพื่อนสมาชิกทุกท่านครับ
ลองไปทำแล้วแต่ยังทำไม่ได้ครับ ขออธิบายปัญหาดังนี้
รายการ คอลัมน์ A และแผนกคอลัมน์ B มีแผนกที่ไม่ตรงตาม
ชุดข้อมูลที่ได้กำหนดไว้ใน คอลัมน์ G , H และ J
ชึ่งคอลัมน์ H มีแผนกหลักและมีแผนกที่ย่อย ในบางรายการ
และบางรายการ คอลัมน์ G , H มีแต่แผนกหลัก
เมื่อนำคอลัมน์ G , H และ J มีเปรียบเทียบกับรายการ คอลัมน์ A และแผนกคอลัมน์ B
ใส่สูตรแล้วลงในคอลัมน์ E เปรียบเทียบกับคอลัมน์ B
แต่แผนกที่ปรากฎในคอลัมน์ E ยังไม่ต้องตามที่ต้องการ
ขอบคุณครับ
หลักและย่อย.xlsx
Re: รายการชื่อซ้ำกันให้นำแผนกหลักหรือแผนกย่อยมีแสดงในคอลัมน์เดียวกัน
Posted: Mon Mar 30, 2020 5:58 pm
by snasui

ตัวอย่างสูตรครับ
เซลล์ E2 คีย์
=LOOKUP(CHAR(255),CHOOSE({1,2},LOOKUP(2,1/($J$2:$J$17=B2),$J$2:$J$17),INDEX($H$2:$H$17,MATCH(D2,$G$2:$G$17,0))))
Enter > Copy ลงด้านล่าง
Re: รายการชื่อซ้ำกันให้นำแผนกหลักหรือแผนกย่อยมีแสดงในคอลัมน์เดียวกัน
Posted: Tue Mar 31, 2020 11:13 am
by Totem
snasui wrote: Mon Mar 30, 2020 5:58 pm

ตัวอย่างสูตรครับ
เซลล์ E2 คีย์
=LOOKUP(CHAR(255),CHOOSE({1,2},LOOKUP(2,1/($J$2:$J$17=B2),$J$2:$J$17),INDEX($H$2:$H$17,MATCH(D2,$G$2:$G$17,0))))
Enter > Copy ลงด้านล่าง
สูตรตรงตามต้องการครับ ขอบคุณครับ
Re: รายการชื่อซ้ำกันให้นำแผนกหลักหรือแผนกย่อยมีแสดงในคอลัมน์เดียวกัน
Posted: Tue Mar 31, 2020 11:18 am
by Totem

แต่มีปัญหาที่ยังมีเงื่อนไขเพิ่มเติม
ขออธิบายดังนี้
รายการและแผนกในชุดข้อมูล คอลัมน์ G , H , J
เฉพาะกรณีที่เป็นรายการและแผนกหลักและย่อยที่มีปัญหา เช่น
1.เมื่อ รายการ ในคอลัมน์ A
ช่อง A6 = gf
แผนก ในคอลัมน์ B
ช่อง B6 = กกกกก1d เป็นแผนกย่อย ที่ถูกต้องแล้ว
ให้ช่อง E6 = กกกกก1d ไม่ต้องเปลี่ยนกลับไปเป็นแผนกหลัก กกกกก
2.เมื่อ รายการ ในคอลัมน์ A
ช่อง A8 = ij
แผนก ในคอลัมน์ B
ช่อง B8 = รรรรร เป็นแผนกย่อย ที่ถูกต้องแล้ว
ให้ช่อง E8 = รรรรร ไม่ต้องเปลี่ยนกลับไปเป็นแผนกหลัก รรรรรลลลลล
ขอบคุณครับ
หลักและย่อย.xlsx
Re: รายการชื่อซ้ำกันให้นำแผนกหลักหรือแผนกย่อยมีแสดงในคอลัมน์เดียวกัน
Posted: Tue Mar 31, 2020 7:20 pm
by snasui

ช่วยอธิบายคำว่าเป็น "แผนกย่อยที่ถูกต้องแล้ว" มาอย่างละเอียดครับ
มีหลักเกณฑ์การพิจารณาอย่างไรว่าแผนกย่อยนั้น ๆ ถือเป็นแผนกย่อยของแผนกหลักใด

Re: รายการชื่อซ้ำกันให้นำแผนกหลักหรือแผนกย่อยมีแสดงในคอลัมน์เดียวกัน
Posted: Tue Mar 31, 2020 10:25 pm
by Totem

กรณี แผนกหลักที่ขึ้นต้นด้วย กกกกก แล้ว แผนกย่อย กกกกก??? ต่อท้ายตามด้วย 1a , 1b , ถีง ... 1aaaa เป็นแผนกย่อย (ข้อมูลจริงแผนกหลักอาจมีตัวอักษรมากกว่านี้ แต่จะมีตัวต่อท้ายแตกต่างกันไป)
เช่น แผนกเสื้อผ้า เป็นแผนกหลัก
แผนกเสื้อผ้าเด็กอ่อน , แผนกเสี้อผ้าเด็กเล็ก , แผนกเสื้อผ้าผู้ใหญ่ ฯลฯ เป็นแผนกย่อย เป็นต้น
หากข้อมูลเข้าไปอยู่ในแผนกย่อยแล้ว ก็เป็นส่วนหนึ่งของแผนกหลัก อยู่ในกลุ่มเดียวกันแล้วให้เป็นไปตามชื่อแผนกย่อยครับ
กรณี แผนกหลัก ชื่อ รรรรรลลลลล แล้ว ในแผนกย่อยชื่อ รรรรร หรือ ลลลลล อย่่างใดอย่างหนึ่งที่ตรงกับชื่อแผนกหลัก ก็เป็นส่วนหนึ่งของแผนกหลัก อยู่ในกลุ่มเดียวกันแล้วให้เป็นไปตามชื่อแผนกย่อยครับ
เช่น แผนกเครื่องใช้ไฟฟ้าเครื่องเสียง เป็นแผนกหลัก
แผนกเครื่องใช้ไฟฟ้า , เครื่องเสียง เป็นแผนกย่อย เป็นต้น
Re: รายการชื่อซ้ำกันให้นำแผนกหลักหรือแผนกย่อยมีแสดงในคอลัมน์เดียวกัน
Posted: Tue Mar 31, 2020 11:00 pm
by Bo_ry
แบบนี้มั้ง
E2
=IF(VLOOKUP(D2,$G$2:$H$17,2,0)=LEFT(B2,LEN(VLOOKUP(D2,$G$2:$H$17,2,0))),B2,VLOOKUP(D2,$G$2:$H$17,2,0))
Re: รายการชื่อซ้ำกันให้นำแผนกหลักหรือแผนกย่อยมีแสดงในคอลัมน์เดียวกัน
Posted: Tue Mar 31, 2020 11:18 pm
by puriwutpokin
Bo_ry wrote: Tue Mar 31, 2020 11:00 pm
แบบนี้มั้ง
E2
=IF(VLOOKUP(D2,$G$2:$H$17,2,0)=LEFT(B2,LEN(VLOOKUP(D2,$G$2:$H$17,2,0))),B2,VLOOKUP(D2,$G$2:$H$17,2,0))
ผู้ตอบกระทู้ ดูเรื่อง กฎข้อ1 ด้วยครับ ขอบคุณครับ
Re: รายการชื่อซ้ำกันให้นำแผนกหลักหรือแผนกย่อยมีแสดงในคอลัมน์เดียวกัน
Posted: Wed Apr 01, 2020 9:03 am
by Totem
Bo_ry wrote: Tue Mar 31, 2020 11:00 pm
แบบนี้มั้ง
E2
=IF(VLOOKUP(D2,$G$2:$H$17,2,0)=LEFT(B2,LEN(VLOOKUP(D2,$G$2:$H$17,2,0))),B2,VLOOKUP(D2,$G$2:$H$17,2,0))

ขอบคุณครับ ยังไม่ได้ตามต้องการครับ ช่อง E7 = รรรรรลลลลล ยังไม่ถูกต้องครับ ต้องได้ รรรรร ครับ
Re: รายการชื่อซ้ำกันให้นำแผนกหลักหรือแผนกย่อยมีแสดงในคอลัมน์เดียวกัน
Posted: Wed Apr 01, 2020 9:48 am
by Bo_ry

ขอบคุณครับ ยังไม่ได้ตามต้องการครับ ช่อง E7 = รรรรรลลลลล ยังไม่ถูกต้องครับ ต้องได้ รรรรร ครับ
แบบนี้กระมัง
E2
=IF((ISNUMBER(SEARCH(B2,VLOOKUP(D2,$G$2:$H$17,2,0)))*(COUNTIFS(A$1:A2,A2)=1))+ISNUMBER(SEARCH(VLOOKUP(D2,$G$2:$H$17,2,0),B2)),B2,VLOOKUP(D2,$G$2:$H$17,2,0))
หรือถ้า E8 ต้องได้ รรรรร แบบนี้กระมัง
E2
=IF((ISNUMBER(SEARCH(B2,VLOOKUP(D2,$G$2:$H$17,2,0)))*COUNTIFS(A$1:A1,A2))+ISNUMBER(SEARCH(VLOOKUP(D2,$G$2:$H$17,2,0),B2)),B2,VLOOKUP(D2,$G$2:$H$17,2,0))
Re: รายการชื่อซ้ำกันให้นำแผนกหลักหรือแผนกย่อยมีแสดงในคอลัมน์เดียวกัน
Posted: Wed Apr 01, 2020 11:06 am
by Totem
Bo_ry wrote: Wed Apr 01, 2020 9:48 am

ขอบคุณครับ ยังไม่ได้ตามต้องการครับ ช่อง E7 = รรรรรลลลลล ยังไม่ถูกต้องครับ ต้องได้ รรรรร ครับ
แบบนี้กระมัง
E2
=IF((ISNUMBER(SEARCH(B2,VLOOKUP(D2,$G$2:$H$17,2,0)))*(COUNTIFS(A$1:A2,A2)=1))+ISNUMBER(SEARCH(VLOOKUP(D2,$G$2:$H$17,2,0),B2)),B2,VLOOKUP(D2,$G$2:$H$17,2,0))
หรือถ้า E8 ต้องได้ รรรรร แบบนี้กระมัง
E2
=IF((ISNUMBER(SEARCH(B2,VLOOKUP(D2,$G$2:$H$17,2,0)))*COUNTIFS(A$1:A1,A2))+ISNUMBER(SEARCH(VLOOKUP(D2,$G$2:$H$17,2,0),B2)),B2,VLOOKUP(D2,$G$2:$H$17,2,0))

ทั้ง 2 สูตร ทำให้ ช่อง B7 และ B8 ไม่ได้ รรรรร พร้อมกัน อยากให้ทั้งช่อง B7 , B8 ได้ รรรรร สูตรที่ให้มาใกล้ได้คำตอบแล้วครับ
ขอบคุณครับ
Re: รายการชื่อซ้ำกันให้นำแผนกหลักหรือแผนกย่อยมีแสดงในคอลัมน์เดียวกัน
Posted: Wed Apr 01, 2020 11:37 am
by Bo_ry
แบบนี้กระมัง
=IF(ISNUMBER(SEARCH(B2,VLOOKUP(D2,$G$2:$H$17,2,0)))+ISNUMBER(SEARCH(VLOOKUP(D2,$G$2:$H$17,2,0),B2)),B2,VLOOKUP(D2,$G$2:$H$17,2,0))
Re: รายการชื่อซ้ำกันให้นำแผนกหลักหรือแผนกย่อยมีแสดงในคอลัมน์เดียวกัน
Posted: Wed Apr 01, 2020 2:45 pm
by Totem
Bo_ry wrote: Wed Apr 01, 2020 11:37 am
แบบนี้กระมัง
=IF(ISNUMBER(SEARCH(B2,VLOOKUP(D2,$G$2:$H$17,2,0)))+ISNUMBER(SEARCH(VLOOKUP(D2,$G$2:$H$17,2,0),B2)),B2,VLOOKUP(D2,$G$2:$H$17,2,0))

ยังไม่ได้ตามการ จากสูตรที่ให้มา ใส่ไว้อยู่ในคอลัมน์ E ช่อง B7 และ B8 ได้ รรรรร ทั้ง2ช่อง
แต่นำไปใช้แล้วยังไม่ได้ครับ โดยแสดงให้เห็นใน sheet2 ลองใส่ข้อมูลเข้าไปในช่อง B6 = เสื้อผ้าเด็ก , ช่อง B8 = เสื้อผ้าทั่วไป , ช่อง B11 = เสื้อผ้าเด็กอ่อน ใช้สูตรในคอลัมน์ E ไม่ตรงตามต้องการครับ แล้วยังทำให้ช่อง E3 , E4 ไม่ตรงกับที่ต้องการ
ผมได้ปรับสูตรที่อาจารย์ให้มาในตอนแรกได้ผลใกล้เคียงมาก โดยเพิ่มคอลัมน์ G ช่วย
สูตร
=IFERROR(IF(LOOKUP(CHAR(255),CHOOSE({1,2},LOOKUP(2,1/($K$2:$K$17=B2),$K$2:$K$17),INDEX($I$2:$I$17,MATCH(A2,$H$2:$H$17,0))))=F2,B2,INDEX($K$2:$K$17,MATCH(A2,$H$2:$H$17,0))),LOOKUP(CHAR(255),CHOOSE({1,2},LOOKUP(2,1/($K$2:$K$17=B2),$K$2:$K$17),INDEX($I$2:$I$17,MATCH(A2,$H$2:$H$17,0)))))
แต่ติดปัญหาอยู่ตรงที่เดียวคือ ช่อง G15 =ออ ไม่ใช่ ลลลลล ครับ
พิจารณาด้วยครับ
ขอบคุณครับ
หลักและย่อยใหม่.xlsx
Re: รายการชื่อซ้ำกันให้นำแผนกหลักหรือแผนกย่อยมีแสดงในคอลัมน์เดียวกัน
Posted: Wed Apr 01, 2020 6:47 pm
by Bo_ry
เอาสูตรออกให้หมด ใส่ข้อมูลจริง แล้วใส่คำตอบที่ถูกต้องมาเลย
เพราะข้อมูลตัวอย่าง
แผนกหลัก ชื่อ รรรรรลลลลล แล้ว ในแผนกย่อยชื่อ รรรรร หรือ ลลลลล อย่างใดอย่างหนึ่งที่ตรงกับชื่อแผนกหลัก
ไม่เหมือนกับข้อมูลจริงเลย
แผนกหลัก ชื่อ เสื้อผ้าทั่วไป แล้ว ในแผนกย่อยชื่อ เสื้อผ้าเด็ก หรือ เสื้อผ้าเด็กอ่อน กลายเป็นแค่มีคำหน้าตรงกัน
ถ้าจะให้สูตรใช้ได้ คือ I4 ใส่แค่ เสื้อผ้า ลบ ทั่วไป ออก
Re: รายการชื่อซ้ำกันให้นำแผนกหลักหรือแผนกย่อยมีแสดงในคอลัมน์เดียวกัน
Posted: Thu Apr 02, 2020 5:16 pm
by Totem
Bo_ry wrote: Wed Apr 01, 2020 6:47 pm
เอาสูตรออกให้หมด ใส่ข้อมูลจริง แล้วใส่คำตอบที่ถูกต้องมาเลย
เพราะข้อมูลตัวอย่าง
แผนกหลัก ชื่อ
รรรรรลลลลล แล้ว ในแผนกย่อยชื่อ
รรรรร หรือ
ลลลลล อย่างใดอย่างหนึ่งที่ตรงกับชื่อแผนกหลัก
ไม่เหมือนกับข้อมูลจริงเลย
แผนกหลัก ชื่อ
เสื้อผ้าทั่วไป แล้ว ในแผนกย่อยชื่อ
เสื้อผ้าเด็ก หรือ
เสื้อผ้าเด็กอ่อน กลายเป็นแค่มีคำหน้าตรงกัน
ถ้าจะให้สูตรใช้ได้ คือ I4 ใส่แค่ เสื้อผ้า ลบ ทั่วไป ออก
ถ้าจะให้สูตรใช้ได้ คือ I4 ใส่แค่ เสื้อผ้า ลบ ทั่วไป ออก
ปรับตามนี้ไปก่อนครับ ถ้ายังไม่ได้อย่างไรจะใส่ข้อมูลมาให้ใหม่ครับ ขอบคุณครับ