/ / एक्सेल vba - एक्सेल, vba, excel-vba, excel-2007 का उपयोग करके विलय और योग कैसे करें

एक्सेल vba - excel, vba, excel-vba, excel-2007 का उपयोग करके विलय और योग कैसे करें

Im पाठ मूल्य और राशि को मिलाने के लिए vba बनाने की कोशिश कर रहा है। उदाहरण के लिए मेरे पास डेटा नीचे है

Date         Name            Type       Amount
1 Jan        Test1            A           100
1 Jan        Test1            A           150
2 Jan        Test1            A           110
2 Jan        Test1            A           200
1 Jan        Test1            B           130
1 Jan        Test1            B           110
1 Jan        Test2            B           130
1 Jan        Test2            B           160
1 Jan        Test3            B           180

परिणाम इस तरह दिखना चाहिए

Date         Name            Type       Amount
1 Jan        Test1            A           250
2 Jan        Test1            A           310
1 Jan        Test1            B           240
1 Jan        Test2            B           290
1 Jan        Test3            B           180

मैं नीचे vba का उपयोग करने की कोशिश की है, लेकिन काम करने के लिए प्रतीत नहीं होता है VBA का उपयोग करके Excel में समान पंक्तियों को SUM / मर्ज कैसे करें?

उत्तर:

जवाब के लिए 0 № 1

निम्नलिखित के बारे में कैसे, यह आपको SumIf सूत्र का उपयोग करके वांछित परिणाम देगा, फिर कॉलम D में मानों को प्रतिस्थापित करके और डुप्लिकेट को हटा देगा:

Sub foo()
Dim ws As Worksheet: Set ws = Sheets("Sheet1")
"declare and set your worksheet, amend as required
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
"get the last row with data on Column A

ws.Range("E2").FormulaR1C1 = "=SUMIFS(C[-1],C[-4],RC[-4],C[-3],RC[-3],C[-2],RC[-2])"
"add the sumif formula
ws.Range("E2").AutoFill Destination:=Range("E2:E" & LastRow), Type:=xlFillDefault
"fill the formula down to last cell
ws.Columns("E:E").Copy
ws.Columns("E:E").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
"copy and paste as values
ws.Range("D2:D" & LastRow).Delete Shift:=xlToLeft
"remove column D"s values and bring values from Column E into it
ws.Range("$A$1:$G$" & LastRow).RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7), Header:=xlNo
"remove duplicates
End Sub