Registriert seit: 20.08.2015
Version(en): Ms Office 2010 (32-Bit)
Hallo Zusammen!
Ich stehe gerade vor einem Problem mit MS Excel 2010 und hoffe ihr könnt mir helfen.
Ich habe eine sehr lange Liste mit Dateinamen (allerdings ohne Dateiendung) in einer Arbeitsmappe (Spalte A) und möchte überprüfen ob es in einem bestimmten Ordner (z.B.: D:\Test) Dateien mit diesen Namen gibt. Es soll also jeder Wert in Spalte A überprüft werden und wenn im Ordner eine Datei (.doc oder .docx) mit identischem Namen vorhanden ist, soll in der Selben Zeile in Spalte B der Wert "Ja" ausgegeben werden. Falls keine Datei mit diesem Dateiname existiert soll auch kein Wert eingetragen werden.
Das ganze soll dann natürlich beim Aufrufen der Excel-Datei automatisch überprüft werden.
Ist dies irgendwie möglich umzusetzten?
Vielen Dank für eure Hilfe.
Gruß
Thomsen
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hi Thomsen,
habe mal aus
excelformeln.de den dortigen Beitrag für dein Problem übernommen:
Ist es das, was du dir vorstellst?
Tabelle1 | A | B | C |
1 | gespeicherte Dateiliste auf LW D | Deine Dateiliste | |
2 | filtern.xlsm | filtern | ja |
3 | Mappe1.xlsb | Mappe1 | ja |
4 | pdf-erstellen.pdf | maus-einfangen | |
5 | pdf-erstellen1.xlsx | pdf-erstellen | ja |
6 | pdf-erstellen2.pdf | pdf-erstellen2 | ja |
7 | testschreibschutz.xlsb | pdf-erstellen1 | ja |
8 | Zahlenfolge zählen-mit HS.xlsx | test-schreibschutz | |
9 | Zahlenfolge zählen-mit zählenwenns.xlsx | test-schreibschutz2 | |
10 | | meine_alte_sammlung | |
Formeln der Tabelle |
Zelle | Formel | C2 | {=WENN(ISTZAHL(VERGLEICH(B2;LINKS($A$2:$A$10;FINDEN(".";$A$2:$A$10)-1);0));"ja";"")} | C3 | {=WENN(ISTZAHL(VERGLEICH(B3;LINKS($A$2:$A$10;FINDEN(".";$A$2:$A$10)-1);0));"ja";"")} | C4 | {=WENN(ISTZAHL(VERGLEICH(B4;LINKS($A$2:$A$10;FINDEN(".";$A$2:$A$10)-1);0));"ja";"")} | C5 | {=WENN(ISTZAHL(VERGLEICH(B5;LINKS($A$2:$A$10;FINDEN(".";$A$2:$A$10)-1);0));"ja";"")} | C6 | {=WENN(ISTZAHL(VERGLEICH(B6;LINKS($A$2:$A$10;FINDEN(".";$A$2:$A$10)-1);0));"ja";"")} | C7 | {=WENN(ISTZAHL(VERGLEICH(B7;LINKS($A$2:$A$10;FINDEN(".";$A$2:$A$10)-1);0));"ja";"")} | C8 | {=WENN(ISTZAHL(VERGLEICH(B8;LINKS($A$2:$A$10;FINDEN(".";$A$2:$A$10)-1);0));"ja";"")} | C9 | {=WENN(ISTZAHL(VERGLEICH(B9;LINKS($A$2:$A$10;FINDEN(".";$A$2:$A$10)-1);0));"ja";"")} | C10 | {=WENN(ISTZAHL(VERGLEICH(B10;LINKS($A$2:$A$10;FINDEN(".";$A$2:$A$10)-1);0));"ja";"")} |
|
Enthält Matrixformel: Umrandende { } nicht miteingeben, sondern Formel mit STRG+SHIFT+RETURN abschließen! |
Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8 Deinen Pfad, aus dem ausgelesen werden soll, musst du natürlich im Namensmanager ändern.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
20.08.2015, 20:43
(Dieser Beitrag wurde zuletzt bearbeitet: 20.08.2015, 20:44 von schauan.)
Hallöchen,
oder so - mal nur bezogen auf den Ergebnisteil. Die Dateinamen kann man wie in Günters Beispiel ermitteln, das hab ich mir hier gespart.
Arbeitsblatt mit dem Namen 'Tabelle1' |
| A | B | C |
1 | ich.nicht.xls | ich | 2 |
2 | ich.xls | nicht | 1 |
3 | ich.xlsx | | |
4 | nicht.doc | | |
Zelle | Formel |
C1 | =ZÄHLENWENN(A1:A10;B1&".????")+ZÄHLENWENN(A1:A10;B1&".???") |
C2 | =ZÄHLENWENN(A2:A11;B2&".????")+ZÄHLENWENN(A2:A11;B2&".???") |
Diese Tabelle wurde mit Tab2Html (v2.5.0) erstellt. ©Gerd alias Bamberg |
Die Zählung kann man natürlich auch in Wahrheitswerte ummünzen oder wie auch immer man es haben möchte.
Bei Günters Lösung würde glaube auch die Datei ich.nicht.xls gefunden, auch wenn nur ich.xls der Treffer wäre. Der Punkt ist, dass eine Datei auch Punkte im Namen haben kann und nur der Teil nach dem letzten Punkt die Extension ist.
Im Beispiel gehe ich davon aus, dass Du Extensions mit 3 oder 4 Zeichen verwendest. Es gibt aber auch kürzere, man müsste die Formel dann entsprechend erweitern.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• thomsen
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hi André,
jetzt arbeite ich schon sooo lange mit PC und Excel, aber das
Zitat:Der Punkt ist, dass eine Datei auch Punkte im Namen haben kann und nur der Teil nach dem letzten Punkt die Extension ist.
habe ich bis dato nicht gewusst. Ich war immer der Meinung, dass Punkte als nicht zugelassene Zeichen gelten und habe sie deshalb nie benutzt. Für mich waren nur Binde- und Unterstrich als Trenner relevant.
Aber man lernt nie aus. :68:
Auf mein Beispiel gemünzt heißt das für Thomsen, alle Punkte bis auf den Extensionpunkt durch andere Zeichen oder Leerzeichen ersetzen. Ich will ja schließlich, dass mein Vorschlag funktioniert.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 20.08.2015
Version(en): Ms Office 2010 (32-Bit)
Vielen Dank für eure schnellen Antworten. :23:
Das hilft mir schon Mal sehr weiter. Das Einlesen der Dateinamen funktioniert auf diesem Weg sehr gut und auch eure "Suchfunktionen" erfüllen sehr gut den Zweck.
Leider wird aber bei mir die Dateiliste nicht automatisch aktualisiert. Wird z.B. eine Datei umbenannt, hinzugefügt oder gelöscht hat dies keine Auswirkungen auf die Excel-Liste.
Bei mir ist die "Berechnungsoption" auf automatisch eingestellt und auch ein "Neu Berechnen" über die F9-Taste bzw. "Blatt berechnen" mittels Umschalt+F9 zeigt keine Wirkung.
Woran liegt das und gibt es eine Möglichkeit dies automatisch anpassen zu lassen?
Vielen Dank.
Beste Grüße
Thomsen
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Thomson,
probiere es mal mit einer VBA-Funktion, UDF genannt.
In ein allgemeines Modul kommt folgender Code:
Code:
Public Function DateiVorhanden(strDatei As String) As Boolean
Dim strPfad As String
strPfad = "D:\Test\"
DateiVorhanden = Len(Dir(strPfad & strDatei & ".doc*"))
End Function
Diese Funktion verwendest Du dann so:
| A | B |
1 | Meine Liste | Vorhanden |
2 | abc | Ja |
3 | def | Nein |
Formeln der Tabelle |
Zelle | Formel | B2 | =WENN(DateiVorhanden(A2);"Ja";"Nein") | B3 | =WENN(DateiVorhanden(A3);"Ja";"Nein") |
|
Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8 Diese Funktion aktualisiert sich wenigstens mit Strg+Alt+F9.
Gruß Uwe
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
21.08.2015, 13:22
(Dieser Beitrag wurde zuletzt bearbeitet: 21.08.2015, 13:23 von WillWissen.)
Hi Thomsen,
Zitat:Bei mir ist die "Berechnungsoption" auf automatisch eingestellt und auch ein "Neu Berechnen" über die F9-Taste bzw. "Blatt berechnen" mittels Umschalt+F9 zeigt keine Wirkung.
neu berechnen musst du mit STRG-ALT-F9. Bei mir wird alles ordentlich aktualisiert.
Edit:
Ich sehe gerade, dass Uwe bei seiner Lösung mit der UDF ebenfalls diese Kombination anwendet. Du hast jetzt die Qual der Wahl. ;)
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
F9 geht auch, wenn Du in der Namensdefinition irgendwie die Funktion JETZT unterbringst, z.B. so:
=DATEIEN("D:\Test\*.*")&WECHSELN(JETZT();JETZT();"")
Das hat dann auch noch den Vorteil, dass eine Neuberechnung automatisch beim Öffnen der Datei erfolgt - wenn die Berechnung auf automatisch eingestellt ist.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
21.08.2015, 20:32
(Dieser Beitrag wurde zuletzt bearbeitet: 21.08.2015, 20:37 von WillWissen.)
Hi André,
kein schlechter Tipp. An die Tastenkombination denkt der eine oder andere vielleicht nicht (mehr), aber mit dieser Formelergänzung klappt das einwandfrei.
Allerdings gibt es da den berühmten Wermuthstropfen. So wie Thomsen in seiner Eröffnungsfrage schreibt,
Zitat:Ich habe eine sehr lange Liste mit Dateinamen...
dürfte die volatilie Funktion ein gewaltiger Performancekiller sein. :(
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 20.08.2015
Version(en): Ms Office 2010 (32-Bit)
Vielen Dank für eure Hilfe.
Die Kombination mit der JETZT() Funktion funktioniert perfekt. Das habe ich gesucht.
Bisher klappt es auch noch mit der Prefomance ganz gut. Hoffe das bleibt so, wenn meine Liste noch länger wird.