Microsoft Excel

Herbers Excel/VBA-Archiv

Zellen aus Zeilen nach Kriterien zusammenführen


Betrifft: Zellen aus Zeilen nach Kriterien zusammenführen von: Florian
Geschrieben am: 25.01.2018 13:03:43

Hallo liebes Forum,
Ich stehe vor einem großen Problem und habe leider keine VBA Kenntnisse, gehe aber davon aus dass diese benötigt werden. Habe auch im Internet und auch in diesem Forum recherchiert aber noch keine Lösung gefunden.
Vereinfacht gesagt sollen Buchungszeilen einer Neuseeländischen Software in ein österreichisches Buchhaltungsprogramm eingespielt werden (BMD). Das Hauptproblem hierbei ist, dass das Exportfile die Daten in mehreren Zeilen ausgibt, in der Importdatei jedoch die Daten einzeilig benötigt werden.
Anbei die Exportdatei (Tabelle 1), die verschiedenen Zeilen die zusammengehören sind an der Journalzeilennummer (Spalte A, Datenbank-ID) zu erkennen.

https://www.herber.de/bbs/user/119252.xlsx

Als ersten Schritt sollten die Daten idealerweise so wie in Tabelle 2 dargestellt (das "Gegenkonto" z.B. in Spalte K), zusammengeführt werden. Die Zeilen die "zu viel" sind sollten in der Ausgabe nicht mehr dargestellt werden. Um auch die Steuer korrekt darzustellen benötigt es einen Hinweis auf die Steuer oder den Nettobetrag aus der zweiten Zeile (die ja dann nicht mehr aufscheint - im Output als Nettobetrag in Spalte L dargestellt).
Ich habe echt keine Ahnung ob das möglich ist, würde mich aber sehr über Anregungen und Vorschläge freuen.
Vielen Dank,
Florian

  

Betrifft: Zellen aus Zeilen nach Kriterien zusammenführen von: Rudi Maintaire
Geschrieben am: 25.01.2018 13:45:06

Hallo,
A2: =KKLEINSTE(Tabelle1!A:A;1+ZÄHLENWENN(Tabelle1!A:A;"<=" &A1))
B2:G2; I2:J2 per SVERWEIS()
H2: =TEXT(F2*10000;"#\.0000")
K2: =INDEX(Tabelle1!D:D;VERGLEICH(A2;Tabelle1!A:A;)+1)
L2: =WENN(F2<0;SUMMEWENNS(Tabelle1!F:F;Tabelle1!A:A;A2;Tabelle1!F:F;">0");SUMMEWENNS(Tabelle1!F:F;Tabelle1!A:A;A2;Tabelle1!F:F;"<0"))

Und runterkopieren bis in A das erste mal #ZAHL! auftaucht.

Gruß
Rudi


  

Betrifft: AW:VBA von: Phi
Geschrieben am: 25.01.2018 14:09:49

@Florian,

für das gezeigte Beispiel geht:

Sub iPhi()
Dim WSF As WorksheetFunction: Set WSF = Application.WorksheetFunction
Dim N As Integer, lr As Long
lr = Tabelle2.Cells(Rows.Count, 1).End(xlUp).Row + 3
With Tabelle1
    For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
        N = WSF.CountIf(.Range(.Cells(2, 1), .Cells(i, 1)), .Cells(i, 1))
        If N = 1 Then
            'Debug.Print i, Cells(i, 1), N
            .Range(.Cells(i, 1), .Cells(i, 10)).Copy Tabelle2.Cells(lr, 1)
            Tabelle2.Cells(lr, 11) = .Cells(i, 4).Offset(1)
            Tabelle2.Cells(lr, 12) = -.Cells(i, 6)
            lr = lr + 1
        End If
    Next i
End With
End Sub
Meistens ist es etwas riskant Code für in VBA wenig erfahrene FRagesteller zu liefern. Falls Änderungen notwendig werden, kann das ein Problem werden.

Schaun wir mal ...


  

Betrifft: AW: AW:VBA von: Florian
Geschrieben am: 25.01.2018 16:32:04

Wahnsinn, vielen Dank. Hab nicht damit gerechnet so schnell etwas zu bekommen.
@ Rudi: aktuell fühl ich mich mit Deiner Lösung etwas wohler weil mir die Formeln zumindest einzeln vertraut sind.
@ Phi: Ich fange gerade an mich im Selbststudium ein wenig mit VBA zu beschäftigen, insofern ist es für mich genial hier mal ein "Beispiel in Action" zu sehen.
Ich muss aber gestehen dass ich noch eine Sache übersehen habe die ich in meiner Beschreibung nicht erklärt habe.
In dem Excel File hat zum Beispiel Journalnummer 6642 in Summe sieben Zeilen. Einmal in Spalte D mit dem Account Code 3300, und 6 mal mit dem Account Code 7349. Es kommt aber auch hin und wieder vor, dass unter einer Journalnummer zuerst der Account Code 3300 kommt, und dann 4 mal der Account Code 7349, und zweimal der Account Code 7671 vorkommt - eine sogenannte Splitbuchung.
In so einem Fall bräuchte ich die Zeile zwei mal, einmal würde dann beim Gegenkonto die Zahl 7349 stehen und einmal die Zahl 7671. In der Spalte Net Amount müssten die Werte entsprechend des AccountCodes aufsummiert werden. Auch benötige ich in dem Fall eine Spalte mit Gross Amount und GST Amount. Natürlich kann ich diese Werte dann auch mit einer Summewenns-Funktion anhand von Journalnummer und Kontonummer berechnen aber vielleicht fällt Euch ja was ein...
Hier ein Kurzbeispiel...

https://www.herber.de/bbs/user/119266.xlsx

Seht ihr hier auch noch eine Möglichkeit?
Nochmals vielen Dank für Eure schnelle Hilfe,
Florian


  

Betrifft: AW: nicht OK, aber KO von: Phi
Geschrieben am: 25.01.2018 16:47:10

@Florian

ich hatte schon vermutet, dass es auch andere Varianten gibt.

Aber wer seine Fragen so sschlecht vorbereitet, landet im Aus


  

Betrifft: AW: Zellen aus Zeilen nach Kriterien zusammenführen von: Florian
Geschrieben am: 25.01.2018 16:30:29

Wahnsinn, vielen Dank. Hab nicht damit gerechnet so schnell etwas zu bekommen.
@ Rudi: aktuell fühl ich mich mit Deiner Lösung etwas wohler weil mir die Formeln zumindest einzeln vertraut sind.
@ Phi: Ich fange gerade an mich im Selbststudium ein wenig mit VBA zu beschäftigen, insofern ist es für mich genial hier mal ein "Beispiel in Action" zu sehen.
Ich muss aber gestehen dass ich noch eine Sache übersehen habe die ich in meiner Beschreibung nicht erklärt habe.
In dem Excel File hat zum Beispiel Journalnummer 6642 in Summe sieben Zeilen. Einmal in Spalte D mit dem Account Code 3300, und 6 mal mit dem Account Code 7349. Es kommt aber auch hin und wieder vor, dass unter einer Journalnummer zuerst der Account Code 3300 kommt, und dann 4 mal der Account Code 7349, und zweimal der Account Code 7671 vorkommt - eine sogenannte Splitbuchung.
In so einem Fall bräuchte ich die Zeile zwei mal, einmal würde dann beim Gegenkonto die Zahl 7349 stehen und einmal die Zahl 7671. In der Spalte Net Amount müssten die Werte entsprechend des AccountCodes aufsummiert werden. Auch benötige ich in dem Fall eine Spalte mit Gross Amount und GST Amount. Natürlich kann ich diese Werte dann auch mit einer Summewenns-Funktion anhand von Journalnummer und Kontonummer berechnen aber vielleicht fällt Euch ja was ein...
Hier ein Kurzbeispiel...

https://www.herber.de/bbs/user/119266.xlsx

Seht ihr hier auch noch eine Möglichkeit?
Nochmals vielen Dank für Eure schnelle Hilfe,
Florian


Beiträge aus dem Excel-Forum zum Thema "Zellen aus Zeilen nach Kriterien zusammenführen"