การคำนวณ Excel
Posted: Thu Jun 05, 2014 9:33 am
คือผมมี Sheet งานอยู่ 3 Sheet ใน Sheet ที่ 3 ผมจะทำการคูณค่าใน Column d ทั้ง Column กับ Column e ทั้ง Column (สมมติมีข้อมูลใน Column เยอะ)แล้วผลลัพธ์ไปขึ้นที่ Column G ต้องเขียนสูตรยังไงครับ 
คลังคำตอบแห่งความรู้จากคนไทย เพื่อโลกที่ต้องการเข้าใจในสิ่งเล็ก ๆ อย่างลึกซึ้ง
https://www.snasui.com/
เช่นแถวที่ 2 Column d = 100 คูณกับ แถวที่ 2 Column e = 3 คำตอบเท่ากับ โดยคำตอบขึ้นในแถวที่ 2 Column gbank9597 wrote:เงื่อนไขคืออะไรครับ ลองยกตัวอย่างคำตอบมาให้ดูหน่อยครับ
ขอบคุณครับbank9597 wrote:ที่ G2 คีย์ =IFERROR(D2*E2,"") แล้วคัดลอกสูตรลงมาครับ
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 SubCode: 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ขอบคุณครับ ได้แล้วครับ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
ถ้าผมจะหาร 1000 เขียนแบบนี้ได้ไหมครับหรือต้องแก้ยังไงครับ ตรง q.Value = Z.Offset(0, -2) * q.Offset(0, -1) / 1000snasui wrote:สองบรรทัดในตัวอย่างมีความแตกต่างกันอย่างไรหรือต้องพิจารณาอะไรจึงใช้สูตรไม่เหมือนกันครับ
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มันไม่ขึ้นผลลัพธ์ใน Column I ครับ หรือผมเขียน Code โปรแกรมเลยไม่คำนวณให้snasui wrote:Code ที่เขียนมาได้ผลลัพธ์ไม่ตรงกับที่ต้องการอย่างไรครับ
q.Value = Z.Offset(0, -2) * q.Offset(0, -1) / 1000 ไม่ทราบว่า Z.Offset(0, -2) นั้นเป็นการลืมแก้หรืออ้างอิงมาใช้จากไหนครับได้แล้วครับ ไม่ได้เปลี่ยนตรง Z.Offset(0, -2) ครับ ขอบคุณครับsnasui wrote:จาก Statement นี้
q.Value = Z.Offset(0, -2) * q.Offset(0, -1) / 1000ไม่ทราบว่าZ.Offset(0, -2)นั้นเป็นการลืมแก้หรืออ้างอิงมาใช้จากไหนครับ
Code: Select all
Set rall = Range("i:i").SpecialCells(xlCellTypeBlanks)
If Err <> 0 Then Exit Subขอบคุณมากครับsnasui wrote:บรรทัดแรกเป็นการกำหนดค่าให้กับ rall โดยให้เป็นเซลล์ทั้งหมดที่เป็นค่าว่างในคอลัมน์ I
บรรทัดที่สองเป็นการตรวจสอบว่าหากเกิด Err ก็ให้ออกจาก Sub Procedure