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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
navapalo
Member
Posts: 29 Joined: Tue May 11, 2010 1:46 pm
#1
Post
by navapalo » Fri Jul 20, 2012 1:07 pm
ต้องการหาค่าที่อยู่ในช่วงของซีเรียลนัมเบอร์
ที่คอลัมน์ B มีค่าของซีเรียลนัมเบอร์ เช่น
B1=> S/N
B2=>A12000000-100
B3=>A12000200-300
B4=>A12000301-350
B5=>A12000351-359
ต้องการหาว่าค่าของข้อมูลที่ต้องการอยู่ในช่วงของซีเรียลนัมเบอร์ใด
เช่น ป้อน A12000205 ได้ค่าที่ต้องการ => ตำแหน่งที่ข้อมูลอยู่ คือ B3
ไม่ทราบว่าต้องใช้วิธีการใด รบกวนด้วยครับ
ปล. ผมใช้ OpenOffice 3.2 (วิธีการหรือสูตรน่าจะเหมือนกันกับ EXCEL จะเอาไปประยุกต์อีกที)
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#2
Post
by bank9597 » Fri Jul 20, 2012 1:16 pm
ลองตามนี้ครับ ว่าถูกต้องไหม
ที่ E3 คีย์ =IF(ISNA(MATCH(E2,$B$1:$B$10,0)),"","B"&MATCH(E2,$B$1:$B$10,0))
You do not have the required permissions to view the files attached to this post.
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
ChoBkuN
Member
Posts: 239 Joined: Tue Nov 29, 2011 3:43 pm
#3
Post
by ChoBkuN » Fri Jul 20, 2012 2:12 pm
ลองอีกซักอัน (^///^)
E3 ="B"&MATCH(VLOOKUP("A"&SUBSTITUTE(E2,"A","")+1,B:B,1),B:B,0)
navapalo
Member
Posts: 29 Joined: Tue May 11, 2010 1:46 pm
#4
Post
by navapalo » Fri Jul 20, 2012 4:39 pm
ใช้ได้แล้ว
ขอบคุณทุกๆท่านครับ.
navapalo
Member
Posts: 29 Joined: Tue May 11, 2010 1:46 pm
#5
Post
by navapalo » Sat Jul 21, 2012 10:56 am
ในกรณีที่เลขชุดซีเรียลไม่เรียงลำดับจากน้อยไปมาก ค่าที่ได้จากสูตรจะไม่ตรงครับ ต้องแก้ไขอย่างไร.
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#6
Post
by snasui » Sat Jul 21, 2012 11:09 am
แก้โดยการเรียงลำดับครับ
กรณีไม่เรียงแล้วต้องการให้แสดงผลถูกต้อง ในคอลัมน์ B จะต้องแสดงออกมาให้หมดทุกค่าเท่าที่มี ไม่ใช่แสดงเป็นช่วง ครับ
กรณีเรียงลำดับค่าในคอลัมน์ B สามารถใช้อีกสูตรตามด้านล่าง
="B"&MATCH(E2,INDEX(LEFT($B$2:$B$5,9),0))
กรณีเป็นโปรแกรมอื่นที่ไม่ใช่ Excel ให้ถามในหมวด Other นะครับ แม้จะเป็น OpenOffice หรืออื่น ๆ ที่มีลักษณะการใช้งานเหมือน Excel ในความรู้สึกผมโปรแกรมพวกนี้ยังมีความสามารถต่างกับ Excel มากครับ
navapalo
Member
Posts: 29 Joined: Tue May 11, 2010 1:46 pm
#7
Post
by navapalo » Sat Jul 21, 2012 1:41 pm
snasui wrote: แก้โดยการเรียงลำดับครับ
กรณีไม่เรียงแล้วต้องการให้แสดงผลถูกต้อง ในคอลัมน์ B จะต้องแสดงออกมาให้หมดทุกค่าเท่าที่มี ไม่ใช่แสดงเป็นช่วง ครับ
กรณีเรียงลำดับค่าในคอลัมน์ B สามารถใช้อีกสูตรตามด้านล่าง
="B"&MATCH(E2,INDEX(LEFT($B$2:$B$5,9),0))
กรณีเป็นโปรแกรมอื่นที่ไม่ใช่ Excel ให้ถามในหมวด Other นะครับ แม้จะเป็น OpenOffice หรืออื่น ๆ ที่มีลักษณะการใช้งานเหมือน Excel ในความรู้สึกผมโปรแกรมพวกนี้ยังมีความสามารถต่างกับ Excel มากครับ
ลองเรียงลำดับ ="B"&MATCH(E2,INDEX(LEFT($B$2:$B$5,9),0)) แล้วขึ้น Error:504 ครับ
หรือว่าพอมีวิธีไหนไหมครับที่ทำให้ A12000001-020 เป็น A12000001,A12000002,A12000003 ไปจนถึง A12000020
หมายเหตุ ความต้องการคืออยากหาข้อมูลที่ต้องการว่าอยู่ตรงชุดไหน เนื่องจากข้อมูลมีจำนวนมาก และในการป้อนข้อมูลตอนแรกไม่ได้แยกเอาไว้
ขอบคุณครับ.
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#8
Post
by bank9597 » Sat Jul 21, 2012 2:19 pm
ลองตามนี้ครับ
ที่ F2 คีย์ =SUBSTITUTE(B2,"-","") คัดลอกลงมา
คัดลองค่าที่ได้ ไปวางที่ B2 โดยวางพิเศษ คือ วางเฉพาะค่า เท่านั้น
You do not have the required permissions to view the files attached to this post.
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#9
Post
by snasui » Sat Jul 21, 2012 4:27 pm
navapalo wrote: ลองเรียงลำดับ ="B"&MATCH(E2,INDEX(LEFT($B$2:$B$5,9),0)) แล้วขึ้น Error:504 ครับ
สร้างคอลัมน์ขึ้นมาใหม่ โดยลองตามนี้ครับ
ที่ A2 คีย์
=LEFT(B2,9)
Enter > Copy ลงด้านล่าง
ที่ E3 คีย์
="B"&MATCH(E2,A:A)
Enter
navapalo
Member
Posts: 29 Joined: Tue May 11, 2010 1:46 pm
#10
Post
by navapalo » Mon Jul 23, 2012 8:58 am
snasui wrote: navapalo wrote: ลองเรียงลำดับ ="B"&MATCH(E2,INDEX(LEFT($B$2:$B$5,9),0)) แล้วขึ้น Error:504 ครับ
สร้างคอลัมน์ขึ้นมาใหม่ โดยลองตามนี้ครับ
ที่ A2 คีย์
=LEFT(B2,9)
Enter > Copy ลงด้านล่าง
ที่ E3 คีย์
="B"&MATCH(E2,A:A)
Enter
แสดงตำแหน่งไม่ถูกต้องครับ พิมพ์ A12000501 ตำแหน่งที่ถูกคือ B3 แต่ค่าที่ได้คือ B5 ครับ
You do not have the required permissions to view the files attached to this post.
ysamroeng
Member
Posts: 105 Joined: Fri Feb 05, 2010 11:17 am
#11
Post
by ysamroeng » Mon Jul 23, 2012 10:40 am
navapalo wrote:
แสดงตำแหน่งไม่ถูกต้องครับ พิมพ์ A12000501 ตำแหน่งที่ถูกคือ B3 แต่ค่าที่ได้คือ B5 ครับ
ต้องเรียงลำดับข้อมูลในตารางก่อนครับ
You do not have the required permissions to view the files attached to this post.
navapalo
Member
Posts: 29 Joined: Tue May 11, 2010 1:46 pm
#12
Post
by navapalo » Mon Jul 23, 2012 11:08 am
ysamroeng wrote: navapalo wrote:
แสดงตำแหน่งไม่ถูกต้องครับ พิมพ์ A12000501 ตำแหน่งที่ถูกคือ B3 แต่ค่าที่ได้คือ B5 ครับ
ต้องเรียงลำดับข้อมูลในตารางก่อนครับ
ขอบคุณครับ ถ้าใช้วิธีนี้ก็ต้องมาเรียงลำดับข้อมูลทุกครั้งที่ต้องการค้นหา ซึ่งไม่สะดวกในการทำงาน เพราะข้อมูลมีเยอะและเมื่อมีการคีย์ข้อมูลเพิ่ม
ข้อมูลที่เพิ่มเข้ามาก็ไม่ได้เรียงลำดับครับ
ChoBkuN
Member
Posts: 239 Joined: Tue Nov 29, 2011 3:43 pm
#13
Post
by ChoBkuN » Mon Jul 23, 2012 2:36 pm
ถ้าลอง sort ข้อมูล ที่ คอลัมน์ C แทน
copy column b มาใส่ คอลัมน์ C
แล้วก็ sort เฉพาะ คอลัมน์ C
E4 พิมพ์ ="B"&MATCH(VLOOKUP("A"&SUBSTITUTE(E2,"A","")+1,C:C,1),B:B,0)
จะได้ไหมครับ ??
You do not have the required permissions to view the files attached to this post.
ChoBkuN
Member
Posts: 239 Joined: Tue Nov 29, 2011 3:43 pm
#14
Post
by ChoBkuN » Mon Jul 23, 2012 3:26 pm
มีอีกอย่างครับ
คอลัมน์ A ใส่เลขที่ row ไว้ ลงไปเรื่อยๆ
C 3 ใส่ =LEFT(B2,9)
D 3 ใส่ =LEFT(B2,9-(LEN(B2)-SEARCH("-",B2,1)))&RIGHT(B2,LEN(B2)-SEARCH("-",B2,1))
กด double click มุมขวา cell ที่ใส่สูตร เพื่อ ลากลงแบบ auto
F 3 คีย์ =SUMPRODUCT(--(F2>=C:C),--(F2<=D:D),A:A)
You do not have the required permissions to view the files attached to this post.
ChoBkuN
Member
Posts: 239 Joined: Tue Nov 29, 2011 3:43 pm
#15
Post
by ChoBkuN » Mon Jul 23, 2012 4:56 pm
ChoBkuN wrote:
F 3 คีย์ =SUMPRODUCT(--(F2>=C:C),--(F2<=D:D),A:A)
F 3 คีย์ =
"B"& SUMPRODUCT(--(F2>=C:C),--(F2<=D:D),A:A)
navapalo
Member
Posts: 29 Joined: Tue May 11, 2010 1:46 pm
#16
Post
by navapalo » Mon Jul 23, 2012 5:10 pm
ChoBkuN wrote: ChoBkuN wrote:
F 3 คีย์ =SUMPRODUCT(--(F2>=C:C),--(F2<=D:D),A:A)
F 3 คีย์ =
"B"& SUMPRODUCT(--(F2>=C:C),--(F2<=D:D),A:A)
ใช้ได้แล้วครับ ขอบคุณทุกๆท่านครับ
ChoBkuN
Member
Posts: 239 Joined: Tue Nov 29, 2011 3:43 pm
#17
Post
by ChoBkuN » Mon Jul 23, 2012 5:20 pm
บังเอิญว่าทำไว้แล้ว และคิดว่าสมบูรณ์ที่สุด
เลยฝากแปะไว้ครับ ^ ^
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#18
Post
by snasui » Mon Jul 23, 2012 5:59 pm
navapalo wrote: ChoBkuN wrote: ChoBkuN wrote:
F 3 คีย์ =SUMPRODUCT(--(F2>=C:C),--(F2<=D:D),A:A)
F 3 คีย์ =
"B"& SUMPRODUCT(--(F2>=C:C),--(F2<=D:D),A:A)
ใช้ได้แล้วครับ ขอบคุณทุกๆท่านครับ
ใน OpenOffice ใช้สูตร Sumproduct แบบนี้ได้ด้วยหรือครับ
นับว่าพัฒนาขึ้นอย่างมากครับ