Clever-Excel-Forum

Normale Version: MATRIXINTEXT und VALUETOTEXT
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

es gibt zwei neue Excel-Funktionen in meiner Insider-Version (Betakanal) von Excel: MATRIXINTEXT (Engl. ARRAYTOTEXT) und VALUETOTEXT.
Wie in letzter Zeit ebenfalls geschehen, ist es möglich, dass noch nicht alle Insider die Funktionen haben, da die wieder portionsweise ausgerollt werden.

Wie zu sehen, VALUETOTEXT würde noch nicht übersetzt. MATRIXINTEXT wandelt die Werte eine Matrix in Textform um. Der Unterschied zu TEXT()
zu VALUETOTEXT erschließt sich für mich nicht auf den ersten Blick, sondern erstmal nur in Kombination mit anderen Funktionen.
Siehe hier die Bildchen, wie es funktioniert.

[attachment=32705]
[attachment=32706]

Die neuen Funktionen sind wohl z.B. fehlertoleranter, also wenn z.B. ein Fehler in der Matrix drin ist, wird dieser mir ausgegeben. Als Trennzeichen werden
die Excel-Trennzeichen verwendet und sind somit sprachabhängig! Das Kombinieren von VALUETOTEXT und TEXTVERKETTEN erlaubt eigene Trennzeichen.

Was mir so als Ideen für Verbesserungen einfallen würde, wäre ...

- das Einstellen der Trennzeichen in MATRIXINTEXT als optionale Argumente fände ich irgendwie einfacher.
- ist vielleicht ein weiteres Argument sinnvoll, dass Fehlerwerte komplett aus der Rückgabe ausschließt?

Falls ihr das auch schon testen könnt, was meint ihr?

Gruß
(29.06.2020, 09:01)maninweb schrieb: [ -> ]1) - das Einstellen der Trennzeichen in MATRIXINTEXT als optionale Argumente fände ich irgendwie einfacher.
2) - ist vielleicht ein weiteres Argument sinnvoll, dass Fehlerwerte komplett aus der Rückgabe ausschließt?

1) Dafür evtl. G1: =TEXTVERKETTEN(A1:B2;;D1:E2)
Code:
.    ;    SpalteC    1    2    SpalteF    1.2;3#4
#    ~    SpalteC    3    4

2) Dafür evtl.
G1: =TEXTVERKETTEN(WENN(ISTFEHLER(D1:E2);"(!)";A1:B2);;WENNFEHLER(D1:E2;""))
I1: =MATRIXINTEXT(D1:E2) zum Vergleich
Code:
.    ;    SpalteC    1    #WERT!    SpalteF    1.3(!)4    SpalteH    1; #WERT!; 3; 4
#    ~    SpalteC    3    4
Warum 2) TEXTVERKETTEN die Reihenfolge umstellt, weiß ich allerdings nicht.
I1: =MATRIXINTEXT(WENNFEHLER(D1:E2;)) ergibt 1; 0; 3; 4
I1: =WECHSELN(MATRIXINTEXT(D1:E2)&";";"#WERT!;";) ergibt 1; 3; 4;
Hallo LCohen,

auf die Idee die Trennzeichen als Bereich anzugeben bis ich bislang noch nicht gekommen. Wieder was gelernt Smile

Und, wenn man das so betrachtet, könnte man meinen, dass es die zwei neuen Funktionen schon fast überflüssig macht.
Jedoch nicht ganz. Wenn die Zellen Datentypen enthalten, versagt TEXTVERKETTEN, MATRIXINTEXT nicht (Bild).

[attachment=32712]

Das Versagen von TEXTVERKETTEN passiert nicht, wenn Felder in einer eindimensionale Matrix von Datentypen
angesprochen werden, z.B. geht =TEXTVERKETTEN(";";;C5:C6.Area) oder =TEXTVERKETTEN(";";;D5:D6)

Gruß
Ja, manche Funktionen erweisen sich geradezu als Quantensprünge:

TEXTVERKETTEN (variable Satzlängen, mit einem späteren SPLITTEN dann Umstellungen von Daten ohne oder mit weniger Zwischenschritte(n))
ZUFALLSMATRIX (mal eben ist zufällig Ziehen ohne Zurücklegen möglich geworden, in einer einzigen Formel (RPP63))
WENNFEHLER (wegen der Nur-noch-einmal-Referenzierung, sogar bei gewollten Fehlern)
SEQUENZ (sorgt für Formelklarheit und ist auch sonst flexibler für lfd. Indizes als ZEILE/SPALTE)

