snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ
ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
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] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
peam55
Member
Posts: 15 Joined: Fri May 02, 2014 10:00 am
#1
Post
by peam55 » Thu Jun 05, 2014 9:33 am
คือผมมี Sheet งานอยู่ 3 Sheet ใน Sheet ที่ 3 ผมจะทำการคูณค่าใน Column d ทั้ง Column กับ Column e ทั้ง Column (สมมติมีข้อมูลใน Column เยอะ)แล้วผลลัพธ์ไปขึ้นที่ Column G ต้องเขียนสูตรยังไงครับ
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 » Thu Jun 05, 2014 9:58 am
เงื่อนไขคืออะไรครับ ลองยกตัวอย่างคำตอบมาให้ดูหน่อยครับ
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
peam55
Member
Posts: 15 Joined: Fri May 02, 2014 10:00 am
#3
Post
by peam55 » Thu Jun 05, 2014 11:19 am
bank9597 wrote: เงื่อนไขคืออะไรครับ ลองยกตัวอย่างคำตอบมาให้ดูหน่อยครับ
เช่นแถวที่ 2 Column d = 100 คูณกับ แถวที่ 2 Column e = 3 คำตอบเท่ากับ โดยคำตอบขึ้นในแถวที่ 2 Column g
แถวที่ 3 Column d = 0.5 คูณกับ แถวที่ 3 Column e = 56 คำตอบเท่ากัน 28 โดยคำตอบขึ้นในแถวที่ 3 Column g ทำแบบนี้ไปเรื่อยๆครับจนครบทุกข้อมูล
แล้วส่วนในแถวที่ 4 ใน Column e ไม่มีข้อมูล เราจะเลือกไม่ต้องให้มันคูณได้ไหมครับ
ขอบคุณครับ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#4
Post
by bank9597 » Thu Jun 05, 2014 11:25 am
ที่ G2 คีย์ =IFERROR(D2*E2,"") แล้วคัดลอกสูตรลงมาครับ
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
peam55
Member
Posts: 15 Joined: Fri May 02, 2014 10:00 am
#5
Post
by peam55 » Thu Jun 05, 2014 1:55 pm
bank9597 wrote: ที่ G2 คีย์ =IFERROR(D2*E2,"") แล้วคัดลอกสูตรลงมาครับ
ขอบคุณครับ
แล้วถ้าผมจะใช้สูตรนี้ร่วมกับ VBA ได้ไหมครับ ให้มันคูณกันทีเดียวทั้งคอลัมน์
อันนั้นโค้ดครับ โดยจะให้ผลลัพธ์มันขึ้นใน Column g ในช่องที่ว่างๆอยู่ครับ
Code: Select all
Public Sub qvww()
[Table].SpecialCells(xlCellTypeBlanks).Select
For Each m In Selection
If m.Column = 7 Then
m.Value = "=calc_qvww"
m.Value = m.Value
End If
Next
End Sub
ขอบคุณครับ
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Thu Jun 05, 2014 2:29 pm
ตัวอย่าง Code ตามด้านล่างครับ
Code: Select all
Public Sub qvww()
On Error Resume Next
Set rall = Range("g:g").SpecialCells(xlCellTypeBlanks)
If Err <> 0 Then Exit Sub
For Each Z In rall
Z.Value = Z.Offset(0, -3) * Z.Offset(0, -2)
Next Z
End Sub
peam55
Member
Posts: 15 Joined: Fri May 02, 2014 10:00 am
#7
Post
by peam55 » Thu Jun 05, 2014 4:36 pm
snasui wrote: ตัวอย่าง Code ตามด้านล่างครับ
Code: Select all
Public Sub qvww()
On Error Resume Next
Set rall = Range("g:g").SpecialCells(xlCellTypeBlanks)
If Err <> 0 Then Exit Sub
For Each Z In rall
Z.Value = Z.Offset(0, -3) * Z.Offset(0, -2)
Next Z
End Sub
ขอบคุณครับ ได้แล้วครับ
แต่ผมขอถามอีกอย่างครับว่า ถ้าผมจะคำนวณตามแบบไฟล์ที่แนบมา(รายละเอียดการคำนวณอยู่ในไฟล์แนบครับ) ต้องเขียนสูตรยังไงครับที่เอามาใช้ร่วมกับ VBA เพื่อให้มันคำนวณทีเดียวทั้ง Column ครับ
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#8
Post
by snasui » Thu Jun 05, 2014 4:43 pm
สองบรรทัดในตัวอย่างมีความแตกต่างกันอย่างไรหรือต้องพิจารณาอะไรจึงใช้สูตรไม่เหมือนกันครับ
peam55
Member
Posts: 15 Joined: Fri May 02, 2014 10:00 am
#9
Post
by peam55 » Fri Jun 06, 2014 9:37 am
snasui wrote: สองบรรทัดในตัวอย่างมีความแตกต่างกันอย่างไรหรือต้องพิจารณาอะไรจึงใช้สูตรไม่เหมือนกันครับ
ถ้าผมจะหาร 1000 เขียนแบบนี้ได้ไหมครับหรือต้องแก้ยังไงครับ ตรง
q.Value = Z.Offset(0, -2) * q.Offset(0, -1) / 1000
ขอบคุณครับ
Code: Select all
Public Sub dbod()
On Error Resume Next
Set rall = Range("i:i").SpecialCells(xlCellTypeBlanks)
If Err <> 0 Then Exit Sub
For Each q In rall
q.Value = Z.Offset(0, -2) * q.Offset(0, -1) / 1000
Next q
End Sub
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#10
Post
by snasui » Fri Jun 06, 2014 9:41 am
Code ที่เขียนมาได้ผลลัพธ์
ไม่ ตรงกับที่ต้องการอย่างไรครับ
peam55
Member
Posts: 15 Joined: Fri May 02, 2014 10:00 am
#11
Post
by peam55 » Fri Jun 06, 2014 10:53 am
snasui wrote: Code ที่เขียนมาได้ผลลัพธ์
ไม่ ตรงกับที่ต้องการอย่างไรครับ
มันไม่ขึ้นผลลัพธ์ใน Column I ครับ หรือผมเขียน Code โปรแกรมเลยไม่คำนวณให้
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#12
Post
by snasui » Fri Jun 06, 2014 10:57 am
จาก Statement นี้
q.Value = Z.Offset(0, -2) * q.Offset(0, -1) / 1000 ไม่ทราบว่า
Z.Offset(0, -2) นั้นเป็นการลืมแก้หรืออ้างอิงมาใช้จากไหนครับ
peam55
Member
Posts: 15 Joined: Fri May 02, 2014 10:00 am
#13
Post
by peam55 » Fri Jun 06, 2014 11:10 am
snasui wrote: จาก Statement นี้
q.Value = Z.Offset(0, -2) * q.Offset(0, -1) / 1000 ไม่ทราบว่า
Z.Offset(0, -2) นั้นเป็นการลืมแก้หรืออ้างอิงมาใช้จากไหนครับ
ได้แล้วครับ ไม่ได้เปลี่ยนตรง Z.Offset(0, -2) ครับ ขอบคุณครับ
peam55
Member
Posts: 15 Joined: Fri May 02, 2014 10:00 am
#14
Post
by peam55 » Sat Jun 14, 2014 9:18 pm
อาจารย์ครับรบกวนอธิบายโค้ดสองบรรทัดนี้ด้วยครับ
Code: Select all
Set rall = Range("i:i").SpecialCells(xlCellTypeBlanks)
If Err <> 0 Then Exit Sub
ขอบคุณครับ
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#15
Post
by snasui » Sat Jun 14, 2014 10:59 pm
บรรทัดแรกเป็นการกำหนดค่าให้กับ rall โดยให้เป็นเซลล์ทั้งหมดที่เป็นค่าว่างในคอลัมน์ I
บรรทัดที่สองเป็นการตรวจสอบว่าหากเกิด Err ก็ให้ออกจาก Sub Procedure
peam55
Member
Posts: 15 Joined: Fri May 02, 2014 10:00 am
#16
Post
by peam55 » Sun Jun 15, 2014 10:50 am
snasui wrote: บรรทัดแรกเป็นการกำหนดค่าให้กับ rall โดยให้เป็นเซลล์ทั้งหมดที่เป็นค่าว่างในคอลัมน์ I
บรรทัดที่สองเป็นการตรวจสอบว่าหากเกิด Err ก็ให้ออกจาก Sub Procedure
ขอบคุณมากครับ