Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Microsoft Microsoft Office

GELÖST

Eine Such-, bzw Filterfunktion in Excel

Mitglied: Cybercult

Cybercult (Level 1) - Jetzt verbinden

30.12.2011, aktualisiert 04.01.2012, 5038 Aufrufe, 9 Kommentare

Eine Zeichenfolge in Excel nach Konsistenz prüfen

Hallo liebe Admnistrator-Gemeinde,

folgender Sachverhalt:

in einer Excel-Spalte werden Zeichenfolgen folgenden Formats eingegeben:

2/312001
2/312002
2/312003

wobei die Zahl 2 vor dem Schrägstrich und der Schrägstrich selbst immer und unverändert bleiben.
Die Zahlenkombination nach dem Schrägstrich ist sechsstellig und sollte vortlaufend (konsistent) sein.
Nun kommt es in der Realität, dass eine oder mehrere sechstelligen Zahlen übersprungen, nicht eingetragen werden.
In der Spalte kommen am Ende einigen Tausende solcher Zeichenkommbinationen.

Gibt es eine Möglichkeit in Excel (VBA, Filters, Funktionen etc.) die fehlenden, nicht geschriebenen Zahlen anzuzeigen?

So liebe Gemeinde, bitte helft mir




P.S. einen guten Rutsch wünsche ich euch allen
Mitglied: bastla
30.12.2011 um 21:22 Uhr
Hallo Cybercult!

Da Du nicht beschrieben hast, in welcher Form Du das Ergebnis benötigst, nur einmal ein schematischer Ansatz in VBA:
01.
Sub Check() 
02.
AbZeile = 2 'Werte ab dieser Zeile 
03.
Spalte = "A" 'Werte in dieser Spalte 
04.
Anfang = "2/" 'Konstanter Anfangsteil der Werte 
05.
 
06.
Inhalt = Cells(AbZeile, Spalte).Value 'Inhalt der ersten Zelle auslesen 
07.
WertLfd = Mid(Inhalt, Len(Anfang) + 1) 'Zahlenwert der ersten Zeile ermitteln 
08.
 
09.
Zeile = AbZeile + 1 'nach erster Zeile mit Prüfung beginnen 
10.
Inhalt = Cells(Zeile, Spalte).Value 'Zelleninhalt auslesen 
11.
Do While Inhalt <> "" 'wiederholen bis zur ersten leeren Zelle 
12.
    WertLfd = WertLfd + 1 'Zahlenwert erhöhen 
13.
    'Wenn Zellinhalt nicht nach dem Anfangsteil den richtigen Zahlenwert enthält, Leerzeile einfügen 
14.
    If Mid(Inhalt, Len(Anfang) + 1) <> WertLfd Then Rows(Zeile).Insert 
15.
    Zeile = Zeile + 1 'nächste Zeile 
16.
    Inhalt = Cells(Zeile, Spalte).Value 'Zelleninhalt auslesen 
17.
Loop 
18.
End Sub
Es wird hier anhand der Angaben in den Zeilen 2 - 4 zunächst aus der ersten Datenzeile die Zahl nach "2/" ausgelesen und dann für alle weiteren Zeilen (bis eine leere Zelle in Spalte A gefunden wird) geprüft, ob die Zahl der nächsten Laufnummer (also etwa "312004") entspricht - falls nicht, wird eine Leerzeile eingefügt. Die Prüfung erfolgt konkret so, dass die ersten beiden Stellen übersprungen werden und nur der Rest des Zellinhaltes verglichen wird; es würde daher etwa "3/312004" ebenso wie zB "//312004" akzeptiert werden. Falls Du eine exakte Kontrolle des gesamten Zellinhaltes benötigst, müsstest Du zunächst klar stellen, was für den Fall, dass die konstanten ersten (beiden) Stellen nicht stimmen, passieren soll ...

Ach ja - vorausgesetzt wird auch, dass die Spalte A bereits sortiert wurde ...

