VBA Aufglieferung erkennen

Bild

Betrifft: VBA Aufglieferung erkennen
von: Dirk Schäfer
Geschrieben am: 25.08.2015 12:21:55

Hallo zusammen.
Ich habe folgende "Blockade":
Ich bekomme csv Dateien mit einer vorgegebenen Nummerierung oder besser Aufgliederung
die sich allerdings vom Aufbau her oft unterscheidet; mit füllenden nullen / Ohne, in zehnerschritten, mit 2 oder 3 Untertiteln....
aktuell z.b.:
01.
01.01.
01.01.0010.
01.01.0020.
02.
02.01.
02.01.0010.
02.01.0020. USW.
Ich möchte nun immer wenn sich der Untertitel ändert einen Summenstrich bilden und darunter ein paar Spalten weiter rechts eine Summe Bilden.
01.
01.01.
01.01.0010.
01.01.0020.
- - - - -Summe
02.
02.01.
02.01.0010.
02.01.0020.
- - - - -Summe
Hat jemand eine Idee ?
Besten Dank im voraus

Bild

Betrifft: Also ich erkenne keinen Unterschied
von: Jack_d
Geschrieben am: 25.08.2015 13:08:06
allerdings vom Aufbau her oft unterscheidet; mit füllenden nullen / Ohne, in zehnerschritten, mit 2 oder 3 Untertiteln
die Daten die du Beispielhaft eingestellt hast nicht wirklich heterogen.
Oder überseh ich da was?
Grüße

Bild

Betrifft: AW: Also ich erkenne keinen Unterschied
von: Dirk Schäfer
Geschrieben am: 28.08.2015 08:03:03
Besten Dank erst mal.
innerhalb einer CSV sind die Daten ja Strukturiert, nur von CSV zu CSV gibt es halt unterschiede.
hier mal ein Beispiel wie das dann in der Excel-Tabelle aussehen sollte...
https://www.herber.de/bbs/user/99867.xlsx

Bild

Betrifft: AW: VBA Aufglieferung erkennen
von: Matthias
Geschrieben am: 25.08.2015 13:21:05
Hallo Dirk,
hast du nur die Namen der CSV-Daten in einer Tabelle?
Für den Summenstrich nimm eine 'Bedingte Formatierung' mit der Formel:

=LINKS(INDIREKT("ZS1";0);2)<>LINKS(INDIREKT("Z(1)S1";0);2)

Setze dabei den Strich an den unteren Rand und anwenden auf alle Spalten in denen der vorkommen soll.
Für die Anzeige von Summe die ganze Spalte mit folgender Formel ausfüllen:
=WENN(LINKS(INDIREKT("Z(-1)S1";0);2)<>LINKS(INDIREKT("ZS1";0);2);"Summe";"")
Für die Summenformel:
Nimm obige Formel und ersetze "Summe" durch deine Summenformel.
Beispielmappe: https://www.herber.de/bbs/user/99817.xlsx
lg Matthias

Bild

Betrifft: Alternativ zu indirekt
von: Jack_d
Geschrieben am: 25.08.2015 13:35:58
auch gern mit Index

=INDEX($A$1:$A$8;ZEILE()-1)
Grüße

Bild

Betrifft: AW: interessant...
von: Matthias
Geschrieben am: 25.08.2015 14:05:38
... mit Index hab ich das so noch nicht probiert. Gleich mal bissl spielen gehen :)
lg Matthias

Bild

Betrifft: AW: interessant...
von: Jack_d
Geschrieben am: 25.08.2015 14:10:13
Hallo Matthias,
indirekt() hat gegenüber index() den klaren Nachteil das es eine volatile Funktion ist.
Dh. Sie wird bei jedem Anlass neu berechnet.
Das wiederum sorgt für eine belastung der Performance.
Daher sollte man Bereich.verschieben() und indirekt() soweit möglich immer vermeiden.
Es soll ja auch Leute geben, die meinen, man kann diese Formeln gänzlich substituieren. (Siehe mein Beispiel)
Grüße
Weiterführende Informationen zB hier
http://www.online-excel.de/excel/singsel.php?f=171

 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA Aufglieferung erkennen"