2016-10-27 6 views
0

Was wäre der beste Weg, um ähnliche Zeilen zusammenführen (nur Bestellnummer Brief anders a4; a6; a8 und produzierte Menge) und Summe (produzierte Menge e4; e6; e8) Zellen? Dies ist, wie Excel-Tabelle enter image description hereExcel verschmelzen ähnliche Zeilen und Summen Zellen

Klärung aussieht: Hier wird der Ausgang ich suche enter image description here

Zeilen 4; 6; 8 sind die gleichen, außer Spalte Reihenfolge (ein Buchstabe hinzugefügt am 6 und 8) und Produzierte Säule (unterschiedliche produzierte Menge). Die Zeilen 4,6,8 werden zusammengeführt und die produzierte Menge wird summiert. Zeilen 6,8 ist ausgeblendet oder gelöscht.

+0

Können Sie erklären, was Sie mit „ähnlichen fusionieren bedeuten Reihen"? Vielleicht würde eine Probe von dem, was Sie erwarten, dass die Ausgabe aussehen würde, helfen. Was hast du bisher versucht? – BruceWayne

+0

@BruceWayne Hallo. Ich habe eine Klarstellung hinzugefügt. – ArnoldasM

Antwort

2

Hier ist ein Beispiel, das Ihr Problem lösen könnte:

Sub test() 

i = 1 
produced = 0 
While Cells(i, 1) <> "" Or Cells(i + 1, 1) <> "" 
    If Cells(i, 1) <> "" Then 

     produced = Cells(i, 5) 

     j = 1 
     'second loop to add up every line with the same order, then suppress the lines 
     While Cells(j, 1) <> "" Or Cells(j + 1, 1) <> "" 
      If Left(Cells(j, 1), 7) = Left(Cells(i, 1), 7) And i <> j Then 
       produced = produced + Cells(j, 5) 
       Cells(j, 5).EntireRow.Select 
       Selection.Delete Shift:=xlUp 
       j = j - 1 
      End If 

      j = j + 1 
     Wend 

    End If 

i = i + 1 
Wend 
+0

Danke @Bitoubi für Hilfe. In der Vollversion meiner Excel-Tabelle ist die Spalte 20, also habe ich die Zellen (j, 5) in Zellen (j, 20) geändert. und meine Bestellnummer ist 123456-7 oder 123456-78 (acht oder neun Symbole lang), also habe ich Cells (j, 1), 7 in Cells (j, 1), 9 geändert, kann aber immer noch nicht funktionieren. Vielleicht weißt du was falsches könnte es sein? und btw, Arbeitsmappe hat 200 bis 500 Zeilen. – ArnoldasM

+0

Danke, mit ein bisschen Modifikation habe ich es geschafft, es zum Laufen zu bringen. :) – ArnoldasM

+1

Schön - ich schlage jedoch vor, dass Sie [die Verwendung von '.Select' entfernen] (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba- Makros). Die Zeile wäre nur 'Zellen (j, 5) .EntireRow.Delete Shift: = xlUp' – BruceWayne

0

Ok mich, hier wird das modifizierte @Bitoubi Code, der dazu beigetragen:

Sub RemoveSplitOrders() 
i = 1 
produced = 0 
While Cells(i, 1) <> "" Or Cells(i + 1, 1) <> "" 
    If Cells(i, 1) <> "" Then 

     produced = Cells(i, 20) 

     j = 1 
     'second loop to add up every line with the same order, then suppress the lines 
     While Cells(j, 1) <> "" Or Cells(j + 1, 1) <> "" 
      If Left(Cells(j, 1), 8) = Left(Cells(i, 1), 8) Or Left(Cells(j, 1), 9) = Left(Cells(i, 1), 9) Then 
       If Cells(j, 2) = Cells(i, 2) And i <> j Then 
        produced = produced + Cells(j, 20) 
        Cells(i, 20).Value = produced 
        Range(Cells(j, 20), Cells(j + 1, 20)).EntireRow.Delete Shift:=xlUp 
        j = j - 1 
       End If 
      End If 

      j = j + 1 
     Wend 

    End If 

i = i + 1 
Wend 
End Sub 
Verwandte Themen