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
:D ชว่ยเขียนตัวอย่างคำตอบที่ถูกต้องลงมาด้วยจะได้สะดวกในการทำความเข้าใจและปรับ 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 ผลลัพธ์ แบบนี้ครับ
:D ช่วยอธิบายเพิ่มว่ามาอย่างละเอียดว่า D2:E5 มีวิธีคิดอย่างไรจึงนำมาแสดงเช่นนั้น เนื่องจากดูแล้วไม่สามารถหาความสัมพันธ์ระหว่างข้อมูลต้นทางกับตัวอย่างคำตอบที่ให้มาได้ครับ

Re: สอบถามเกี่ยวกับผลรวม ของวันที่เดียวกันหน่อยครับ

Posted: Thu Jul 19, 2018 8:11 am
by xou
ขอโทษที่อธิบายไม่ชัดเจนครับ

Re: สอบถามเกี่ยวกับผลรวม ของวันที่เดียวกันหน่อยครับ

Posted: Thu Jul 19, 2018 10:06 pm
by snasui
:D ตัวอย่าง 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 :D ตัวอย่าง 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 :D ตัวอย่าง 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 ผมต้องแก้ปรับเปลี่นตรงไหนยังไงครับ เผื่อวันหน้าผมอาจจะเอาผลรวมมารวมที่ตำแหน่งอื่น อาจจะเพิ่มเงื่อนไขอื่นๆเข้าไปอีก

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