Page 1 of 1
ค้นหาชื่อและกลุ่มที่กำหนดไว้ แล้วสามารถนำรายการที่ต้องการมาใช้
Posted: Fri Jun 12, 2015 2:20 pm
by Totem

เรียนอาจารย์และเพื่อน ๆ สมาชิก
การใช้สูตรค้นหาข้อมูลแล้วยังไม่ได้คำตอบที่ครบถ้วนตามที่ต้องการครับ
สูตรที่ใช้อยู่ที่ ช่อง C2:C24
มีคำถามที่จะถามดังนี้
1.ในคอลัมน์ A มีชื่อ ข คือ A20,A21,A22 ซ้ำในแต่ละกลุ่มดังนี้ กลุ่ม AA คือช่อง F8 , กลุ่ม BB คือช่อง J9 ,
กลุ่ม CC คือช่อง N9
เช่น ช่อง D20 คำตอบคือ EE1 ได้จากช่อง A20 = F8 และช่อง B20 ไม่เท่ากับ HH1 นำค่าที่ช่อง B20 มาตอบ
ช่อง D21 คำตอบคือ BB ได้จากช่อง A21 = J9 และช่อง B21 ไม่เท่ากับ L1 นำค่าที่ช่อง L1 มาตอบ
ช่อง D22 คำตอบคือ CC ได้จากช่อง A22 = N9 และช่อง B22 ไม่เท่ากับ P1 นำค่าที่ช่อง P1 มาตอบ
2.ในคอลัมน์ A มีชื่อ ก คือ A23,A24 ซ้ำในแต่ละกลุ่มดังนี้ กลุ่ม BB คือ J8 , กลุ่ม CC คือ N8
เช่น ช่อง D23 คำตอบคือ DD1 ได้จากช่อง A21 = J9 และช่อง B23 ไม่เท่ากับ L1 นำค่าที่ช่อง B23 มาตอบ
ช่อง D24 คำตอบคือ CC ได้จากช่อง A22 = N9 และช่อง B24 ไม่เท่ากับ P1 นำค่าที่ช่อง P1 มาตอบ
ช่วยแก้ไขสูตรให้ด้วยครับ
ขอบคุณครับ
SEARCH.xlsx
Re: ค้นหาชื่อและกลุ่มที่กำหนดไว้ แล้วสามารถนำรายการที่ต้องการมาใช้
Posted: Fri Jun 12, 2015 4:32 pm
by DhitiBank
ขอโทษนะครับ พอดีอ่านแล้ว... งงมาก
พอจับเค้าได้ว่ามีข้อมูลชื่อ 2 กลุ่มใหญ่ๆ คือ ชื่อซ้ำ กับไม่ซ้ำ หากชื่อซ้ำก็ต้องทำแบบที่คุณได้อธิบายมา
คราวนี้ก่อนอื่น ช่วยอธิบายชื่อที่ไม่ซ้ำหน่อยได้ไหมครับ ว่าทำไมถึงได้คำตอบแบบนั้น เพราะจากตัวอย่างมีข้อมูลชื่อจาก 3 กลุ่ม คือ AA, BB และ CC ทำไมเวลาเอามาหากลุ่มที่ถูกต้อง กลุ่ม BB กับ CC คำตอบที่ถูกเป็นชื่อกลุ่มโดยไม่มีตัวเลขตามหลัง แต่กลุ่ม AA กลับมีเลขตามหลังหมดเลย ทั้งๆ ที่เป็นชื่อไม่ซ้ำเหมือนกัน
Re: ค้นหาชื่อและกลุ่มที่กำหนดไว้ แล้วสามารถนำรายการที่ต้องการมาใช้
Posted: Mon Jun 15, 2015 10:23 am
by Totem
DhitiBank wrote:ขอโทษนะครับ พอดีอ่านแล้ว... งงมาก
พอจับเค้าได้ว่ามีข้อมูลชื่อ 2 กลุ่มใหญ่ๆ คือ ชื่อซ้ำ กับไม่ซ้ำ หากชื่อซ้ำก็ต้องทำแบบที่คุณได้อธิบายมา
คราวนี้ก่อนอื่น ช่วยอธิบายชื่อที่ไม่ซ้ำหน่อยได้ไหมครับ ว่าทำไมถึงได้คำตอบแบบนั้น เพราะจากตัวอย่างมีข้อมูลชื่อจาก 3 กลุ่ม คือ AA, BB และ CC ทำไมเวลาเอามาหากลุ่มที่ถูกต้อง กลุ่ม BB กับ CC คำตอบที่ถูกเป็นชื่อกลุ่มโดยไม่มีตัวเลขตามหลัง แต่กลุ่ม AA กลับมีเลขตามหลังหมดเลย ทั้งๆ ที่เป็นชื่อไม่ซ้ำเหมือนกัน

