Guten Morgen,
ich möchte in einer Spalte einen Text suchen und in einer anderen Zelle ausgeben lassen. Wenn der Text gefunden wurde, soll der Rest der Spalte nach dem Aufttreten des Textes durchsucht werden. Dafür müsste ich ja den Bereich ändern, aber ich weiß nicht ob das dynamisch geht. Geht das nur mit VBA oder auch mit normalen Excelformeln?
LG, guine
Danke Shift-Del für die schnelle Antwort. Ich fürchte, ich war noch gar nicht präzise genug. Ich habe mal ein Beispiel angehängt.
Ich habe mehrere Spalten mit Text wie im Beispiel und eigentlich möchte ich die Zahlen addieren, die ich in den Spalten finde, aber erst nachdem ein bestimmter Text gefunden wurde, bzw in einem bestimmten Bereich. Ich dachte, wenn ich erst mal weiß, wie ich den Bereich finde, kriege ich den Rest schon hin, aber tatsächlich klappt das mit finden auch nicht so recht
D.h. wenn Text A gefunden wurde, sollen Zahlen, die nach Text B auftauchen addiert werden bis zum nächsten auftauchen von Text A oder bis zum Ende.
Hi,
mit deiner Beispieltabelle lässt sich leider nichts anfangen. An was machst du fest, welcher Bereich in Sp. B summiert werden soll. Das kommt nicht rüber. Mal etwas Generelles:
Eine Beispieltabelle soll zwar anonymisiert sein und auch nur wenige Datensätze enthalten. Wichtig ist aber, dass sie vom Aufbau und vom Sinn her dem Original gleicht. Dann lässt sich oftmals schon mit wenigen Worten ableiten, wohin die Reise geht.
(26.02.2017, 09:35)guine schrieb: [ -> ]Beispiel.xls Beispiel.xls (Größe: 8,66 KB / Downloads: 1)
Ich erhalte den Hinweis dass Dateiformat und Dateiendung nicht zu einander passen und dass die Datei vielleicht beschädigt ist.
Hi Detlef,
ich habe dieselbe Meldung erhalten und ganz mutig den Vorkoster gespielt. Nach Bestätigung der Meldung wurde die Datei normal geladen und konnte ohne Problem geöffnet werden. Hier mal als Tab.-Ausschnitt:
Tabelle1 | A | B | C |
1 | Text B: 3 kann variieren | Summe aller Zahlen bis A2 | ? |
2 | Ein Text enthält den gesuchten Text A irgendwo | Summe aller Zahlen von A3 bis A15 | ? |
3 | Text B: 2 kann variieren | Summe aller Zahlen ab A17 | ? |
4 | irrelevanter Text | | |
5 | Text B: 2 kann variieren | | |
6 | Text B: 5 kann variieren | | |
7 | Text B: 2 kann variieren | | |
8 | irrelevanter Txt | | |
9 | Text B: 2 kann variieren | | |
10 | Text B: 6 kann variieren | | |
11 | Text B: 2 kann variieren | | |
12 | Text B: 2 kann variieren | | |
13 | Text B: 2 kann variieren | | |
14 | Text B: 2 kann variieren | | |
15 | Text B: 2 kann variieren | | |
16 | Ein weiterer Text enthält den gesuchten Text A irgendwo anders | | |
17 | Text B: 2 kann variieren | | |
18 | Text B: 2 kann variieren | | |
19 | Text B: 8 kann variieren | | |
20 | Text B: 2 kann variieren | | |
21 | Text B: 2 kann variieren | | |
22 | irrelevanter Text | | |
23 | Text B: 2 kann variieren | | |
24 | Text B: 2 kann variieren | | |
25 | Text B: 9 kann variieren | | |
26 | Text B: 2 kann variieren | | |
27 | Text B: 2 kann variieren | | |
Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Hallo,
wenn ich das richtig verstanden habe dann vielleicht mit dem folgenden VBA-Code der in ein allgemeines Modul der Datei gehört:
Code:
Public Function Summe_Spezial(bereich As Range)
'http://www.office-loesung.de/fpost2164562.php#2164562
Dim L As Long
Dim I As Integer
Dim arr As Variant
Dim Regex As Object
arr = bereich
Set Regex = CreateObject("Vbscript.Regexp")
With Regex
.Pattern = "(\d+,\d+|\d+)"
For L = LBound(arr) To UBound(arr)
For I = LBound(arr, 2) To UBound(arr, 2)
If Not IsError(arr(L, I)) Then
If .test(arr(L, I)) Then
Summe_Spezial = Summe_Spezial * 1 + .Execute(arr(L, I))(0) * 1
End If
End If
Next
Next
End With
End Function
Der Aufruf erfolgt dann z.B. in C2 so:
=Summe_Spezial(A1:A2)
- Öffne mit Alt+F11 den VBA-Editor
- mit Strg+R den Projekt-Explorer öffnen und aktivieren
- die gewünschte Datei per Doppelklick markieren
- Tastenkombination Alt+E und dann M drücken
- in der rechten Fensterhälfte ist jetzt ein leeres Modul eingefügt worden
- in dieses Modul muss der Code eingefügt werden
- im Projektexplorer wird das Modul unter der Datei angezeigt
- speichen und den VBA-Editor mit Alt+F4 schliessen
- die Funktion steht dir jetzt in dieser Datei zur Verfügung
Hallo Peter
Also geht es im ersten Schritt darum die Zahlen aus Spalte A zu extrahieren und dann nach dem Kriterium "Text A" die Abschnitte zu bestimmen über die summiert wird.
Ich versuche es zu konkretisieren:
Bisher mach ich das nicht fest, sondern ich sehe ja wann Text A auftaucht, das ist in der zweiten und der 16.Zeile.
Der Bereich der summiert werden soll ist also:
- der Bereich vor dem ersten Auftreten von Text A in der zweiten Zeile,
- der Bereich nach dem ersten Auftreten von Text A in der zweiten Zeile bis zum Auftauchen von Text A in der 16. Zeile
- der Bereich nach dem Auftreten von Text A in der 16. Zeile bis zum Ende
Wobei Text A in anderen Spalten an einer anderen Stelle auftauchen kann.
Ich habe keine Ahnung, ob man diesen Bereich ohne VBA dynamisch erkennen lassen kann.
Ist es jetzt verständlicher geworden?
Ich hatte die Datei umbenannt und da das x am Ende von xlsx weggelassen. Soll ich die nochmal mit der korrekten Endung anhängen?
LG, guine
Hallo Peter,
die Formel ist schon super und löst einen großen Teil meines Problems.
Aber ich weiß nicht wie ich an eine solche Formel einen Bereich übergeben kann, der sich ändert je nachdem was in der Spalte steht.
LG, guine
Edit: Gibt es eine gute vba Seite, damit ich die Formel verstehen kann? Ich verstehe leider nicht mal den punkt bei .pattern