herzlichen Dank für deine Bemühungen! Das bringt mich ein großes Stück weiter. Leider funktioniert aber irgendeine Kleinigkeit noch nicht… Ich hab viel probiert, komm aber nicht auf den Fehler.
Expression.Error: Der Wert "2022" kann nicht in den Typ "Text" konvertiert werden.
Die Fehlermeldung verstehe ich nicht. Das Jahr, nach welchem gefiltert werden soll.
Hallo Nadine,
ist die Zahl 2023 in der Zelle als Text formatiert?
Und: was macht „geänderter Typ“? – in Text oder Zahl konvertieren?
Liebe Grüße
Rene
Hallo Rene,
genau, ich habe dann extra die 2023 in Text formatiert. Ursprünglich hatte ich es als Zahl, da kam allerdings auch diese Fehlermeldung, weshalb ich die 2023 dann in Text formatiert habe.
Hier die Schritte, welche ich in der Jahrestabelle ausgeführt habe:
Dort wo dann die Formel eingefügt wird, also dort, wo nacher nach diesem Jahr gesucht werden soll, sieht die Formatierung so aus:
Hallo Nadine,
Folgende Ursache: Ich vermute in deiner Zelle stehe die Jahreszahl als ZAHL – in meiner ersten Städtedatei hatte ich sie als Text formatiert.
Damit du auch einen Text erhältst, muss dein zweiter Schritt
= Table.TransformColumnTypes(Excel.CurrentWorkbook(){[Name="SOP"]}[Content],{{"Column1", type text}}){0}[Column1]
verwendet werden
In deinem Code
= Table.SelectRows(Quelle, each (Record.Field(_ , Excel.CurrentWorkbook(){[Name="SOP"]}[Content]{0}[Column1]) <> null))
Zusammengefasst: der in Excel eingetragene Wert in eine Zahl. Die Spaltenüberschrift jedoch ein Text. Irgendwann muss die Zahl in einen Text konvertiert werden!
Excel-VBA-Schulung. Eine Teilnehmerin möchte ein kleines Programm mit mir geschrieben haben: Jede Woche erhält sie eine Liste und jede Woche muss sie in dieser Liste Berechnungen durchführen. Eine bestimmte ID (beispielsweise Idefix) wird gesucht, sämtliche Werte (hier drei) werden wie folgt berechnet:
Die Anzahl der Römer wird mit der Anzahl der Piraten multipliziert und die einzelnen Produkte summiert. Das Ergebnis wird durch die Summe der Römer dividiert. Aber nur dann, wenn keine Hinkelsteine vorhanden sind. Alles klar? – Klar!
Ich beginne Schritt für Schritt. Multipliziere und addiere – hierfür bietet sich doch SUMMENPRODUKT an, oder?. Also: los geht’s:
=SUMMENPRODUKT((A:A=G5)*(B:B)*(C:C))
Ich habe drei Mal überlegen müssen, woher die Fehlermeldung rührt. Die Antwort:
Klar: ich multipliziere jede Zelle jeder Spalte. Und das funktioniert bei der Überschrift (Text!) natürlich nicht!
Ich muss ändern. Entweder so:
=SUMMENPRODUKT((A:A=G5)*1;(B:B);(C:C))
Oder indem ich auf den Bereich ohne Überschrift verweise:
=SUMMENPRODUKT((A2:A40=G5)*(B2:B40)*(C2:C40))
Oder indem ich den Fehler mit WENNFEHLER abfange, oder oder oder.
Und DANN ist der Rest auch kein Problem – beispielsweise so:
Und diese Formel kann man mit dem Makrorekorder aufzeichnen und über alle Zellen „laufen lassen“. Das Ganze wird in der Datei Personal.xlsb gespeichert.
Ich schätze es ausserordentlich, dass Du mich unterstützt und fühle mich geschmeichelt.
Du hast natürlich vollkommen Recht mit dem Hinweis, dass in einer Spalte
keine Zahlen und Texte stehen sollten.
Dieser Umstand ist dadurch entstanden, weil die Tabelle zusätzlich für
einen anderen Zweck benutzt wurde. Hierbei wurden die Zeilen insofern
erweitert, indem für jeden Kunden eine zusätzliche Zeile eingetragen wurde.
Hatte ein Kunde einen Service, wurde in der entsprechenden Spalte eine 1
reingeschrieben und im Anschluss mit einem Flow in einen ScharePoint Liste
übertragen. Anders hätte ich ja die Kunden Records nicht handeln können.
Nun habe ich den Servicekatalog und die Zuweisung der Kunden zum jeweiligen Service getrennt. Somit konnte ich die Tabelle vom Servicekatalog wieder «drehen», womit die Services in den Zeilen stehen und die Spaltenwerte zu den jeweiligen Daten passen.
Eine andere Lösung gibt es nicht, wenn ich Deine Erklärungen richtig
verstanden habe und eigentlich scheint es mir auch logisch.
Nun muss ich einige weitere Anpassungen an dem ganzen Konstrukt
vornehmen und einen neuen Flow erstellen. Dabei hoffe ich natürlich, dass ich
mir keine neue Baustelle geschaffen habe.
Nochmals herzlichen Dank für Deine wertvolle Hilfe und die guten Tipps
Herby
#####
Hallo Herby,
in meinen vielen
Jahren Exceltraining und meinen vielen Artikeln auf excel-nervt habe ich
gelernt, dass
* Excel ein sehr
gutes Programm ist
* Excel manchmal
etwas eigenwillig ist
* Anwender und
Anwenderinnen oft Wünsche haben, die sich SO nicht direkt umsetzen lassen (ich
verstehe oft die Hintergründe)
* dass man sich auf das Denken von Excel einlassen muss (ist halt ein Mann*) und man manchmal seine Daten etwas anders organisieren muss, damit man zum Ziel kommt
Liebe Grüße
Rene
*) Die Frage, ob Excel männlich oder weiblich ist, stelle ich häufig in Schulungen. Und amüsiere mich dann über die Antworten à la: „Excel ist männlich, weil …“ oder „Excel muss eine Frau sein, der nur so kann man sich erklären …“
Mit VBA wird eine Userform (eine Maske) erstellt zur bequemen Dateneingabe. Der Wert eines Textfeldes wird als String interpretiert und als solcher bei Dezimalzahlen in eine Excelliste eingetragen. Man erkennt es, weil die Zahlen linksbündig in der Zelle stehen:
Dummerweise wird ein Text immer größer als eine Zahl definiert, so dass eine Formel
Konto anlegen und löschen funktioniert soweit, bis auf das Problem, was wir schon mal hatten und gelöst wurde (Numerischer Kontoname z.B. 01 -> wird darauf 1 generiert!). Das hatten Sie bereits schon super umgesetzt.
Also formatiere ich die Spalte mit den Kontonummern erneut als Text. Mal sehen, wann Herr L. es wieder „kaputt macht“.
mir ist ein Fehler
aufgefallen, der vorher nicht vorhanden war.
Die Excel-Tabelle
in Excel 365 funktioniert tadellos, soweit ich getestet habe.
Ein Freund von mir
hat leider aus der alten Version die Daten nicht in die neue Version reinbekommen
und so hat er sich entschlossen, diese neu einzugeben.
Wenn er ein Konto
anlegt – das geht noch.
Dann will er
Einzahlungen in das Einzahlformular hinzufügen, dies scheint erst mal nicht zu
funktionieren. In der Liste zeigt er nichts an!
Wenn ich mir die
Tabelle außerhalb des Formulars anschaue, sind die Daten angelegt – Die
Paketnummer wird nicht mehr hochgezählt.
Auch ein speichern
und erneuter Start der Tabelle bringt keine Abhilfe.
In der alten Version (bei mir 6.11) funktioniert es noch tadellos. Mein Bekannter setzt Excel 2016 (neuste Updates sind installiert) ein. Bei mir geht es, bei ihm nicht, mit der letzten Version.
#####
Hallo Herr L.,
in Ihrem Programm finde ich die Codezeile:
If rngI.Value = Me.cmbAuswahlKontoAlleInvestments.Value Then
Sie prüfen, ob eine Kontonummer ausgewählt wurde. Da Kontonummern Zahlen sein können (4711) vergleichen Sie diese Zahl mit dem TEXT aus der Combobox (alle Steuerelemente liefern immer Texte).
Deshalb kann es
nicht funktionieren! Der Fehler war vorher schon vorhanden; ist Ihnen in IHRER
Liste nicht aufgefallen, weil dort alle Konten alphanumerisch ist.
Ich habe es korrigiert:
If CStr(rngI.Value) = Me.cmbAuswahlKontoAlleInvestments.Value Then
Amüsant. Wir kennen das: Wenn ich in Excel eine Zahl schreibe, herunter oder nach rechts (oder nach oben oder links) ziehe, steht in der jede Zelle die gleiche Zahl:
Drückt man die [Strg]-Taste, zählt Excel weiter:
Ebenso kann man das Weiterzählen über das Smarttag erzwingen:
Bei Datumsangaben oder bei Text-Zahl-Gemischen wird hingegen weitergezählt:
Natürlich kann man auch den Assistenten „Datenreihe ausfüllen“ verwenden, den Sie in Start / Bearbeiten / Ausfüllen finden:
Formatiert man allerdings eine Zelle als Text und fügt eine Zahl ein (oder schreibt ein Apostroph vor eine Zahl; zieht nun diese Text-Zahl nach unten oder rechts, so wird jetzt weitergezählt. Ähnlich wie bei Text-Zahl-Gemischen.
vielen
Dank für die schnelle Beantwortung meiner Frage.
Ich werde bei den großen Uhrzeiten versuchen in der Formel für den Durchschnittswert die Minuten zu kürzen so dass nur noch mit den Stunden gerechnet wird. Wie ich die Formel erstelle weiss ich noch nicht aber ich werde mal rumprobieren.
Hallo Herr Martin,
ich habe es mit Runden, Kürzen und Ganzzahl versucht und bekomme weiterhin einen Fehler #Wert. Ich denke, ich brauche hier doch noch einmal ihre Hilfe.
Hallo Herr J.,
wenn Sie in Excel etwas in eine Zelle eintragen, müssen Sie die Eingabe mit [Enter] abschließen. Der Grund: Excel prüft, ob Sie Text oder Zahl eingetragen haben: Text steht linksbündig, Zahlen rechtsbündig. Die Eingabe von 1oo oder 1,,50 oder 31-11-2020 wird zu Text und steht linksbündig. Auch: 1000000:30. Das ist keine Zahl; Excel kann damit nicht rechnen; die Funktion ISTTEXT kann das prüfen. Und diese müssen Sie auch verwenden.
Wenn die „zu lange
Uhrzeit“ Text ist, müssen Sie sie als Text behandeln, sonst als Uhrzeit.
In der letzten Word-Schulung erkläre ich wie man ein Formular mit Eingabefeldern erstellt.
Ich erkläre, dass man die Felder auf ein gültiges Datum begrenzen kann:
Wir testen:
Prima! 2. Test:
Der dritte Test funktioniert. Man kann das Datum auch in der Form 1-10-20 (wie in Excel) eingeben:
Allerdings aus der Eingabe 31-11-20 wird:
Und jetzt das kleine Erstaunen: Verboten sind Angaben wie:
1–1 1,,1 31.11.2020 1o.1o.2o l0.l0.2020
Jedoch wird umgewandelt:
1,1 wird zu 01.10.2020 31-11-20 wird zu 20.11.1931 1-1-1-1 wird zu 01.01.2001
Noch erstaunlicher ist die Begrenzung auf Zahlen:
Während Texte stillschweigend gelöscht werden (ohne Warnhinweis!) wird konvertiert:
1,,50 wird zu 0,01 € (5, ebenso: 1,0,5 1.50 wird zu 150 € 1-50 wird zu 150 € 1oo zu 1,00 € l00 zu 0,00 €
Sehr seltsam. Sehr inkonsequent und inkonsistent. Vor allem das stillschweigende Löschen von falschen Eingaben kann dazu führen, dass ein Formular nicht korrekt ausgefüllt wird.
Hallo Herr Martin, Das Feld für die Prozessnummer ist zu kurz. Mit 20 Zeichen muss es dann aber passen.
Hallo Herr H., voilà – jetzt mit 20 Zeichen Prozessnummer. schöne Grüße Rene Martin
PS: Ich traue Ihnen ja nicht. Besser: in vorauseilendem Gehorsam habe ich die Prozessnummer als Text formatiert – sollten Sie mal eine Nummer wie 12345678901234567890 haben würde Excel 1,2345E+19 machen …
Hallo Herr Martin, Gut mitgedacht! Die Prozessnummern werden mit Punkten getrennt und Excel macht in vorauseilendem Gehorsam ein Datum daraus, wenn es passen könnte. Ich habe das bisher immer mit einem Hochkomma umschifft .
Die Aufgabe ist einfach. Zu einem Text (einem Buchstaben) sollen Kreissymbole dargestellt werden. Das kann man prima mit der Bedingten Formatierung erledigen. Allerdings: sie akzeptiert keine Texte. Also muss man den Text in eine Zahl umwandeln – beispielsweise mit der Funktion CODE (oder UNICODE). Darauf kann man eine Bedingte Formatierung aufsetzen.
Excelschulung. Wir erstellen Diagramme. Bei mir funktioniert es nicht lautet der Kommentar einer Teilnehmerin:
Ich habe eine Weile gesucht, um herauszufinden, warum die Linie auf dem Nullwert liegt. Die Lösung finde ich in den Optionen:
Die Teilnehmerin hat als Dezimaltrennzeichen den Punkt aktiviert. Dadurch wird die Zahl nicht als Zahl erkannt, sondern als Text. Und da sie die Zellen rechtsbündig formatiert hat … Also – Option ausschalten – und schon funktioniert es:
Eine Liste mit Zahlen, die im Zahlenformat „Standard“ gespeichert sind, mit mehr Nachkommastellen zu formatieren ist nicht schwierig. Schwierig wird es dagegen, wenn die erste markierte Zelle (also die aktive Zelle) leer ist – dann verweigert Excel dieses Zahlenformat.
Dabei ist es gleichgültig, ob man die leere Zelle darüber oder darunter verwendet. Man muss zuerst das Zahlenformat „Zahlenformat“ einschalten (früher hieß es „Zahl“). Dann klappt es. Ich wollte schon über leere Zellen schimpfen – allerdings: befindet sich in der aktiven Zelle Text, verweigert Excel ebenso Dezimalstellen hinzuzufügen oder zu entfernen.
Und das ist der Grund, warum man bei langen Kolonnen mit einer Überschrift zuerst das Zahlenformat ändern muss, bevor man mehr (oder weniger) Dezimalstellen hinzufügen kann.
Das ist ja schon prima – bei mir zeigt die x-Achse nur Zahlen mit Schrittweite 0.5 Tage an, auch bei Umformatierung werden die x-Werte ignoriert, wenn man dann den Wertebereich der x-Achse ändert, ist die Grafik weg 🙁 Die Daten sind 21. Jahrhundert, etwa 90 Tage.
Anbei das Excel mit dem beschriebenen Problem. Das rechte Diagramm ohne Linien ist eine Kopie des linken mit korrekt formatierter X-Achse.
*lach*
da haben Sie etwas Lustiges gemacht:
ich setze auf Ihren Daten ein Diagramm auf und wundere mich, dass in der x-Achse nicht die Datumswerte, sondern 1, 2 und 3 angezeigt werden.
Ich formatiere die x-Achse als Datum und erhalte die Werte 01.01.1900, 02.01.1900, …
Ich werfe einen Blick auf Ihre drei Datumsangaben – sieht alles okay aus. Ich verbreitere die Spalte – und da haben wir es: die Werte stehen linksbündig – das heißt Excel, ein Mensch oder eine Maschine hat Text „unter“ die Datumswerte geschoben. Deshalb kann Excel diese Angaben nicht als Datumszahl interpretieren und verwendet 1, 2 und 3.
Umgekehrt: Wenn Sie nun die Achsenskalierung vom 01-10-2018 bis 28-02-2019 laufen lassen, beiden sich diese drei kleinen Zahl gaaaaaanz weit links.
Lösung: Doppelklick auf die einzelnen Datums-Zellen, damit es wieder ein vernünftiges Datum wird.
Wenn Sie das Phänomen häufig haben, werfen Sie einen Blick auf:
Ich weiß, das sollte man nicht machen. Ich lasse den Anwender über eine Inputbox eine Zahl eingeben, speichere sie in einer String-Variablen und schreibe das Ergebnis nach Excel:
Sub ZahlAlsTextEintragen()
Dim s As String
s = InputBox(„Bitte eine Zahl eintragen.“)
ActiveCell.Value = s
End Sub
Das Ergebnis: 1 bleibt 1 (Excel schafft eine korrekte Typkonvertierung). Aus 1,5 und 1,55 werden die Texte 1,5 und 1,55 (sie stehen linksbündig in der Zelle und werden mit einem Smarttag versehen, das „die Zahl in dieser Zelle als Text formatiert ist oder ein Apostroph vorangestellt wurde“.)
Gibt man allerdings 1,555 ein, wird diese Zahl in 1.555 konvertiert. Ups!
Man zwingt mich mal wieder libreOffice Calc zu unterrichten. Doch – es gibt (noch) Firmen, Behörden und Institutionen, die diese Tabellenkalkulation einsetzen! Sie ist noch sehr viel inkonsequenter als Excel. Setzt man in Excel ein Apostroph (‚) vor einen Text, eine Zahl oder eine Formel, wird das Ergebnis als Text interpretiert und steht linksbündig in der Zelle. In Calc dagegen werden nur Zahlen als Text interpretiert. Das bedeutet:
‚089
steht korrekt als 089 in der Zelle. Eine Erklärung
=belegt
liefert einen Fehler, das Apostroph liefert keine Abhilfe. Während die Artikelnummer oder Abteilungsbezeichnung 3.1 als Text interpretiert wird, ist 3.1.1 in Calc eine Datumsangabe und wird – wie in Excel – umgewandelt. Hier schafft das Apostroph Abhilfe.
Calc unterscheidet übrigens zwischen „Zelle als Text formatieren“ und dem Apostroph. Denn:
=belegt
kann man mit der Textformatierung angezeigt bekommen. Komisch, oder?
Eigentlich schade. Wer den Konjunktor XOR aus dem Physikunterricht oder aus der bitweisen Verknüpfung aus dem Informatikunterricht kennt, der wird enttäuscht sein, dass man ihn in Excel dafür leider nicht einsetzen kann. Der Grund: Wandelt man eine Zahl mit der Funktion DEZINBIN um, so ist der Binärwert leider keine Zahl mehr, sondern ein Text. Und damit kann man SO nicht weiterrechnen. Dann halt umständlich …
Eigentlich unterscheidet Excel zwischen Text und Zahl. Eigentlich. Sicherlich kennen Sie folgendes Phänomen:
Eine Spalte ist als Text formatiert:
In einer anderen Spalte stehen ZAHLEN. Diese werden mit der Funktion SVERWEIS als #NV (nicht vorhanden) quittiert:
Das habe ich schon mehrmals beschrieben – beispielsweise in: „Sverweis funktioniert nicht“
Ebenso werden sie bei der Überprüfung auf Gleichheit
{=ODER(K2=$G$2:$G$22)}
(als Matrixformel) korrekt als unterschiedliche Werte erkannt:
Verwendet man statt dem Gleichheitsoperator „=“ jedoch die Funktion IDENTISCH werden die Texte und Zahlen als gleich(wertig) eingestuft:
{=ODER(IDENTISCH(K2;$G$2:$G$22))}
Ebenso übergeht ZÄHLENWENN diesen Unterschied:
Auch hier gilt mal wieder – schade, dass Excel an so vielen unterschiedlich ist, beziehungsweise einfach nicht konsequent. Kein Verlass auf gar nichts!
Mit PowerPivot können Felder aus verschiedenen Tabellen des Datenmodells verknüpft werden. Excel verlangt dabei, dass mindestens eine Tabelle nur eindeutige Werte besitzt (die 1-Seite der 1:n-Beziehung). Falls dies nicht der Fall ist, wird es mit einer Fehlermeldung quittiert.
Bedauerlicherweise werden nicht die Datentypen überprüft. So ist es möglich, dass man Text mit Zahl oder Datum verknüpfen kann. Diese Funktion hätte man auch integrieren können …
Wirklich komisch. In unserer Firma gibt es Abteilungen. Sie tragen Nummern der Form 1 oder 1.5 oder 1.3.1. Erstaunlicherweise zeigt Excel bei „1“ und bei „1.3.1“ grüne Ecken an. Bei „1.5“ allerdings nicht …
Viele grüne Ecken, aber nicht überall …
Die Antwort finden Sie, wenn Sie mit der Maus über das Smarttag fahren:
Unterschiedliche „Fehler“
Die Antwort:
„1“ wir interpretiert als Zahl 1, die als Text formatiert wurde.
„1.3.1“ wird interpretiert als Datum: 01.03.2001, das als Text formatiert wurde.
„1.5“ – hum – keine Ahnung – eigentlich interpretiert es Excel als Datum (01.05. im aktuellen Jahr). Warum hier kein Smarttag erscheint – keine Ahnung …
Ich weiß, dass Excel nicht alles annimmt. Wenn ich eine Telefonvorwahl oder eine Artikelnummer, die mit einer 0 beginnt, eingebe, muss ich ein Apostroph davor setzen – sonst löscht er mir die Null am Anfang. Okay. Ich weiß, dass ich das auch machen muss, wenn ein Text mit einem Gleichheitszeichen, einem Gedankenstrich oder einem Pluszeichen beginnt. Okay. Ich weiß, dass ich unsere Abteilung 2-5 und die Personalnummer 23.12 so auch nicht eintragen darf.
Was ich aber nicht verstehe, warum er manchmal grüne Ecken bringt mit dem Hinweis, dass es sich hier um eine Zahl handelt, die mit einem Apostroph beginnt, manchmal nicht:
Grüne Ecke mit Hinweis
Kein Hinweis; keine grüne Ecke
Die Antwort: Excel interpretiert die Zahl 089 als Zahl. Bei -Werbung handelt es sich um einen Text – dieser kann gar nicht in eine Zahl umgewandelt werden. Ich gebe Ihnen recht: dass er 24.12 und 1-4 nicht als DatumsZAHL erkennt, erstaunt. Sollte Ihnen die grünen Ecken nicht gefallen, können Sie diese in den Optionen / Formeln / Fehlerüberprüfung oder Regeln für die Fehlerüberprüfung ausschalten.
Mein Tipp: Lassen Sie sie eingeschaltet – denn sie können praktischen Nutzen haben.
Manchmal – wenn auch recht selten – erhalte ich die Fehlermeldung #ZAHL! Wann passiert denn das?
Vor allem bei mathematischen Funktionen kann dieser Fehler auftreten. Es gibt einige Funktionen, die lassen nur einen bestimmten Wertebereich zu – sonst können sie nicht rechnen, weil sie im reellen nicht definiert sind. Beispielsweise verlangt Wurzel, Logarithmus und Fakultät eine positive Zahl, Arcsin und Arccos sind für Zahlen im Bereich [-1;+1] definiert. GGT und KGV sind nur für positive, ganze Zahlen definiert.
Erhalten sie negative Werte (beispielsweise WURZEL(-1) so ist #ZAHL! das Ergebnis.
Ebenso wachsen einige Funktionen sehr schnell. Mit FAKULTÄT(171) sprengt die Grenzen von Excel – Fakultät(170) ergibt 7,2574 x 10306. Mehr geht nicht. Auch mit der Funktion Potenz kommt man an die Grenzen von Excel.
Eigentlich müsste man es sofort sehen: Texte stehen in Zellen am linken Rand; Zahlen rechtsbündig. Wenn man sich vertippt, beispielsweise den Buchstaben „O“ statt die Ziffer „0“ oder den Buchstaben „l“ statt der Ziffer „1“ eingibt, kann Excel mit diesen Texten nicht rechnen.
Warum machen Menschen so etwas? Es gab einige Schreibmaschinen, auf denen gab es keine Ziffer „0“ oder keine Ziffer „1“. Dort musste man auf die Buchstaben „O“, beziehungsweise „l“ zurückgreifen.
Bitte kein „O“ statt der Ziffer „0“; bitte kein „l“ statt der Ziffer „1“ eingeben.