Grüße
bastla
Bitte warten ..
Mitglied: 2hard4you
31.12.2011 um 00:31 Uhr
Moin,

ich würde sowas quick 'n dirty lösen, Du mußt ja nur wissen, wo was fehlt ...

einfach über right() / left() den konstanten Teil eliminieren und die sechsstellige Zahl raussortieren (in einer neuen Spalte) und dann checken, ob in der darunter stehenden Zelle der Nachfolger steht - wenn ja, iss okay, ansonsten irgendwas in die Zeile reinschreiben ....

Gruß

24
Bitte warten ..
Mitglied: Biber
02.01.2012 um 21:33 Uhr
Moin Cybercult,

ich würde den Killefitz jetzt zwar eher quick & dirty mit zwei Matrixformeln lösen als gleich mit einem ausgewachsenen Makro...
Nichtsdestotrotz deckt natürlich auch bastlas Lösung die Anforderung ab.
Jedenfalls soweit ich bei wabernden Nebelschwaden überhaupt das Wort "Abdecken" missbrauchen würde.

Eine punktgenaue Lösung erfordert eben auch ein paar feste Punkte im Raum - siehe oben in bastlas Einleitung.

Gibt doch mal Zwischenfeedback, was du mit den Kommentaren anfangen konntest, was dir vielleicht noch Erwähnenswertes eingefallen ist inzwischen und was fehlt.

Grüße
Biber
Bitte warten ..
Mitglied: Cybercult
04.01.2012 um 20:13 Uhr
mit etwas Verspätung möchte mich für die Mühe recht herzlich bedanken. Der Ansatz ist völlig OK. Alle Zahlen können mit "2/" oder seltener mit "--/" beginnen.
In Ordnung ist es auch eine Leerzeile einzufügen wenn eine (oder mehrere) vorlaufenden Nummern fehlen.
Hier ein Beispiel:
+--------------+
|2/312328 |
+--------------+
|2/312329 |
+--------------+
|2/312330 |=> hier kann eine Leerzeile eingefügt werden da 2/312331 fehlt
+--------------+
|2/312332 |
+--------------+
|2/312334 |=> hier können Leerzeile für alle fehlenden zahlen zwishen 312334 und 312346 eingefügt werden, usw...
+--------------+
|2/312346 |
+--------------+
|2/312349 |
+--------------+

Die Spalte mit den zu untersuchenden Nummern ist aufsteigend sortiert.
Den Quellcode habe ich in den VBA-Editor übernommen (bin kein VBA-Experte eher habe ich mit C und C++ gearbeitet) und wenn ich den Sub laufen lasse endet
das ganze in einer endless loop und nur mit dem task manager komme ich raus.
Mache ich da was falsch..?

Nochmals danke für die Mühe.
Bitte warten ..
Mitglied: Cybercult
04.01.2012 um 20:17 Uhr
Hallo Biber,

danke für die Antwort. leider kann ich mir nichts unter quick&dirty lösung vorstellen. Hast du vielleicht ein Paar Ansetze parat?
Die lösung von bastla hat leider auch nicht fuktioniert, möglicherweise habe ich da was falsch gemacht.
Siehe oben meine Antwort an den bastla vielleicht kanns Du das ganze in einer Excel-Tabelle nachstellen..

Danke nochmals
Bitte warten ..
Mitglied: Biber
04.01.2012 um 20:50 Uhr
Moin Cybercult,

danke für deine nachgereichten Informationen

Interessant, wie total unterschiedlich deine Anforderung von bastla einerseits und mir andererseits aufgefasst wurde.

Ich war, auch aufgrund deines Satzes "Gibt es eine Möglichkeit in Excel .... die fehlenden, nicht geschriebenen Zahlen anzuzeigen?" davon ausgegangen, dass mindestens das Tabellenblatt mit vergebenen Nummern, wenn nicht sogar die ganze Original-Exceldatei "read-only" ist.

Schon allein weil Leerzeilen ( bzw. Zeilen bestehend nur aus diesen Auftrags-, Inventar-, Bestell-, Kamasutra- oder WTF-Nummern) ohne jegliche weitere Daten sicherlich niemals nicht problemlos von Folgeverarbeitungen hingenommen werden würden.

Mein Ansatz wäre also gewesen, in einem neuen Tabellenblatt (oder einer neuen Exceldatei) einen Abgleich des Soll-Nummernkreises mit dem vergebenen Ist-Nummernkreis zu machen.
Und nur alle nicht (oder noch nicht) vergebenen Nummern untereinander in einer Spalten aufzulisten.

Für dieses Zielwäre ich mit zweieinhalb Matrixformeln wohl auch hingekommen.

Wenn du aber -wie von bastla skizziert- in der Original-Liste die fehlenden Zeilen an den richtigen Positionen eingefügt haben möchtest
--> dann ist ein Makro sinnvoller.

Ich hatte eine andere Vorgehensweise angenommen und deshalb natürlich auch eine andere Lösung.

Grüße
Biber
Bitte warten ..
Mitglied: bastla
05.01.2012 um 10:11 Uhr
Hallo Cybercult!

Mit der folgenden Zeile 14 sollte das dann doch noch funktionieren:
If CLng(Mid(Inhalt, Len(Anfang) + 1)) <> WertLfd Then Rows(Zeile).Insert
nur mit dem task manager komme ich raus.
Die Tastenkombination Strg+Pause hilft in solchen Fällen ...

Grüße
bastla
Bitte warten ..
Mitglied: Cybercult
06.01.2012 um 19:49 Uhr
Hallo bastla,

ich bin Dir zum besten, herzlichsten Dank verfpfichtet. Diesmal hat alles wunderbar funktioniert. Testweise habe ich einen Block von etwa 6500 Zeilen prüfen lassen.
In wenigen Sekunden wurden die Zeilen eingefügt wo die Nummern gefehlt hatten. Besten Dank.



P.S. habe sehr gerne mit C und C++ gearbeitet, gegen VBA habe ich mich doch wenig gewehrt , jetzt aber wo ich den Vorteile sehe, wenn man(n) es so gut kann wie Du bekomme ich doch Lust es zu lernen. Wie oder wo kann man das am besten lernen?
Bitte warten ..
Mitglied: bastla
06.01.2012 um 20:01 Uhr
Hallo Cybercult!
Wie oder wo kann man das am besten lernen?
Soferne Dich speziell VBA für Excel interessiert, könntest Du Dir zB VBA in Excel - Grundlagen anschauen, wobei in vielen Fällen noch nicht einmal VBA nötig sein sollte - siehe zB excelformeln.de ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
CSV Stapelverarbeitung mit Filterfunktion für große Datenmengen
Frage von RippchenBatch & Shell8 Kommentare

Hallo, Ich studiere und muss in einer Projektarbeit Daten auswerten, die mir leider nur in vielen (über 100000) csv ...

Microsoft
Im ordner nach dateien aus excel liste suchen
Frage von tiolocoMicrosoft2 Kommentare

hallo, ich habe ein problem, das bei mir des öfteren vorkommt: sagen wir mal, ich hab ein ordner mit ...

Microsoft Office
Excel (2016): Enthaltenen Text suchen
gelöst Frage von ralfkauskMicrosoft Office3 Kommentare

Hallo zusammen Ich brauche mal Hilfe (bei Excel 2016) Ich habe zwei Tabellen In beiden Tabellen gibt es die ...

Microsoft Office
Excel-VBA: Alle Werte einer Spalte in einer anderen Suchen
gelöst Frage von KevinPMicrosoft Office4 Kommentare

Hallo, ich hänge jetzt schon seit Tagen dran und komm nicht zu Rande. Ich versuche jeden Wert eines Tabellenblattes ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 2 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...