Ich schreibe in Power Query ein kleines Programm, das überprüft, ob eine Datei vorhanden ist. Während „Gletscher.csv“ existiert, gibt es die Datei „Gletscher42.csv“ nicht in meinem Ordner. Beide Varianten funktionieren hervorragend:
Der Code:
let
Dateipfad = "D:\Eigene Dateien\Excel\Beispieltabellen\Gletscher42.csv",
Ergebnis = try Binary.ToText(File.Contents(Dateipfad)),
Ausgabe = if Logical.From(Ergebnis[HasError]) then "Datei existiert nicht" else "Datei existiert"
in
Ausgabe
Versuche ich das Gleiche mit einem Ordner, liefert der try-Befehl bei HasError immer ein False. Behauptet also, dass der Ordner vorhanden ist.
Der Code:
let
Ordner = "D:\Eigene Dateien\Excel\Völlig blödsinniger Ordner\",
Ergebnis = try Folder.Files(Ordner),
Ausgabe = if Logical.From(Ergebnis[HasError]) then "Pfad existiert nicht" else "Pfad existiert"
in
Ausgabe
Die zweite Zeile zeigt es deutlich: HasError ist immer False:
Obwohl Power Query bei HasError keinen Fehler wirft, wird die Tabelle nicht gefunden – dort taucht ein Fehler auf:
ich arbeite an einem VBA – Projekt, dass aus Power BI Dateien die
Metadaten rauslesen soll.
Das Auslesen geschieht über Power Query (what else….), aber ich
muss noch ein paar Prüfungen mit VBA erstellen und insbesondere die Power Query
Abfragen on the fly erstellen. Letzteres geht problemlos.
Der Ablauf:
Prüfe, ob User die pbix geöffnet hat.
Falls nicht, bitte freundlich darauf aufmerksam machen
Falls nein, Abbruch – falls ja, pbix öffnen.
Bis dahin klappt alles.
Nun kommt der Punkt, wo der Benutzer sich gegenüber der Power BI
Datei authentifizieren muss, nachdem er ja gesagt hat.
falls er aber den Dialog hier abbricht (…..DAU…….), kommt
eine „schöne“ Meldung:
Nun meine Frage:
Wie kann ich hier meine eigene Meldung einbauen und vor allem, wie
fange ich das ab?
Bin schon voller Zweifel…..
Merci, lieber René für deine Geduld mit mir
Freundliche Grüsse Hans Peter
########################################
die unwissenden erleuchten sich selber
habs gefunden. nach Drücken von „Senden“ fiel es mir wieder ein, da stand was im Buch von René
Na, ein bisschen mehr Mühe hätte sich VBA schon geben können:
Anwendungs- oder objektorientierter Fehler. Na toll! Und wo? Und was?
Der Debugger hilft: die Berechnung Row – 8 ergibt einen falschen, nämlich negativen Wert (falsch gerechnet; nicht aufgepasst!) – so kann die Zelle „C-1“ nicht ermittelt werden.
Auch hier: Typen unverträglich!
Ey, VBA: sag mir doch deutlich, dass ich Dumpfbacke bei der Funktion MATCH (VERGLEICH) die beiden Parameter vertauscht habe. Während die Funktion der Zeile darüber (COUNTIF, ZÄHLENWENN) die Parameter ich suche wo wen verlangt, ermittelt MATCH / VERGLEICH: ich suche wen wo. Und keiner hilft mir! *lach*
Ich habe für eine Firma ein kleines Add-In geschrieben: Daten werden von A nach B übertragen und andere Daten zurück von B nach A. Um die korrekten Daten zu ermitteln verwende ich die Formeln – man kann es mit SVERWEIS machen – ich habe mich für die flexiblere Variante INDEX und VERGLEIC entschieden. Diese Formel wird in den Bereich eingefügt, der Bereich wird kopiert und als Werte wieder eingefügt:
On Error Resume Next
[...]
xlBereich.Copy
xlBereich.PasteSpecial Paste:=xlPasteValues
Das Programm läuft. Nach einigen Tagen erhalte ich einen Anruf:ein Fehler ist aufgetreten. Ich schaue es mir an. Sie Anwenderinnen haben auf den Bereich einen Filter gesetzt und gefiltert! Klaro – nun kann mein Makro nicht mehr die Inhalte als Werte einfügen:
Also überprüfe ich, ob ein Filter eingeschaltet ist. Wenn ja – dann wird er ausgeschaltet. Und schon kann das Programm wieder sauber die Daten übertragen …
Eine „Monsterdatei“: 35 MByte, 18 Tabellenblätter, mehrere davon gefüllt mit bis zu 500.000 Datensätzen, 1.300.000 Formeln, mehrere Millionen gefüllte Zellen. Inquire hilft bei der Analyse der Datei, rechnet allerdings selbst sehr lange:
Ich suche einen Fehler. Zwei Stunden lang. Bis ich ihn finde:
Microsoft hat in Excel 2013 das Analysewerkzeug „Inquire“ eingeführt, das in Excel 2016 nicht geändert wurde. Damit erspart man sich die umständlich Suche, ob es Verknüpfungen, ausgeblendete Zeilen, Spalten, Blätter gibt, ob Zahlen als Text formatiert wurden, wo Formeln stecken, die einen Fehler liefern, wo Zirkelbezüge zu finden sind, …
Inquire
Damit ist Microsoft auf dem richtigen Weg. Für alle, die fremde Dateien analysieren möchten („Was hat der Kollege denn da gemacht?“) oder die zwei Dateien miteinander vergleichen möchten – ein richtiger Schritt in die richtige Richtung. Jedoch mir fehlen:
eine Anzeige für „Genauigkeit wie anzeigen“
Überhaupt einige Optionen, die Anwender zur Verzweiflung bringen können: „in Zellen mit Nullwerten eine Null anzeigen“, „anstelle der berechneten Werte Formeln anzeigen“, „Dezimalkomma automatisch einfügen“, „1904-Datumswert, „Iterative Berechnung aktivieren“, „manuelle Arbeitsmappenberechnung“ und einige andere hübsche Optionen
ausgeblendete Zeilen und Spalten zu finden ist klasse – was aber, wenn die Zeilenhöhe auf 0,1 pt gesetzt wurde?
zu schmale Spalten – Zahlen werden mit dem Zahlenzeichen ########## dargestellt.
zu viele oder widersprüchliche bedingte Formatierungen
Rundungsfehler bei Zahlenformaten
Unsinnige Zahlenformate (beispielsweise 0,0 „%“). Allerdings: Wer entscheidet, was unsinnig ist?
Zahlenformate wie ;;
Zellen mit Leerzeichen
Zellen, die Text enthalten mit einem Leerzeichen am Ende: „Rene Martin“ ist etwas anderes als „Rene Martin „
Und schließlich: Objekte: Diagramme, die auf ein Pixel verkleinert wurden, Bilder, die auf Zellen liegen und so aussehen, als wären es Elemente der Zelle oder auch weiße Rechtecke, die auf einer Zelle liegen:
Wird leider nicht vom Inquire gefunden – unter dem Rechteck befindet sich die Zahl 3000
Fazit: Guter Ansatz, muss jedoch erweitert werden. Wenn Microsoft mich fragen würde – ich könnte Ihnen viele Dinge nennen, die Anwendern Probleme verursachen.
Und: ein dankeschön an Stefan, der mir geholfen hat, das Teilchen auseinanderzunehmen.
ich habe heute das Datum im Kalkulation geändert, das heißt das Monat Dezember gelangt in einer andere Zelle. Und nun funktioniert plötzlich die bedingte Formatierung.
Ich wollte Ihnen nur Bescheid sagen.
Viele Grüße
E. P.
#####
Müssen wir das verstehen, Frau P.?
Ich habe heute in einer Excel-Schulung eine Liste der Monatsnamen eingetragen:
April
Mai
Juni
Juli
August
September
und habe dann „A“ getippt“, um zu zeigen, dass man einen eindeutigen Text eintragen muss – Excel hat mir „August“ vorgeschlagen. Ich habe auch nicht verstanden warum August – denn der April beginnt auch mit „A“. Schulterzucken, schmunzeln und zur Tagesordnung übergehen.
Ich liebe Excel – aber manchmal erstaunt es mich …
Hallo. Ich brauche einen Tipp. Ich erhalten einige Male im Jahr eine Tabelle mit vielen Zahlen. Da die Zeilen keine eindeutige ID haben, habe ich mit der Funktion VERKETTEN mehrere Felder konkateniert (zusammengefasst), so dass ich eine ziemlich eindeutige ID habe. Ich wollte diese Formel weiter runterziehen, weil sich die Liste ab und zu erweitert. Jedoch – Excel zeigt in den leeren Zeilen Fehler. Das verstehe ich nicht: leer & leer & leer müsste doch leer sein, oder?
VERKETTEN – klappt gut, aber irgendwann mit Fehler
Die Antwort: Sie haben die Tabelle in eine „intelligente Tabelle“ verwandelt (Einfügen / Tabellen / Tabelle). Die Formel in der Zelle lautet:
also: Tabellenname Tabelle1[Spaltenname]. Das impliziert: gleiche Zeile wie Formelzelle.
Allerdings befindet sich keine Tabelle neben den neuen Zellen unterhalb der Tabelle. Wenn es Sie stört, können Sie um die Funktion die Formel WENNFEHLER bauen, also:
ich habe die Formel abgeschrieben, die Sie in Ihren Buch veröffentlicht haben. Ich wollte aus einer Entfernungsliste die Distanz zweier Orte ermitteln. Aber es klappt einfach nicht!
Ist da ein Fehler in der Formel?
Es ist doch alles richtig, oder?
Die Antwort: Sie müssen ganz genau hinschauen. Wahrscheinlich sind Sie beim Abtippen der Formel eine Taste zu weit nach links gerutscht und haben fälschlicherweise statt eines $-Zeichens ein %-Zeichen getippt. Excel quittiert das mit einem Fehler!