Page 1 of 1
สอบถามเกี่ยวกับผลรวม ของวันที่เดียวกันหน่อยครับ
Posted: Mon Jul 16, 2018 3:51 pm
by xou
สอบถามเกี่ยวกับผลรวม ของวันที่เดียวกันหน่อยครับ
ผมเคยลองเอางานเก่ามาปรับใช้ใหม่แล้วมันก็ยังทำไม่ได้รบกวนชี้แนะด้วยครับ ขอบคุณครับ
ผมอยากให้ จำนวน ของวันที่เดียวกันมันรวมกัน ในตำแหน่งที่เรากำหนด โดยข้อมูลที่จะใช้ชี้มันอาจมีมากกว่านั้น
Re: สอบถามเกี่ยวกับผลรวม ของวันที่เดียวกันหน่อยครับ
Posted: Mon Jul 16, 2018 4:04 pm
by Supachok
D2
=SUMIF($A$2:$B$17,C2,$B$2:$B$17)
Re: สอบถามเกี่ยวกับผลรวม ของวันที่เดียวกันหน่อยครับ
Posted: Tue Jul 17, 2018 8:31 am
by xou
ปล.ลืมบอก vba ครับ ขอบคุณครับ
Re: สอบถามเกี่ยวกับผลรวม ของวันที่เดียวกันหน่อยครับ
Posted: Tue Jul 17, 2018 7:11 pm
by snasui

ชว่ยเขียนตัวอย่างคำตอบที่ถูกต้องลงมาด้วยจะได้สะดวกในการทำความเข้าใจและปรับ Code ครับ
Re: สอบถามเกี่ยวกับผลรวม ของวันที่เดียวกันหน่อยครับ
Posted: Wed Jul 18, 2018 8:42 am
by xou
ผลลัพธ์ แบบนี้ครับ
Re: สอบถามเกี่ยวกับผลรวม ของวันที่เดียวกันหน่อยครับ
Posted: Wed Jul 18, 2018 7:39 pm
by snasui
xou wrote: Wed Jul 18, 2018 8:42 am
ผลลัพธ์ แบบนี้ครับ

ช่วยอธิบายเพิ่มว่ามาอย่างละเอียดว่า D2:E5 มีวิธีคิดอย่างไรจึงนำมาแสดงเช่นนั้น เนื่องจากดูแล้วไม่สามารถหาความสัมพันธ์ระหว่างข้อมูลต้นทางกับตัวอย่างคำตอบที่ให้มาได้ครับ
Re: สอบถามเกี่ยวกับผลรวม ของวันที่เดียวกันหน่อยครับ
Posted: Thu Jul 19, 2018 8:11 am
by xou
ขอโทษที่อธิบายไม่ชัดเจนครับ
Re: สอบถามเกี่ยวกับผลรวม ของวันที่เดียวกันหน่อยครับ
Posted: Thu Jul 19, 2018 10:06 pm
by snasui

ตัวอย่าง Code ครับ
Code: Select all
Dim rAll As Range, rAll1 As Range, r As Range
Dim i As Integer
With Sheets("Value")
Set rAll = .Range("a2", .Range("a" & .Rows.Count).End(xlUp))
For i = rAll.Count To 1 Step -1
If i = 1 Then Exit For
If rAll(i) <> rAll(i - 1) Then
rAll(i).EntireRow.Insert
End If
Next i
Set rAll1 = .Range("a2", .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0))
For i = rAll1.Count To 1 Step -1
If rAll1(i).Offset(0, 1) = "" Then
rAll1(i).Offset(0, 1).Value = Application.SumIf(rAll1, rAll1(i).Offset(-1, 0), rAll1.Offset(0, 1))
End If
If rAll1(i).Row = 3 Then Exit Sub
If rAll1(i - 2).Value <> "" Then rAll1(i - 1).Value = ""
Next i
End With
Re: สอบถามเกี่ยวกับผลรวม ของวันที่เดียวกันหน่อยครับ
Posted: Fri Jul 20, 2018 3:21 pm
by xou
snasui wrote: Thu Jul 19, 2018 10:06 pm

ตัวอย่าง Code ครับ
Code: Select all
Dim rAll As Range, rAll1 As Range, r As Range
Dim i As Integer
With Sheets("Value")
Set rAll = .Range("a2", .Range("a" & .Rows.Count).End(xlUp))
For i = rAll.Count To 1 Step -1
If i = 1 Then Exit For
If rAll(i) <> rAll(i - 1) Then
rAll(i).EntireRow.Insert
End If
Next i
Set rAll1 = .Range("a2", .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0))
For i = rAll1.Count To 1 Step -1
If rAll1(i).Offset(0, 1) = "" Then
rAll1(i).Offset(0, 1).Value = Application.SumIf(rAll1, rAll1(i).Offset(-1, 0), rAll1.Offset(0, 1))
End If
If rAll1(i).Row = 3 Then Exit Sub
If rAll1(i - 2).Value <> "" Then rAll1(i - 1).Value = ""
Next i
End With
ถ้าไม่เป็นการรบกวนขอคำอธิบายโค้ดนี้หน่อยได้ไหมครับ
พอดีว่าเผื่อผมเอาไปใช้ในอนาคตด้วย
แก้ไขเพิ่มเติม
แล้วถ้าสมมุติว่าผมอยากเปลี่ยน ตรงผลรวมมารวมที่ตำแหน่ง C2 ผมต้องแก้ปรับเปลี่นตรงไหนยังไงครับ เผื่อวันหน้าผมอาจจะเอาผลรวมมารวมที่ตำแหน่งอื่น อาจจะเพิ่มเงื่อนไขอื่นๆเข้าไปอีก
ขอบคุณครับ
Re: สอบถามเกี่ยวกับผลรวม ของวันที่เดียวกันหน่อยครับ
Posted: Fri Jul 20, 2018 5:05 pm
by xou
เพิ่มเติมจากข้างบน กดแก้ไขไม่ได้
หรืออาจจะสมมุติว่าบางทีเอาแค่ผลรวมของวัน บรรทัดต่อไปก็อีกวัน จะต้องแก้ไขส่วนไหน รบกวนด้วยครับ
Re: สอบถามเกี่ยวกับผลรวม ของวันที่เดียวกันหน่อยครับ
Posted: Fri Jul 20, 2018 10:28 pm
by snasui
xou wrote: Fri Jul 20, 2018 3:21 pm
snasui wrote: Thu Jul 19, 2018 10:06 pm

ตัวอย่าง Code ครับ
Code: Select all
Dim rAll As Range, rAll1 As Range, r As Range
Dim i As Integer
With Sheets("Value")
Set rAll = .Range("a2", .Range("a" & .Rows.Count).End(xlUp))
For i = rAll.Count To 1 Step -1
If i = 1 Then Exit For
If rAll(i) <> rAll(i - 1) Then
rAll(i).EntireRow.Insert
End If
Next i
Set rAll1 = .Range("a2", .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0))
For i = rAll1.Count To 1 Step -1
If rAll1(i).Offset(0, 1) = "" Then
rAll1(i).Offset(0, 1).Value = Application.SumIf(rAll1, rAll1(i).Offset(-1, 0), rAll1.Offset(0, 1))
End If
If rAll1(i).Row = 3 Then Exit Sub
If rAll1(i - 2).Value <> "" Then rAll1(i - 1).Value = ""
Next i
End With
xou wrote: Fri Jul 20, 2018 5:05 pm
เพิ่มเติมจากข้างบน กดแก้ไขไม่ได้
หรืออาจจะสมมุติว่าบางทีเอาแค่ผลรวมของวัน บรรทัดต่อไปก็อีกวัน จะต้องแก้ไขส่วนไหน รบกวนด้วยครับ
ถ้าไม่เป็นการรบกวนขอคำอธิบายโค้ดนี้หน่อยได้ไหมครับ
พอดีว่าเผื่อผมเอาไปใช้ในอนาคตด้วย
แก้ไขเพิ่มเติม
แล้วถ้าสมมุติว่าผมอยากเปลี่ยน ตรงผลรวมมารวมที่ตำแหน่ง C2 ผมต้องแก้ปรับเปลี่นตรงไหนยังไงครับ เผื่อวันหน้าผมอาจจะเอาผลรวมมารวมที่ตำแหน่งอื่น อาจจะเพิ่มเงื่อนไขอื่นๆเข้าไปอีก
ขอบคุณครับ

กรุณาถามมาเฉพาะส่วนที่ไม่เข้าใจ การเปลี่ยนตำแหน่งการวางก็ต้องปรับมาเองเช่นกัน ปรับได้เท่าไรก็เท่านั้น ติดตรงไหนค่อยถามกันต่อ การให้คำตอบในแต่ละคำถามจะต้องผ่านการปรับปรุงมาเองแต่ยังติดปัญหาครับ