Bei anderen erkennt man es dann später. Smile

Das mit dem TEXTVERKETTEN geschieht bei mir erst zwischen 1) und 2). Das mit dem .Area habe ich noch nie gesehen. Ergibt #FELD! bei mir.

Deine Zeile 10 scheint meiner Beobachtung ja zu widersprechen (?).
Moin

Offenbar arbeitet die Funktion so ähnlich wie TEXTVERKETTEN().
Deshalb fällt mir auch kein Beispiel für einen produktiven Einsatz ein, das nicht schon mit TEXTVERKETTEN() möglich wäre.

Im Netz gibt es noch keine Hinweise - auch nicht auf den Support-Seiten von Microsoft.
Mal sehen wann es die ersten Video gibt.
Hallo,

in meiner aktuellsten Insider-Fast-Version (Beta) 2008 (13115.20000) heißen die beiden Funktionen jetzt MATRIXZUTEXT und WERTZUTEXT.
Wie findet ihr diese Übersetzungen (respective von ARRAYTOTEXT und VALUETOTEXT)?

Zudem wird auch langsam deutlicher, wofür z.B. MATRIXZUTEXT gedacht ist. Hat ein Geographie-Datentyp-Eintrag mehrere Einträge, werden
diese automatisch per Formel als Liste gesetzt, sobald das entsprechende Feld ausgewählt wird-

[attachment=33064]

Gruß
Bei mir gibt es nach wie vor (nur) ein MATRIXINTEXT - scheint wohl was anderes zu sein? Ich vermute, Du hast das nebenbei auch.

Das Beispiel könnte etwas ausführlicher sein ;)

Wie geht das eigentlich genau mit dem Sprachpaket, welches man zusätzlich installieren muss, damit man alle Funktionen schnell bekommt?
Hallo LCohen,

nein, bei mir ist MATRIXINTEXT durch MATRIXZUTEXT ersetzt worden. Es ist ja noch alles Beta, von daher kommt sowas durchaus vor.
Relevant ist der Build (siehe oben), aber auch das muss leider nicht heißen, dass es alle sofort sehen. Ich hatte zum Beispiel recht
lange nicht den Datentyp Organisation, aber andere Personen, die ich kenne, schon länger.

Was das Beispiel betrifft: die 3 Städte oder andere in einen Bereich eingeben, anschließend markieren. Aus Daten / Datentypen / Geographie wählen.
Excel müsste das dann erkennen und ein Icon dran setzen. Gleichzeitig sieht Du oben rechts ein Icon. Da drauf klicken und Du hast die Feldliste.
Oder einen Eintrag anklicken, dann hast Du recht oben ebenfalls das Icon. Aus der Liste dann Timezone wählen. Es kann aber sein, dass bei
Dir das Ergebnis noch nicht in MATRIXZUTEXT gekapselt wird. Und, dass die Städte in Englisch übersetzt werden ist normal.

Sprache: siehe Thread hier https://www.clever-excel-forum.de/Thread...l-Funktion

Gruß
In meinem [LAMBDA] CRYPT hat MATRIXZUTEXT eine vorherige umständliche TEXTVERKETTEN-Variante
  • kürzer
  • korrekt statt mit Klimmzügen
  • typenberücksichtigend und
  • mit sonst in .xlsx nicht möglicher Regionsunabhängigkeit
ersetzt. Nützliche Hinweise:
  • Es ist bei dem zweiten MATRIXZUTEXT-Argument unbedingt "streng" (1) zu wählen.
  • Außerdem ist darauf zu achten, dass für eine gültige Arraykonstantenformel (die dadurch entsteht) statt nur =MATRIXZUTEXT(Bereich;1) vorsorglich =MATRIXZUTEXT(WENN(Bereich="";"";Bereich);1) verwendet werden sollte, damit echt-leere Zellen im Bereich nicht zu Syntax-Fehlern führen, weil statt dessen schein-leere Zellen im Array benötigt werden. Mit {1.;3.4} kann man nämlich nichts anfangen; es muss {1."";3.4} heißen.