Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Liste auswerten - bereinigen

Liste auswerten - bereinigen
31.01.2008 14:37:03
Petra
Hallo liebe Excelfreunde
Ich muß eine grosse Liste bereinigen nach folgendem Kriterium: die Liste besteht aus Materialnummern und Beträgen(positiv und negativ Beträge). Jetzt sollen alle gleichen Materialnummer saldiert werden, ergibt die Summe Null, dann sollen alle Zeilen derjenigen Materialnummer gelöscht werden.
Wie kann ich die Aufgabe schnellstens lösen, sind ca. 250 Materialnummern und die Gesamtliste umfasst ca. 35.000 Zeilen.
Wer kann mir den entscheidenden Tipp geben? Vielleicht per VBA!
Vielen Dank und liebe Grüße
Petra

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Liste auswerten - bereinigen
31.01.2008 14:41:35
Josef
Hallo Petra,
das geht doch auch per Filter und Formel.
Nimm zuerst den Spezialfilter "ohne Dupplikate" und Filtere die Liste an eine andere Stelle. Guckst Du: Spezialfilter (1) - Duplikate wegfiltern
Dann nimmst du SUMMEWENN() und Filterst das Ergebniss nach "0".

Gruß Sepp



Anzeige
AW: Liste auswerten - bereinigen
31.01.2008 14:46:00
Rudi
Hallo,
mit SUMMEWENN den Saldo ermitteln, nach 0 filtern und die Zeilen löschen.
Gruß
Rudi
Eine Kuh mach muh, viele Kühe machen Mühe.

AW: Liste auswerten - bereinigen
31.01.2008 15:00:00
Petra
Hallo ihr beiden
vielen Dank für Euren Tipp. Nur klappt das Ganze nicht so. Manuelle Aufgaben sind nicht gefragt, da das alles öfter mit den verschiedensten Listen laufen soll (auf Knopfdruck). Die Summewenn klappt auch so nicht ganz, da ich ja ersteinmal ermitteln muss, wieviel verschiedene Materialnummern es sind und dann auch welche. Manuell muüsste ich ja mindestens 200 bis 250 mal die Formel ausführen und dann feststellen, die Summe ergibt Null ( dann alle relevanten Zeilen löschen) oder die Summe ergibt nicht Null. Ich hoffe, ihr erkennt mein Problem!
Nochmals liebe Grüße
Petra

Anzeige
AW: Liste auswerten - bereinigen
31.01.2008 15:16:26
Mag
Hi,
Spalte A ab Zeile 2 stehen Materialnummern, Spalte B ab Zeile 2 Umsätze, Spalte C in Zeile 2 folgende
Formel. Formel kopieren und bis Listenende kopieren. Dann Spalte C nach 0 Filtern (s.o.) und Zeilen löschen.

=SUMMENPRODUKT(($A$2:$A$7=A2)*$B$2:$B$7)


Gruss

Anzeige
AW: Liste auswerten - bereinigen
31.01.2008 15:17:38
Mag
... wobei A7 und B7, also Zeile 7 auf DEIN Listenende anzupassen wäre ...

AW: Liste auswerten - bereinigen
31.01.2008 15:40:00
Petra
Hallo Mag
ich kann nur sagen "Quick und prima"
Danke
und einen schönen Tag noch
Petra

AW: Liste auswerten - bereinigen
31.01.2008 15:18:00
Rudi
Hallo,

Manuell muüsste ich ja mindestens 200 bis 250 mal die Formel ausführen


Unsinn!
Wenn deine MatNr in A und die Beträge in B stehen
In eine Hilfsspalte: =Summewenn(A:A;A2;BB)
Nach 0 filtern, alles markieren und die Zeilen löschen.
Das dauert ca. 15 Sekunden.
Gruß
Rudi
Eine Kuh mach muh, viele Kühe machen Mühe.

Anzeige
AW: Liste auswerten - bereinigen
31.01.2008 15:19:00
Josef
Hallo Petra,
na dann, probier mal. (bezieht sich immer auf das aktive Blatt)
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub FilterMatNr()
Dim a As Variant, b As Variant, c As Variant
Dim lngR As Long, l As Long, n As Long

lngR = Cells(Rows.Count, 1).End(xlUp).Row

a = Range("A1:B" & lngR)

Redim b(1 To lngR)
Redim c(1 To lngR)

For l = 1 To lngR
    If IsNumeric(a(l, 2)) Then
        If Application.SumIf(Range("A1:A" & lngR), a(l, 1), Range("B1:B" & lngR)) > 0 Then
            If Not IsNumeric(Application.Match(a(l, 1), b, 0)) Then
                n = n + 1
                b(n) = a(l, 1)
                c(n) = Application.SumIf(Range("A1:A" & lngR), a(l, 1), Range("B1:B" & lngR))
            End If
        End If
    Else
        n = n + 1
        b(n) = a(l, 1)
        c(n) = a(l, 2)
    End If
Next

Range("A1:B" & lngR).ClearContents

If n > 0 Then
    Range("A1:A" & n) = Application.Transpose(b)
    Range("B1:B" & n) = Application.Transpose(c)
End If

End Sub


Gruß Sepp



Anzeige
AW: Liste auswerten - bereinigen
31.01.2008 15:41:00
Petra
Hallo Sepp
auch Dir vielen Dank, muß es aber noch richtig durchtesten, schaut aber schon ganz gut aus!
Einen schönen Tag noch und liebe Grüße
Petra
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige