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] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
March201711
Gold
Posts: 1047 Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365
#1
Post
by March201711 » Thu Mar 16, 2023 3:57 pm
คือ ชื่อลูกค้ามีลักษณะเหมือนกันหรือคล้ายกันแต่ formula ไปดึงข้อมูลจับอีกคนที่ไม่มีรายชื่อค่ะ ต้องปรับสูตรอย่างไรคะ
เช่น sheet ของลูกค้าชื่อ Mr.Tana มี ยอด 15,993.28 bht ดึงข้อมูลมาถูกที่ Cell B6
เช่น sheet ของลูกค้าชื่อ Mr.Chaichat มี ยอด 39,902.00 bht แต่สูตรไปดึงข้อมูลเป็นอีกคนนึงซึ่งมีชื่อหน้าเหมือนกัน เป็น Mr.Chait ที่ cell B7 high light สีเหลือง ซึ่งที่ถูกควรเป็นชื่อ Mr.Chaitchat
เช่น sheet ของลูกค้าชื่อ Mr.Anan มี ยอด 1,552,953.60 bht แต่สูตรไปดึงข้อมูลเป็นอีกคนนึงซึ่งมีชื่อหน้าเหมือนกัน เป็น Mr.Anant-Worachai ที่ cell B8 ซึ่งที่ถูกควรเป็นชื่อ Mr.Anan ค่ะ
You do not have the required permissions to view the files attached to this post.
Xcelvba
Silver
Posts: 604 Joined: Thu Feb 03, 2022 9:04 am
Excel Ver: 2019
#2
Post
by Xcelvba » Thu Mar 16, 2023 4:51 pm
ใน cell C2 ที่เป็นสีเหลืองชื่อที่ดึงมาถูกแล้วครับ เพราะสูตรอ้างอิงจากรหัส ใน ตาราง A15:B20 ซึ่ง
123453-9 เป็นชื่อของ Mr.Chait Saiepoie ครับ
รหัส 944839-9 ถึงเป็นของ คุณ Mr.Chaitchat Soouewv
ส่วนใน Column A ใส่สูตรเพราะต้องการข้อมูลอย่างไรครับ อธิบายมาคร่าวๆครับ เพราะสูตร Column B อ้างอิงรหัสจาก Column A ครับ
ตัวอย่างสูตรในอย่างง่ายใน column B ครับ =IFERROR(VLOOKUP(A7,$A$15:$B$20,2,0),"")
March201711
Gold
Posts: 1047 Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365
#3
Post
by March201711 » Thu Mar 16, 2023 5:15 pm
แต่ชีทที่ ชื่อ Mr.Chait ไม่มียอดนะคะ อยากให้ดึงข้อมูลชื่อคนที่มียอดคือ Mr.Chaitchat ถึงจะถูก ข้อมูลดึงมาผิดชื่อเพราะชื่อ 7 ตัวอักษรแรกเหมือนกันค่ะ ต้องปรับสูตรยังงัยคะให้ดึงข้อมูลชื่อคนมาถูกและยอดมาด้วยค่ะ ขอบคุณค่ะ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Thu Mar 16, 2023 6:48 pm
สูตรในคอลัมน์ A, B เป็นผลมาจากคอลัมน์ C ครับ
หากคอลัมน์ C เขียนสูตรโดยอ้างอิงจากชีตใด คอลัมน์ A และ B ก็จะอ้างอิงไปยังชีตนั้น ไม่ทราบว่าที่แท้จริงแล้วลำดับการทำงานเป็นอย่างไร กรุณาอธิบายมาโดยละเอียดครับ
เบื้องต้นลองปรับสูตรใหม่เป็นด้านล่างครับ
ที่ A6 คีย์
=INDIRECT(MID(FORMULATEXT(C6),5,FIND("!",FORMULATEXT(C6))-5)&"!A2")
Enter > Copy ลงด้านล่าง
ที่ B6 คีย์
=IFERROR(VLOOKUP(A6,$A$15:$B$171,2,FALSE),"")
Enter > Copy ลงด้านล่าง
March201711
Gold
Posts: 1047 Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365
#5
Post
by March201711 » Fri Mar 17, 2023 11:06 am
ตรง cell D7 ทำมึ้น #REF! high light สีส้ม ยอดที่ถูกคือ 16/03/2023 ต้องปรับสูตรยังงัยคะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Fri Mar 17, 2023 11:27 am
แก้ชื่อชีตให้มี - กลางเหมือนค่าใน C7 เสียก่อนครับ
จากนั้นปรับสูตรที่ D7 เป็น
=IF(C7="","",INDIRECT("' "&LEFT(C7,FIND(" ",C7)-1)&"' !d4"))
Enter > Copy ไปใช้กับเซลล์อื่น ๆ ที่เกี่ยวข้อง
ปกติชื่อชีตควรเขียนด้วยตัวหนังสือล้วน หากมีวรรค มีตัวเลข มีเครื่องหมายใด ๆ (ที่ไม่ต้องห้าม) จะต้องครอบชื่อชีตด้วยเครื่องหมาย
' เสมอครับ
กรณีไม่เพิ่ม - ในชื่อชีต สามารถเปลี่ยนสูตรเป็น
=IF(C7="","",INDIRECT(SUBSTITUTE( LEFT(C7,FIND(" ",C7)-1),"-","") &"!d4"))
March201711
Gold
Posts: 1047 Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365
#7
Post
by March201711 » Fri Mar 17, 2023 2:01 pm
ถ้าตรง cell C7 ชื่อเป็นเป็นค่าเคาะวรรค มีชื่อต้น กลาง และนามสกุล ทำให้ค่าขึ้น #REF! ที่ cell D7 (high light สีส้ม) ยอดที่ถูกคือ 16/03/2023 ต้องปรับสูตรยังงัยคะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#8
Post
by snasui » Fri Mar 17, 2023 2:16 pm
สิ่งที่ควรทำคือต้องทราบว่า C7 มาจากไหน ตามไปแก้ต้นทางให้ถูกต้องและต้องทำเช่นนี้ในทุก ๆ งาน ไม่ใช่ไปแก้สูตรให้มีความซับซ้อนรองรับความไม่เป็นมาตรฐานของการคีย์ข้อมูลครับ
March201711
Gold
Posts: 1047 Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365
#9
Post
by March201711 » Fri Mar 17, 2023 6:40 pm
แก้ตามทุกชีทแล้วนะคะแต่ก็ยังขึ้น #REF อยู่ค่ะ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#10
Post
by snasui » Fri Mar 17, 2023 6:51 pm
แนบไฟล์ล่าสุดมาด้วยจะได้ช่วยดูให้ได้ครับ
March201711
Gold
Posts: 1047 Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365
#11
Post
by March201711 » Sat Mar 18, 2023 7:40 am
แสดงค่าที่ถูกต้อง เป็นวันที่ 16/03/2023 ที่ cell D7 ตามfileที่แนบมาค่ะ แต่ทำไมยังขึ้น #REF อยู่ค่ะอาจารย์
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#12
Post
by snasui » Sat Mar 18, 2023 8:07 am
กรุณาทำตามโพสต์ #10
การตรวจสอบสูตรจำเป็นจะต้องมีไฟล์ Excel ที่เป็นปัญหาแนบมาด้วยเสมอครับ
snasui wrote: Fri Mar 17, 2023 6:51 pm
แนบไฟล์ล่าสุดมาด้วยจะได้ช่วยดูให้ได้ครับ
March201711
Gold
Posts: 1047 Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365
#13
Post
by March201711 » Sat Mar 18, 2023 9:49 am
ตามไฟล์ที่แนบมานี้ค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#14
Post
by snasui » Sat Mar 18, 2023 10:13 am
March201711 wrote: Fri Mar 17, 2023 6:40 pm
แก้ตามทุกชีทแล้วนะคะแต่ก็ยังขึ้น #REF อยู่ค่ะ
แก้แบบนั้นถือว่าใช้ไม่ได้ครับ ควรแก้คอลัมน์ N ให้เป็นชื่อเดียวกับชื่อชีตทุกประการ สิ่งนี้ควรทำเป็นมาตรฐานหากจะต้องนำมาใช้งานลักษณะนี้ ไม่เช่นนั้นจะทำให้เกิดการเขียนสูตรที่ซับซ้อนเพราะต้องดัก Error ที่อาจจะมีได้หลากหลาย ยกตัวอย่างสูตรที่ปรับปรุงใหม่หากยัง
ไม่ ทำข้อมูลไม่เป็นมาตรฐาน
ที่เซลล์ D4 คีย์
=IF(C4="","",INDIRECT("'"&TRIM(SUBSTITUTE(C4,TEXTAFTER(C4," ",-1-ISNUMBER(FIND(",",C4))),""))&"'!d4"))
Enter > Copy ลงด้านล่าง
March201711
Gold
Posts: 1047 Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365
#15
Post
by March201711 » Sat Mar 18, 2023 10:37 am
ได้แล้วค่ะ ขอบคุณิาจารย์มากค่ะ
March201711
Gold
Posts: 1047 Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365
#16
Post
by March201711 » Mon Mar 27, 2023 2:24 pm
เกิดปัญหาอีกแล้วค่ะ ถ้าตรง cell C7 ชื่อเป็นเป็นค่าเคาะวรรค มีชื่อต้น กลาง และนามสกุล ทำให้ค่าขึ้น #REF! ที่ cell D7 (high light สีส้ม) ยอดที่ถูกคือ 21/03/2023 ต้องปรับสูตรยังงัยคะ
ยอดที่ถูกต้องต้องเป็นวันที่ 16/03/2023 ที่ cell D7 ค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#17
Post
by snasui » Mon Mar 27, 2023 11:05 pm
ผมเขียนอธิบายไว้แล้วในโพสต์ที่ 14 ด้านบน
ว่าควรทำแบบไหน อย่างไร กรุณาอ่านทบทวน ไม่เข้าใจตรงไหนค่อยถามกันต่อครับ
March201711
Gold
Posts: 1047 Joined: Sat Mar 11, 2017 7:01 pm
Excel Ver: 2010, 365
#18
Post
by March201711 » Tue Apr 04, 2023 10:23 pm
ทำไมทำตามที่อาจารย์บอกแล้ว มันขึ้น #NAME? คะ รบกวนช่วยดูให้หน่อยนะคะ ขอบคุณค่ะ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#19
Post
by snasui » Wed Apr 05, 2023 6:41 am
เป็นฟังก์ชันที่ต้องใช้กับ Excel 365 ครับ
ส่วน Error ผมอธิบายไว้แล้วว่าป้องกันเหตุการณ์นี้อย่างไรตามโพสต์นี้ครับ
snasui wrote: Sat Mar 18, 2023 10:13 am
ควรแก้คอลัมน์ N ให้เป็นชื่อเดียวกับชื่อชีตทุกประการ สิ่งนี้ควรทำเป็นมาตรฐานหากจะต้องนำมาใช้งานลักษณะนี้ ไม่เช่นนั้นจะทำให้เกิดการเขียนสูตรที่ซับซ้อนเพราะต้องดัก Error ที่อาจจะมีได้หลากหลาย
หากไม่แก้คอลัมน์ N ก็เพิ่มรายการมาที่คอลัมน์ O ก็ย่อมได้ คอลัมน์นี้จะต้องเป็นชื่อเดียวกับชื่อชีตทุกประการ โดยคอลัมน์นี้จะนำไปแสดงคอลัมน์ C เพื่อให้คอลัมน์ D อ้างอิงเอาไปใช้งาน หากเป็นเช่นนี้จะสะดวกต่อการเขียนสูตร ไม่เกิดความซับซ้อน สามารถปรับปรุงเองได้ในภายหลัง