Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

[LAMBDA] RECODE.2.5
#1
RECODE.2.5

Beschreibung:
Kodiert je ein Zeichenpaar eines Strings (aus 224 Zeichen von 32-255) in 5 Ziffern 1-9 plus Leerzeichen oder zurück

Syntax:
=RECODE.2.5(Text;kodieren)

Beispiel:
=RECODE.2.5("Das ist umzukodieren";1) ergibt: 23243 38558 35592 38837 39312 41795 36245 33996 34385 34381
=RECODE.2.5("23243 38558 35592 38837 39312 41795 36245 33996 34385 34381";0) ergibt: Das ist umzukodieren

Code:
=LAMBDA(Code;Recode;WENN(Recode;
LET(x;Code&" ";TEXTVERKETTEN(" ";;BASIS(
(CODE(TEIL(x;SEQUENZ(LÄNGE(x)/2)*2-1;1))-32)*224+
(CODE(TEIL(x;SEQUENZ(LÄNGE(x)/2)*2-0;1))-32);9)+11111));
LET(y;Code;z;DEZIMAL(TEIL(y;SEQUENZ(LÄNGE(y&" ")/6;;1;6);5)-11111;9);
TEXTVERKETTEN(;;ZEICHEN(z/224+32)&ZEICHEN(REST(z;224)+32)))))


Anmerkungen:
Ich habe die relativ "teure" Umkodierung von je 2 (aus 224) Zeichen in mit Leerzeichen getrennte 5stellige Zahlen ohne enthaltene Null (also 9 Zeichen) gewählt, damit sie in einem festen Rhythmus auch mündlich durchgegeben werden könnten. Eine günstigere Möglichkeit wäre die Umwandlung von je 3 Ursprungszeichen in 4 Zeichen aus 58, also 0-9, A-X und a-x.

Die spezielle Bezeichnung .2.5 lässt Raum für ein beliebiges RECODE, welches z.B. selbstoptimierend aus ZEICHEN(32-255)-Text einen aus den Zeichen "ABC2854XYZ1093" baut.

Auch in Verbindung mit CRYPT sinnvoll, da CRYPT von selbst aus 224 in 224 Zeichen hineinschlüsselt - mündlich schwierig, insb. die Mitteilung von CRYPT-ENTschlüsselten Bereichen wie ={1."";"Aha".567}.
Antworten Top
#2
Moin,

so als Feedback von mir: schöne Funktion.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Antworten Top
#3
Danke schön. Ist jetzt nicht höchste Mathematik ... aber Recoding ist im Zusammenhang mit Crypting ganz sinnvoll.

Ein RECODE.2.1 könnte z.B. aus Nur-Zahlen (einzeln oder als Range) einen 225-Zeichensatz wiedergeben (31-255) - sparsames Versenden, weil aus 2 Zeichen genau 1 wird! 

15^2 = 225

Als 15 Zeichen wären absolut minimal notwendig folgende: 
  • 0-9
  • Dezimal-Komma
  • Minus
  • Anführungszeichen (für Leerzellen)
  • Zeilentrenner (Semikolon)
  • Spaltentrenner (Punkt) 

Also für wirklich nur Zahlen im Range.

Die 3 restlichen Zeichen für ein Array, nämlich = { }, kommen je nur einmal vor, und könnten daher durch das RECODE vervollständigt werden.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste