27 julio, 2026

UDF PARA CODIFICAR Y DESCODIFICAR TEXTO Y NÚMEROS EN POWER APPS

Hola a todos,

Power Apps tiene muchas funciones interesantes, pero en ocasiones necesitamos crear y utilizar nuestras propias funciones. Las dos funciones que os voy a dejar hoy, las he creado hace ya tiempo y son muy prácticas cuando tenemos que ocultar información o codificarla.

Quiero dejar claro que esta es una versión muy simple y que se puede complicar hasta el infinito, en vuestra necesidad encontraréis hasta donde necesitáis complicarla.

La UDF tiene dos partes, la primera es crear una colección con los elementos de la forma en la que vamos a querer codificarlos. Lo haremos en la propiedad OnStart de nuestra App:

El código de la colección (que vamos a llamar Mapeo):

ClearCollect(
    Mapeo;
    {Letter: "A"; Code: "B"}; {Letter: "B"; Code: "C"}; {Letter: "C"; Code: "D"}; {Letter: "D"; Code: "E"};
    {Letter: "E"; Code: "F"}; {Letter: "F"; Code: "G"}; {Letter: "G"; Code: "H"}; {Letter: "H"; Code: "I"};
    {Letter: "I"; Code: "J"}; {Letter: "J"; Code: "K"}; {Letter: "K"; Code: "L"}; {Letter: "L"; Code: "M"};
    {Letter: "M"; Code: "N"}; {Letter: "N"; Code: "O"}; {Letter: "O"; Code: "P"}; {Letter: "P"; Code: "Q"};
    {Letter: "Q"; Code: "R"}; {Letter: "R"; Code: "S"}; {Letter: "S"; Code: "T"}; {Letter: "T"; Code: "U"};
    {Letter: "U"; Code: "V"}; {Letter: "V"; Code: "W"}; {Letter: "W"; Code: "X"}; {Letter: "X"; Code: "Y"};
    {Letter: "Y"; Code: "Z"}; {Letter: "Z"; Code: "A"};
    {Letter: "a"; Code: "b"}; {Letter: "b"; Code: "c"}; {Letter: "c"; Code: "d"}; {Letter: "d"; Code: "e"};
    {Letter: "e"; Code: "f"}; {Letter: "f"; Code: "g"}; {Letter: "g"; Code: "h"}; {Letter: "h"; Code: "i"};
    {Letter: "i"; Code: "j"}; {Letter: "j"; Code: "k"}; {Letter: "k"; Code: "l"}; {Letter: "l"; Code: "m"};
    {Letter: "m"; Code: "n"}; {Letter: "n"; Code: "o"}; {Letter: "o"; Code: "p"}; {Letter: "p"; Code: "q"};
    {Letter: "q"; Code: "r"}; {Letter: "r"; Code: "s"}; {Letter: "s"; Code: "t"}; {Letter: "t"; Code: "u"};
    {Letter: "u"; Code: "v"}; {Letter: "v"; Code: "w"}; {Letter: "w"; Code: "x"}; {Letter: "x"; Code: "y"};
    {Letter: "y"; Code: "z"}; {Letter: "z"; Code: "a"};
    {Letter: "0"; Code: "1"}; {Letter: "1"; Code: "2"}; {Letter: "2"; Code: "3"}; {Letter: "3"; Code: "4"};
    {Letter: "4"; Code: "5"}; {Letter: "5"; Code: "6"}; {Letter: "6"; Code: "7"}; {Letter: "7"; Code: "8"};
    {Letter: "8"; Code: "9"}; {Letter: "9"; Code: "0"}; {Letter: " "; Code: " "}
)

Ahora que tenemos la colección, vamos a crear las dos funciones, una para Codificar un texto y otra para Descodificarlo:

Estas son las dos funciones que vamos a incluir en la propiedad Fórmulas de nuestra App.

Si las queréis copiar:

CodificarTexto(TextoACodificar: Text): Text =
    Concat(
        Split(TextoACodificar; "");
        
    If(
        IsBlank(
            LookUp(
               Mapeo;
                Code = Value
            )
        );
        Value;
        LookUp(
            Mapeo;
            Code = Value
        ).Letter
    )
);;

DesCodificarTexto(TextoACodificar: Text): Text =
    Concat(
        Split(TextoACodificar; "");
        
    If(
        IsBlank(
            LookUp(
               Mapeo;
                Letter = Value
            )
        );
        Value;
        LookUp(
            Mapeo;
            Letter = Value
        ).Code
    )
);;

Y ahora vamos a aplicar lo que hemos creado, primero vamos a insertar un TextInput (TextInput1) y vamos a escribir algo, en este caso yo propongo una frase de Gabriel Ferrater (uno de mis poetas preferidos) y luego añadimos un label para mostrar cómo las funciones actúan con nuestro texto.

Como podéis observar, estamos aplicando CodificarTexto sobre el contenido de TextInput y el resultado es es que realmente sí codifica en función del orden indicado en nuestra colección Mapeo:

Y ahora para descodificar el texto utilizamos la otra función, DesCodificarTexto sobre el Label1, y el resultado es el esperado.

He construido esta función para que cualquier elemento que se encuentra en la cadena de texto y no está en la colección, por ejemplo una coma, un punto, lo deje igual.

Y esto es todo, os la dejo para que la podáis utilizar y resolver problemas.

Comparte este post

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies