Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
784to788
784to788
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Suchen von Zeichenfolgen

Suchen von Zeichenfolgen
01.08.2006 15:44:45
Zeichenfolgen
Hallo Excel - Experten,
ich möchte in einer Spalte A ( mit 4000 6-stelligen Zahlen (Pivottabelle ))
diejenigen herausfiltern, die eine bestimmte Ziffernkombination haben.
z.B. ich geben in AH7 5226 ein und dann hätte ich gerne, das mir Excel
alle vorkommenden Kombinationen aus Spalte A d.h. z.B. 522601
522602, 522603, 522604... auflistet, oder wenn ich 26 eingebe, dass
mir Excel dann alle Zahlen in denen die 26 vorkommt auflistet, egal
ob sie hinten vorne oder in der Mitte steht.
Geht soetwas überhaupt ?
Ich habe es mal mit folgender Formel versucht, sie funktioniert auch
relativ gut, aber irgendwie ist da der Wurm drin, denn sie hört aus
(mir) unerklärlichen Gründen plötzlich auf :-( oder listet mir alle 5er auf,wenn ich z.B. eine 5 eingebe :-(
=WENN(ZEILE()&gtSUMME(ISTZAHL(SUCHEN(AH$7;A$1:A$10000))*1);"";INDEX(A:A;
KKLEINSTE(WENN(ISTZAHL(SUCHEN(AH$7;A$1:A$10000));ZEILE($1:$10000));ZEILE(A1))))
Hat jemand von Euch Experten hierzu eine Idee ?
Wäre für jeden Tipp dankbar!
Gruß
Ralf

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen von Zeichenfolgen
01.08.2006 18:43:21
Zeichenfolgen
Hi Ralf,
dasss nicht alle aufgelistet werden, könnte daran liegen, dass die Formel nicht in Zeile 1 beginnt - denn da gehört sie aufgrund der Verwendung von ZEILE() - standalone ohne Bezug - nämlich hin.
Ansonsten änder mal ZEILE() ab in ZEILE(A1) - dann ist die Startzeile der Formel egal.
Dass es eine Arayformel ist (und wie man die eingibt), wirst du aber sicherlich wissen.
Grüße Boris
AW: Suchen von Zeichenfolgen
01.08.2006 18:50:51
Zeichenfolgen
Hallo, Ralf,
wenn's eine Prozedur sein darf:

Sub findPatter()
Dim strPatter As String
Dim r As Integer
strPatter = Mid(Str(Range("B1")), 2)
Range("A1").Select
Do
If InStr(Str(ActiveCell), strPatter) Then
r = r + 1
Cells(r, 3) = ActiveCell
End If
ActiveCell.Offset(1, 0).Select
Loop Until ActiveCell < 100000
Range("C1").Select
End Sub

Vielleicht kannst Du dieses Grundgerüst nutzen, um es an Deine Aufgabe anzupassen. Insbesonder der Bezug zur Pivot-Tabelle, zur Zielspalte und die Zelleangabe mit dem Suchmuster sind nach Deinen Anforderungen abzuändern.
Wenn bei der Ausführung das Bildschirmscrollen stört, ist zudem noch die Eigenschaft ScreenUpdating auf false zu setzen. Heirbei sollte jedoch zuvoer der bisherige Wert zwischengespeichert werden, damit er nach Ausführung wieder auf den Ausgangswert zurückgesetzt werden kann.
Die Zellenformel habe ich mir nicht angeschaut, da ichn nicht sicher bin, ob hiermit eine ähnlich übersichtliche und nachvollziehbare Lösung gefunden werden kann.
Gruß,
Uwe
Anzeige
Getestet?
01.08.2006 19:01:17
{Boris}
Hi Uwe,
Loop Until ActiveCell &lt 100000 ?
Und wozu die Selektiererei und das "Scrollen"?
Wenn bei der Ausführung das Bildschirmscrollen stört, ist zudem noch die Eigenschaft ScreenUpdating auf false zu setzen
Ist ohne Select nicht nötig.
Grüße Boris
AW: Getestet?
01.08.2006 19:40:23
Uwe
Danke, Boris,
für Deine Hinweise.
Bezüglich des DO ... LOOP Austiegskriterium (es funktioniert so) fiel mir ohne genaue Kenntnis über die Daten (z.B. immer 4000 Stück) keine bessere Allgemeinlösung ein, da die Sechsstelligkeit der Zahl vorgegeben war - gut, es hätte daraus folgend natürlich die OR-Erweiterung ActiveCell &gt 1000000 eingebaut sein müssen:
Loop Until ActiveCell &lt 100000 OR ActiveCell &gt 1000000
Zur "Selektierei" ist ohne Umschweife zu sagen: Ich weiß es nicht anders.
Gruß,
Uwe
Anzeige
Alles klar...
01.08.2006 20:22:48
{Boris}
Hi Uwe,
das mit der 6-stelligkeit hab ich jetzt kapiert. Falls aber zwischendurch Leerzellen vorkommen oder eben nicht 6-stellige Zahlen, dann bricht die Schleife ab.
Zur "Selektierei" ist ohne Umschweife zu sagen: Ich weiß es nicht anders.
Ist ja kein Problem - doch diese Art der Do-Loop-Schleife mit ActiveCell.Offset(..).Select ist mir aus einem ganz bestimmten VBA-Buch bekannt. Hast du eins gelesen? Wenn ja: Welches?
Grüße Boris
AW: Alles klar...
01.08.2006 21:40:35
Uwe
Hallo, Boris,
nach Deiner Kritik an den Einsatz des ActivCell-Befehls, habe ich den betreffenden Teil umgeschrieben.

Sub findPatter()
Dim rng As Range, rngA As Range
Dim strPatter As String
Dim r As Integer
Worksheets("Tabelle1").Activate
Set rngA = Range("A1:A" & ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row)
strPatter = Mid(Str(Range("B1")), 2)
For Each rng In rngA
If InStr(rng, strPatter) And _
rng > 100000 And rng < 1000000 Then
r = r + 1
Cells(r, 3) = rng
End If
Next
End Sub

Mein Problem ist es immer wieder, aus der Erinnerung die SpecialCell-Funktion auf die Schnelle korrekt einzusetzen, daher weiche ich auf ActivCell aus, die mit ihren Offset-Funktion und Select/Activate-Eigenschaft wenig Erinnerungsangoederung an mich stellt. Jedoch, und das zeibt mir Dein Hinweis, ich werde jetzt dieser Anwahl abschwören ;), da der von Dir bereits angedeutete Nebeneffekt die Sache rechtfertigt.
Als Excel-Buch liegt mir das MicrosoftPress-Buch Microsoft Excel Visuel Basic Sprachverzeichnis, Version 7 vor. Ob dieses jedoch der Ursprung der "Offset-Hanschrift" ist, vermag ich nicht zu sagen, kann auch sein, dass ich diese Art über ein Beispielprogramm aufgenommen.
Gruß und nochmals Dank für den Hinweis,
Uwe
Anzeige
GROßEN DANK an Uwe und Boris
02.08.2006 09:01:55
Ralf
Hallo ihr beiden,
es ist ja toll wie Ihr über solch
ein Thema fachsimpeln könnt (ich habe nicht viel
verstanden :-) , aber trotzdem vielen Dank für
Eure Mühe.
Gruß
Ralf
AW: @Ralf ...
02.08.2006 10:45:55
Uwe
Das war aber nicht die Absicht, Ralf,
wo besteht Erklärungsbedarf (Einbinden von VBA-Code, Arbeiten mit Array in Zellenformeln?) oder konnte Dir auch so zur Lösung Deiner Aufgabe geholfen werden?
Gruß,
Uwe

302 Forumthreads zu ähnlichen Themen


Hallo Leute,
ich habe ein Problem mit Zahlenformaten.
In meiner Tabelle steht der Text '4917234598' (natürlich viele solcher Zahlen untereinander.
Jetzt möchte ich, daß diese Zahl (später eine ganze Spalte) über Makro so aufbereitet wird, daß aus '4917234598' 017234598 wird.
Anzeige

Hallo Forum,
in Zelle B2 habe ich z.B. "ABC 314 " stehen.
Nun möchte ich in Zelle D2 folgende String darstellen:
zähle von links vier Strings nach rechts "ABC "
mache aus "314 " nun eine vierstellige Zahl "0314 "
entferne die zwei Leerzeichen nach der Zahl "0314 ", so da...

Hallo Freaks,
ich habe in der Spalte B 1700 Zeilen, die mit Artikelbezeichnungen folgenden Musters befüllt sind:

Mein Ziel ist es, alle Leerzeichen bis auf zwei nach der letzten Ziffer und dem ersten Buchstaben zu löschen. Also ab der 11 Stelle bis zur 16 Stelle alle Leerzeichen bi...
Anzeige

Hallole,
in meinem Sheet kopiere ich Tabellenblätter aus anderen Dateien. Nun will ich aus diesen Tabellenblätter eine Zelle (J5) kopieren und in mein Sheet "Page" H21 eintragen.
Das Problem: ich weiss nicht, in welchem der kopierten Tabellenblätter die Information steht und wie das Ta...

Hallo,
ich bräuchte ein Makro das nach dem Starten den Wert der in Tabelle 1 A1 steht in Tabelle 2 schreibt.
Das soll er dann alle 5 Sekunden wiederholen.
So das ich in Tabelle 2 eine Liste erhalte mit den werten aus Tabelle 1 A1
Kann mir jemand dabei helfen?
Gruß
Marko<...

Excel gut ist übertrieben!
Hi VBA Profis,
ich suche eine VBA Lösung, die in allen Zellen, in allen Tabellen der aktiven Arbeitsmappe, die NUR EIN LEERZEICHEN drin haben, das LEERZEICHEN löscht. Dann soll die Zelle leer sein.
Zellen, die einen anderen Inhalt haben, z. B. Text und Za...
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige