แสดงรายการที่มีช่วงอายุที่ต้องการ
Posted: Tue Apr 23, 2019 6:55 pm

ตัองการให้ปรับสูตรในช่อง E3- E7 โดยเพิ่มเติมว่าต้องตั้งแต่อายุ 15 ปีลงมา ให้ได้ผลลัพธ์ เหมือนในช่อง A3-A7
ขอบคุณครับ
ฟอรัม Excel, VBA และอื่นๆ ของคนไทยเพื่อประโยชน์ของทุกคนในจักรวาล (Forum Excel, VBA and others of Thai people for everyone in the universe.)
http://snasui.com/
ในช่องอายุตอนดึงข้อมูลมาระบบเป็น TEXT ครับ แต่ถ้าคอลัมน์ J ปรับค่าให้เป็นตัวเลขครับ ได้ผลลัพธ์ตามต้องการpuriwutpokin wrote: Tue Apr 23, 2019 7:39 pm ที่e3=IFERROR(INDEX(H$3:H$201,MATCH(1,INDEX(($K$3:$K$201=$F3)*($J$3:$J$201<=15),0),0)),"")
แล้วคอลัมน์ J ปรับค่าให้เป็นตัวเลขครับ
ในระบบเมื่อผมดึงข้อมูลมาใช้ ในคอลัมน์ J จะเป็น TEXT สูตรนี้แก้ปัญหาโดยไม่ต้องเปลี่ยนเป็นตัวเลขก่อน ได้ตามต้องการครับ ขอบคุณครับivan901 wrote: Tue Apr 23, 2019 7:45 pm E3 =IF(VALUE(INDEX($J$3:$K$201, MATCH($F3, $K$3:$K$201, 0), 1))>15, "", INDEX($H$3:$H$201, MATCH($F3, $K$3:$K$201, 0))) Copy สูตรลงมา
Code: Select all
=IFERROR(IF(COUNTIF($K$3:$K$201,$F3),INDEX(H$3:H$201,SMALL(IF($K$3:$K$201=$F3,ROW($K$3:$K$201)-ROW($K$3)+1),COUNTIF($F$3:$F3,$F3))),""),"")
ลองแนบไฟล์ล่าสุดที่มีการปรับ แล้วติดปัญหามาดูครับTotem wrote: Wed Apr 24, 2019 9:43 amนำไปปรับใช้ทั้งสองสูตรแล้วยังไม่ได้ผลลัพธ์ที่ถูกต้องครับ
ผมขออธิบายเพิ่มเติมว่าในคอลัมน์ F ไม่ได้เรียงรหัสตามคอลัมน์ K และคอลัมน์ K มีข้อมูลรหัสซ้ำกันได้หรือเป็นช่องว่างๆไม่มีข้อมูลรหัส เพราะเมื่อมีข้อมูลซ้ำกันหรือช่องว่างไม่มีข้อมูลสูตรทั้งสองจะไม่ได้คำตอบที่ต้องการครับ
จากสูตรเดิมปรับสูตรเพิ่มเรื่อง อายุเข้าไปได้หรือไม่ครับCode: Select all
=IFERROR(IF(COUNTIF($K$3:$K$201,$F3),INDEX(H$3:H$201,SMALL(IF($K$3:$K$201=$F3,ROW($K$3:$K$201)-ROW($K$3)+1),COUNTIF($F$3:$F3,$F3))),""),"")
ขอบคุณครับ
puriwutpokin wrote: Wed Apr 24, 2019 11:22 amลองแนบไฟล์ล่าสุดที่มีการปรับ แล้วติดปัญหามาดูครับTotem wrote: Wed Apr 24, 2019 9:43 amนำไปปรับใช้ทั้งสองสูตรแล้วยังไม่ได้ผลลัพธ์ที่ถูกต้องครับ
ผมขออธิบายเพิ่มเติมว่าในคอลัมน์ F ไม่ได้เรียงรหัสตามคอลัมน์ K และคอลัมน์ K มีข้อมูลรหัสซ้ำกันได้หรือเป็นช่องว่างๆไม่มีข้อมูลรหัส เพราะเมื่อมีข้อมูลซ้ำกันหรือช่องว่างไม่มีข้อมูลสูตรทั้งสองจะไม่ได้คำตอบที่ต้องการครับ
จากสูตรเดิมปรับสูตรเพิ่มเรื่อง อายุเข้าไปได้หรือไม่ครับCode: Select all
=IFERROR(IF(COUNTIF($K$3:$K$201,$F3),INDEX(H$3:H$201,SMALL(IF($K$3:$K$201=$F3,ROW($K$3:$K$201)-ROW($K$3)+1),COUNTIF($F$3:$F3,$F3))),""),"")
ขอบคุณครับ
แก้ไขสูตรใหม่ครับTotem wrote: Wed Apr 24, 2019 9:43 amนำไปปรับใช้ทั้งสองสูตรแล้วยังไม่ได้ผลลัพธ์ที่ถูกต้องครับ
ผมขออธิบายเพิ่มเติมว่าในคอลัมน์ F ไม่ได้เรียงรหัสตามคอลัมน์ K และคอลัมน์ K มีข้อมูลรหัสซ้ำกันได้หรือเป็นช่องว่างๆไม่มีข้อมูลรหัส เพราะเมื่อมีข้อมูลซ้ำกันหรือช่องว่างไม่มีข้อมูลสูตรทั้งสองจะไม่ได้คำตอบที่ต้องการครับ
จากสูตรเดิมปรับสูตรเพิ่มเรื่อง อายุเข้าไปได้หรือไม่ครับCode: Select all
=IFERROR(IF(COUNTIF($K$3:$K$201,$F3),INDEX(H$3:H$201,SMALL(IF($K$3:$K$201=$F3,ROW($K$3:$K$201)-ROW($K$3)+1),COUNTIF($F$3:$F3,$F3))),""),"")
ขอบคุณครับ
ivan901 wrote: Thu Apr 25, 2019 12:39 amแก้ไขสูตรใหม่ครับTotem wrote: Wed Apr 24, 2019 9:43 amนำไปปรับใช้ทั้งสองสูตรแล้วยังไม่ได้ผลลัพธ์ที่ถูกต้องครับ
ผมขออธิบายเพิ่มเติมว่าในคอลัมน์ F ไม่ได้เรียงรหัสตามคอลัมน์ K และคอลัมน์ K มีข้อมูลรหัสซ้ำกันได้หรือเป็นช่องว่างๆไม่มีข้อมูลรหัส เพราะเมื่อมีข้อมูลซ้ำกันหรือช่องว่างไม่มีข้อมูลสูตรทั้งสองจะไม่ได้คำตอบที่ต้องการครับ
จากสูตรเดิมปรับสูตรเพิ่มเรื่อง อายุเข้าไปได้หรือไม่ครับCode: Select all
=IFERROR(IF(COUNTIF($K$3:$K$201,$F3),INDEX(H$3:H$201,SMALL(IF($K$3:$K$201=$F3,ROW($K$3:$K$201)-ROW($K$3)+1),COUNTIF($F$3:$F3,$F3))),""),"")
ขอบคุณครับ
E3=IFERROR(INDEX($H$3:$H$201,SMALL(IF((K$3:K$201=$F3)*(VALUE($J$3:$J$201)<=15),(K$3:K$201=$F3)*(VALUE($J$3:$J$201)<=15)+ROW($K$3:$K$201),""),COUNTIF($F$3:$F3,$F3))-ROW($K$3:$K$201)),"") Ctrl + Shift + Enter
snasui wrote: Thu Apr 25, 2019 7:04 amตัวอย่างสูตรให้นำค่าที่น้อยกว่าหรือเท่ากับ 15 มาแสดงครับ
เซลล์ E3 คีย์
=IFERROR(INDEX(INDEX($H$3:$K$9,0,MATCH(E$2,$H$2:$K$2,0)),SMALL(IF(--$J$3:$J$9<16,ROW($H$3:$H$9)-ROW($E$3)+1),ROWS(E$3:E3))),"")
Ctrl+Shift+Enter > Copy ไป F3 แล้ว Copy ลงด้านล่าง
แก้ไขของเดิมดูครับปรับเป็นTotem wrote: Thu Apr 25, 2019 1:12 pmsnasui wrote: Thu Apr 25, 2019 7:04 amตัวอย่างสูตรให้นำค่าที่น้อยกว่าหรือเท่ากับ 15 มาแสดงครับ
เซลล์ E3 คีย์
=IFERROR(INDEX(INDEX($H$3:$K$9,0,MATCH(E$2,$H$2:$K$2,0)),SMALL(IF(--$J$3:$J$9<16,ROW($H$3:$H$9)-ROW($E$3)+1),ROWS(E$3:E3))),"")
Ctrl+Shift+Enter > Copy ไป F3 แล้ว Copy ลงด้านล่างนำไปใช้แล้ว เมื่อคลุมพื้นที่ในคอลัมน์ H ถึง K และ J ให้รวมไปถึงพื้นที่ว่างๆ คือเผื่อดึงข้อมูลมาแล้วไม่พอ เลยกำหนดให้เยอะไว้ก่อน ทำให้สูตรที่ได้จากอาจารย์ แสดงผลลัพธ์เป็นว่างครับ ขอบคุณครับ
logic wrote: Thu Apr 25, 2019 1:20 pm แบบนี้ได้ไหมครับ
E3 =IFERROR(INDEX(INDEX($H$3:$K$9,0,MATCH(E$2,$H$2:$K$2,0)),SMALL(IF($J$3:$J$9<>"",IF($J$3:$J$9+0<16,ROW($H$3:$H$9)-ROW($E$3)+1)),ROWS(E$3:E3))),"") Ctrl+Shift+Enter
puriwutpokin wrote: Thu Apr 25, 2019 1:32 pmแก้ไขของเดิมดูครับปรับเป็นTotem wrote: Thu Apr 25, 2019 1:12 pmsnasui wrote: Thu Apr 25, 2019 7:04 amตัวอย่างสูตรให้นำค่าที่น้อยกว่าหรือเท่ากับ 15 มาแสดงครับ
เซลล์ E3 คีย์
=IFERROR(INDEX(INDEX($H$3:$K$9,0,MATCH(E$2,$H$2:$K$2,0)),SMALL(IF(--$J$3:$J$9<16,ROW($H$3:$H$9)-ROW($E$3)+1),ROWS(E$3:E3))),"")
Ctrl+Shift+Enter > Copy ไป F3 แล้ว Copy ลงด้านล่างนำไปใช้แล้ว เมื่อคลุมพื้นที่ในคอลัมน์ H ถึง K และ J ให้รวมไปถึงพื้นที่ว่างๆ คือเผื่อดึงข้อมูลมาแล้วไม่พอ เลยกำหนดให้เยอะไว้ก่อน ทำให้สูตรที่ได้จากอาจารย์ แสดงผลลัพธ์เป็นว่างครับ ขอบคุณครับ
E3=IFERROR(INDEX(H$3:H$201,AGGREGATE(15,6,(ROW(K$3:K$201)-ROW(K$2))/((K$3:K$201=$F3)*(VALUE(J$3:J$201)<=15)),COUNTIF(F$3:F3,F3))),"") คัดลอกลงครับ
puriwutpokin wrote: Thu Apr 25, 2019 3:45 pm ปรับเป็นที่ E3=IFERROR(INDEX(H$3:H$201,AGGREGATE(15,6,(ROW(K$3:K$201)-ROW(K$2))/((K$3:K$201=$F3)*((LEFT(J$3:J$201,FIND("-",J$3:J$201)-1)+0)<=15)),COUNTIF(F$3:F3,F3))),"") คัดลอกลงครับ