snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Totem
Silver
Posts: 650 Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007
#1
Post
by Totem » Tue Apr 23, 2019 6:55 pm
เรียนอาจารย์และเพื่อนสมาชิก
ตัองการให้ปรับสูตรในช่อง E3- E7 โดยเพิ่มเติมว่าต้องตั้งแต่อายุ 15 ปีลงมา ให้ได้ผลลัพธ์ เหมือนในช่อง A3-A7
ขอบคุณครับ
age.xlsx
You do not have the required permissions to view the files attached to this post.
puriwutpokin
Guru
Posts: 3792 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#2
Post
by puriwutpokin » 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 ปรับค่าให้เป็นตัวเลขครับ
ivan901
Member
Posts: 13 Joined: Thu Apr 04, 2019 12:49 pm
#3
Post
by ivan901 » 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 สูตรลงมา
You do not have the required permissions to view the files attached to this post.
Totem
Silver
Posts: 650 Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007
#4
Post
by Totem » Tue Apr 23, 2019 8:56 pm
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 ปรับค่าให้เป็นตัวเลขครับ
ในช่องอายุตอนดึงข้อมูลมาระบบเป็น TEXT ครับ แต่ถ้าคอลัมน์ J ปรับค่าให้เป็นตัวเลขครับ ได้ผลลัพธ์ตามต้องการ
ขอบคุณครับ
Totem
Silver
Posts: 650 Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007
#5
Post
by Totem » Tue Apr 23, 2019 9:00 pm
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 สูตรลงมา
ในระบบเมื่อผมดึงข้อมูลมาใช้ ในคอลัมน์ J จะเป็น TEXT สูตรนี้แก้ปัญหาโดยไม่ต้องเปลี่ยนเป็นตัวเลขก่อน ได้ตามต้องการครับ ขอบคุณครับ
Totem
Silver
Posts: 650 Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007
#6
Post
by Totem » 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
Guru
Posts: 3792 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#7
Post
by puriwutpokin » 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
Silver
Posts: 650 Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007
#8
Post
by Totem » Wed Apr 24, 2019 1:15 pm
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))),""),"")
ปรับสูตรเพิ่มเรื่อง อายุเข้าไปได้หรือไม่ครับ
ขอบคุณครับ
ลองแนบไฟล์ล่าสุดที่มีการปรับ แล้วติดปัญหามาดูครับ
ตามไฟล์ที่แนบครับ
age แก้ไข.xlsx
You do not have the required permissions to view the files attached to this post.
puriwutpokin
Guru
Posts: 3792 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#9
Post
by puriwutpokin » Wed Apr 24, 2019 1:36 pm
ปรับเป็นตามนี้ครับ
ที่ E2=IFERROR(INDEX(H$3:H$201,MATCH(1,INDEX(($K$3:$K$201=$F3)*(VALUE($J$3:$J$201)<=15),0),0)+COUNTIF(F$3:F3,F3)-1),"")
ivan901
Member
Posts: 13 Joined: Thu Apr 04, 2019 12:49 pm
#10
Post
by ivan901 » 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
Site Admin
Posts: 31038 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#11
Post
by snasui » 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
Silver
Posts: 650 Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007
#12
Post
by Totem » Thu Apr 25, 2019 1:05 pm
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
ยังไม่ได้ตามต้องการ เพราะคอลัมน์ F อาจมีรหัสซ้ำขึ้นมาได้และข้อมูลในคอลัมน์ K ได้มาก็ซ้ำได้ด้วยครับ
แนบตัวอย่างที่ต้องการไว้ในไฟล์แล้วครับ ขอบคุณครับ
age แก้ไขเพิ่ม.xlsx
You do not have the required permissions to view the files attached to this post.
Totem
Silver
Posts: 650 Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007
#13
Post
by Totem » Thu Apr 25, 2019 1:12 pm
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 ลงด้านล่าง
นำไปใช้แล้ว เมื่อคลุมพื้นที่ในคอลัมน์ H ถึง K และ J ให้รวมไปถึงพื้นที่ว่างๆ คือเผื่อดึงข้อมูลมาแล้วไม่พอ เลยกำหนดให้เยอะไว้ก่อน ทำให้สูตรที่ได้จากอาจารย์ แสดงผลลัพธ์เป็นว่างครับ ขอบคุณครับ
logic
Gold
Posts: 1511 Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365
#14
Post
by logic » 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
Guru
Posts: 3792 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#15
Post
by puriwutpokin » Thu Apr 25, 2019 1:32 pm
Totem wrote: Thu Apr 25, 2019 1:12 pm
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 ลงด้านล่าง
นำไปใช้แล้ว เมื่อคลุมพื้นที่ในคอลัมน์ 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))),"") คัดลอกลงครับ
Totem
Silver
Posts: 650 Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007
#16
Post
by Totem » Thu Apr 25, 2019 2:38 pm
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
ยังไม่ได้ครับ ขอบคุณครับ
Totem
Silver
Posts: 650 Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007
#17
Post
by Totem » Thu Apr 25, 2019 2:42 pm
puriwutpokin wrote: Thu Apr 25, 2019 1:32 pm
Totem wrote: Thu Apr 25, 2019 1:12 pm
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 ลงด้านล่าง
นำไปใช้แล้ว เมื่อคลุมพื้นที่ในคอลัมน์ 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 และอาจารย์รวมถึงเพื่อนสมาชิกที่ช่วยตอบและแก้ไขปัญหาให้ครับ
Totem
Silver
Posts: 650 Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007
#18
Post
by Totem » Thu Apr 25, 2019 3:36 pm
มีคำถามเพิ่มเติมอีกนิดครับว่า ในคอลัมน์ J เป็น TEXT มีข้อความ 0-6-27 (ปี-เดือน-วัน )อยู่ด้วย จะปรับสูตร
(VALUE(J$3:J$201)<=15) โดยการตัดข้อความตั้งแต่ -6-27 (-เดือน-วัน)ออกไป ให้เหลือแต่ 0 ปี จะได้ <=15
ขอบคุณครับ
puriwutpokin
Guru
Posts: 3792 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#19
Post
by puriwutpokin » 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))),"") คัดลอกลงครับ
Totem
Silver
Posts: 650 Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007
#20
Post
by Totem » Fri Apr 26, 2019 12:06 pm
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))),"") คัดลอกลงครับ
ได้เฉพาะในส่วนที่ตัดออกไป 0-1-1 แต่ในช่องคอลัมน์ E ด้วยกัน ข้อความตัวเลขอื่นกลับเป็นค่าว่างครับ ยังไม่ได้ตามที่ต้องการครับ
age แก้ไขเพิ่ม LEFT.xlsx
You do not have the required permissions to view the files attached to this post.