ขอปรับเปลี่ยนคำถาม และแนบไฟล์มาให้ใหม่ครับ
คำถาม
1.ในคอลัมน์ A มีชื่อ ข คือ A2,A3,A4 ซ้ำในแต่ละกลุ่มดังนี้ กลุ่ม AA คือช่อง F2 , กลุ่ม BB คือช่อง J3 , กลุ่ม CC คือช่อง N3
เช่น ช่อง D2 คำตอบคือ EE1 ได้จากช่อง A2 = F2 และช่อง B2 ไม่เท่ากับ HH1 นำค่าที่ช่อง B2 มาตอบ
ช่อง D3 คำตอบคือ BB ได้จากช่อง A3 = J3 และช่อง B3 ไม่เท่ากับ L1 นำค่าที่ช่อง L1 มาตอบ
ช่อง D4 คำตอบคือ CC ได้จากช่อง A4 = N3 และช่อง B4 ไม่เท่ากับ P1 นำค่าที่ช่อง P1 มาตอบ
2.ในคอลัมน์ A มีชื่อ ก คือ A5,A6 ซ้ำในแต่ละกลุ่มดังนี้ กลุ่ม BB คือ J2 , กลุ่ม CC คือ N2
เช่น ช่อง D5 คำตอบคือ DD1 ได้จากช่อง A5 = J2 และช่อง B5 ไม่เท่ากับ L1 นำค่าที่ช่อง B5 มาตอบ
ช่อง D6 คำตอบคือ CC ได้จากช่อง A6 = N2 และช่อง B6 ไม่เท่ากับ P1 นำค่าที่ช่อง P1 มาตอบ
SEARCH2.xlsx
Re: ค้นหาชื่อและกลุ่มที่กำหนดไว้ แล้วสามารถนำรายการที่ต้องการมาใช้
Posted: Mon Jun 15, 2015 12:37 pm
by DhitiBank
ลองแบบนี้ครับ
ที่ D2 คีย์
=IF(COUNTIF(A$2:A3,A3)=1,
IF(INDIRECT(ADDRESS(1,SMALL(IF(ISNUMBER(SEARCH(A3,$F$2:$N$3)),COLUMN($F$2:$N$3)),COUNTIF(A$2:A3,A3))+2))<>LEFT(B3,2),B3,INDIRECT(ADDRESS(1,SMALL(IF(ISNUMBER(SEARCH(A3,$F$2:$N$3)),COLUMN($F$2:$N$3)),COUNTIF(A$2:A3,A3))+2))),
INDIRECT(ADDRESS(1,SMALL(IF(ISNUMBER(SEARCH(A3,$F$2:$N$3)),COLUMN($F$2:$N$3)),COUNTIF(A$2:A3,A3))+2)))
กด Ctrl+Shift+Enter
ไม่แน่ใจว่าหากเจอเงื่อนไขอื่นที่นอกเหนือจากนี้ จะได้คำตอบที่ต้องการหรือเปล่านะครับ
Re: ค้นหาชื่อและกลุ่มที่กำหนดไว้ แล้วสามารถนำรายการที่ต้องการมาใช้
Posted: Tue Jun 16, 2015 12:53 pm
by Totem
DhitiBank wrote:ลองแบบนี้ครับ
ที่ D2 คีย์
=IF(COUNTIF(A$2:A3,A3)=1,
IF(INDIRECT(ADDRESS(1,SMALL(IF(ISNUMBER(SEARCH(A3,$F$2:$N$3)),COLUMN($F$2:$N$3)),COUNTIF(A$2:A3,A3))+2))<>LEFT(B3,2),B3,INDIRECT(ADDRESS(1,SMALL(IF(ISNUMBER(SEARCH(A3,$F$2:$N$3)),COLUMN($F$2:$N$3)),COUNTIF(A$2:A3,A3))+2))),
INDIRECT(ADDRESS(1,SMALL(IF(ISNUMBER(SEARCH(A3,$F$2:$N$3)),COLUMN($F$2:$N$3)),COUNTIF(A$2:A3,A3))+2)))
กด Ctrl+Shift+Enter
ไม่แน่ใจว่าหากเจอเงื่อนไขอื่นที่นอกเหนือจากนี้ จะได้คำตอบที่ต้องการหรือเปล่านะครับ

คำตอบในช่อง D2 : D6 ยังไม่ถูกต้องครับ
ส่วนคอลัมน์ A ข้อมูลชื่อ อาจจะไม่เป็นแบบที่ทำไว้ในตัวอย่างครับ บ้างครั้งสลับสับเปลี่ยนต่างไปจากตัวอย่างครับ
Re: ค้นหาชื่อและกลุ่มที่กำหนดไว้ แล้วสามารถนำรายการที่ต้องการมาใช้
Posted: Tue Jun 16, 2015 1:11 pm
by DhitiBank
เอ... ผลลัพธ์ยังไม่ตรงกับคำตอบที่ไฮไลต์ไว้เหรอครับ ผมลองดูแล้วก็ตรงกับคำตอบที่คุณ Totem ใส่ไว้ในคอลัมน์ D แล้วนะครับ
ลองตรวจสอบดูว่ากดรับสูตรถูกต้องไหม (ต้องมีเครื่องหมายปีกกา { } คร่อมสูตรอยู่) หากยังไม่ได้ ลองแนบไฟล์ที่ได้ทำแล้วมาดูกันครับ

Re: ค้นหาชื่อและกลุ่มที่กำหนดไว้ แล้วสามารถนำรายการที่ต้องการมาใช้
Posted: Tue Jun 16, 2015 2:22 pm
by Totem
DhitiBank wrote:เอ... ผลลัพธ์ยังไม่ตรงกับคำตอบที่ไฮไลต์ไว้เหรอครับ ผมลองดูแล้วก็ตรงกับคำตอบที่คุณ Totem ใส่ไว้ในคอลัมน์ D แล้วนะครับ
ลองตรวจสอบดูว่ากดรับสูตรถูกต้องไหม (ต้องมีเครื่องหมายปีกกา { } คร่อมสูตรอยู่) หากยังไม่ได้ ลองแนบไฟล์ที่ได้ทำแล้วมาดูกันครับ


ใส่เครื่องหมายปีกกา { } Array แล้วครับ ผมได้คำตอบตามนี้ครับ
D2 = BB , D3 = CC , D4 = DD1 , D5 = CC , D6 = #NUM!

Re: ค้นหาชื่อและกลุ่มที่กำหนดไว้ แล้วสามารถนำรายการที่ต้องการมาใช้
Posted: Tue Jun 16, 2015 2:27 pm
by DhitiBank
เครื่องหมายปีกกาจะคีย์เข้าไปเองไม่ได้นะครับ ต้องปรากฏด้วยการกด
Ctrl+Shift ค้างไว้ แล้วกด Enter เท่านั้น
แต่ผมสังเกตดู สูตรเก่าที่ใส่เอาไว้ก็เป็นสูตร array นี่นา แต่อย่างไรก็ตาม ผมยืนยันว่า ผมได้คำตอบตรงตามที่คุณ totem ใส่เอาไว้ในคอลัมน์ D ครับ (แต่ตอนนี้แนบไฟล์ที่ผมทำให้ดูไม่ได้เพราะผมอยู่ข้างนอกครับ ขออภัย ผู้ใดอยู่หน้าคอมฯ บ้าง รบกวนช่วยหน่อยครับ มือถือกดสูตรอาร์เรย์ไม่ได้ T_T)
Re: ค้นหาชื่อและกลุ่มที่กำหนดไว้ แล้วสามารถนำรายการที่ต้องการมาใช้
Posted: Tue Jun 16, 2015 2:32 pm
by Totem

แนบไฟล์ที่ไม่ถูกต้องมาให้ดูครับ
SEARCH wrong.xlsx
Re: ค้นหาชื่อและกลุ่มที่กำหนดไว้ แล้วสามารถนำรายการที่ต้องการมาใช้
Posted: Tue Jun 16, 2015 5:32 pm
by DhitiBank
อุ้ย... ขออภัยเป็นอย่างยิ่ง
พอดูให้ละเอียดแล้ว สูตรที่ผมให้ต้องคีย์ในเซลล์ D3 ครับ คีย์เสร็จแล้วกด Ctrl+Shift+Enter
แล้วค่อยคัดลอกลงล่าง และขึ้นบน
ขออภัยอีกครั้ง คัดลอกมาผิดเซลล์
Re: ค้นหาชื่อและกลุ่มที่กำหนดไว้ แล้วสามารถนำรายการที่ต้องการมาใช้
Posted: Wed Jun 17, 2015 10:11 am
by Totem

สูตรที่ให้มาใหม่ จะใช้ได้ครับ แต่ถ้ามีข้อมูลในคอลัมน์ A ไม่ซ้ำ เช่น ที่ A6 = จ , J4 = จ คำตอบจะได้ที่ D6 = DD2 ซึ่งยังไม่ถูกต้อง จะปรับสูตรให้ได้ค่าที่ถูกต้องคือ BB พอจะมีไหมครับ ขอบคุณครับ
Re: ค้นหาชื่อและกลุ่มที่กำหนดไว้ แล้วสามารถนำรายการที่ต้องการมาใช้
Posted: Wed Jun 17, 2015 12:36 pm
by DhitiBank
ใช้ตัวอย่างไฟล์แรกๆ ได้ใช่ไหมครับ ถ้าไม่ได้ กรุณาแนบไฟล์ตัวอย่างที่มีข้อมูลครอบคลุมกับสิ่งที่ทำอยู่มาหน่อยครับ
คราวนี้ เกณฑ์พิจารณากรณีชื่อซ้ำนี่พอเข้าใจแล้ว และถ้าไม่ซ้ำล่ะครับ ขอเงื่อนไขในการพิจารณาชื่อไม่ซ้ำด้วยครับ
Re: ค้นหาชื่อและกลุ่มที่กำหนดไว้ แล้วสามารถนำรายการที่ต้องการมาใช้
Posted: Wed Jun 17, 2015 3:26 pm
by Totem
DhitiBank wrote:ใช้ตัวอย่างไฟล์แรกๆ ได้ใช่ไหมครับ ถ้าไม่ได้ กรุณาแนบไฟล์ตัวอย่างที่มีข้อมูลครอบคลุมกับสิ่งที่ทำอยู่มาหน่อยครับ
คราวนี้ เกณฑ์พิจารณากรณีชื่อซ้ำนี่พอเข้าใจแล้ว และถ้าไม่ซ้ำล่ะครับ ขอเงื่อนไขในการพิจารณาชื่อไม่ซ้ำด้วยครับ

อธิบายได้ดังนี้ครับ
คำถาม
1. ถ้ามีข้อมูลในคอลัมน์ A ไม่ซ้ำ เช่น ที่ A6 = จ , J4 = จ คำตอบจะได้ที่ DD2 ซึ่งยังไม่ถูกต้อง จะปรับสูตรให้ได้ค่าที่ถูกต้องคือ BB
2. ถ้ามีข้อมูลในคอลัมน์ A ไม่ซ้ำ เช่น ที่ A9 = ฉ , N4 = ฉ คำตอบจะได้ที่ BBBBB1 ซึ่งยังไม่ถูกต้อง จะปรับสูตรให้ได้ค่าที่ถูกต้องคือ CC
3. ในส่วนคอลัมน์ A ที่ A6 = ง , D8 = AA ได้คำตอบที่ถูกต้อง ตามสูตรที่ให้มา
แนบไฟล์ตัวอย่างเพิ่มมาให้ครับ
SEARCH3.xlsx
Re: ค้นหาชื่อและกลุ่มที่กำหนดไว้ แล้วสามารถนำรายการที่ต้องการมาใช้
Posted: Wed Jun 17, 2015 8:08 pm
by DhitiBank
ที่ C2 ลองคีย์แบบนี้ครับ
=IF(COUNTIF($F$2:$N$4,A2)=1,INDIRECT(ADDRESS(1,SMALL(IF(ISNUMBER(SEARCH(A2,$F$2:$N$4)),COLUMN($F$2:$N$4)),1)+2)),IF(COUNTIF(A$2:A2,A2)=1,IF(INDIRECT(ADDRESS(1,SMALL(IF(ISNUMBER(SEARCH(A2,$F$2:$N$4)),COLUMN($F$2:$N$4)),1)+2))=LEFT(B2,2),LEFT(B2,2),B2),INDIRECT(ADDRESS(1,SMALL(IF(ISNUMBER(SEARCH(A2,$F$2:$N$4)),COLUMN($F$2:$N$4)),COUNTIF(A$2:A2,A2))+2))))
Ctrl+Shift+Enter
Re: ค้นหาชื่อและกลุ่มที่กำหนดไว้ แล้วสามารถนำรายการที่ต้องการมาใช้
Posted: Wed Jun 17, 2015 8:31 pm
by snasui

อีกตัวอย่างสูตรที่คำนวณเปรียบเทียบกับผลลัพธ์ตามไฟล์แนบล่าสุดครับ
C2 คีย์
=IF(AND(COUNTIF(A$2:A2,A2)=1,COUNTIF($A$2:$A$9,A2)>1),B2,OFFSET($F$1,0,SMALL(IF(MMULT(TRANSPOSE(ROW($E$2:$E$9)^0),--($F$2:$P$9=$A2)),COLUMN($F$1:$P$1)-COLUMN($F$1)),COUNTIF(A$2:A2,A2))+2))
Ctrl+Shift+Enter > Copy ลงด้านล่าง
Re: ค้นหาชื่อและกลุ่มที่กำหนดไว้ แล้วสามารถนำรายการที่ต้องการมาใช้
Posted: Fri Jun 19, 2015 2:36 pm
by Totem

สูตรที่ให้ไปทั้งสองแบบใช้ได้ตามที่ต้องการแล้วครับ
ขอบคุณ คุณ DhitiBank และอาจารย์ ครับ