Como enmascarar caracteres en una columna en texto

  • managerdeproductivid
    Espectador

      Estimada comunidad, tengo una duda:
      Si tengo una columna donde muestro los numeros de tarjeta, que tienen digamos 16 caracteres y debo de enmascarar los 8 caracteres o numeros del medio dejando ver los 4 numeros iniciales y los 4 numeros finales, como lo harian?.. estaba intentando en Power Query pero requiero de sus comentarios, gracias anticipadas:

       

       

      En el Power Query, duplique la columna en cuestion, a esa columna la dividi por caracteres en 8 y 8, pero estoy atascado buscando la manera que en la primera columna se transforme esos ultimos 4 caracteres indistintamente de cualquier numero que contenga por asterisco, y de conseguirlo replicarlo para la columna 2 para que sus 4 primeros caracteres se reemplazen por 4 asteriscos; para luego de ello unir las dos columnas.

      pero aun no encuentro la forma de hacerlo.
      Alguien entiende la plusvalia de lo que menciono?, asi creo que podrian enmascarar alguna info que finalmente debe ser reservada aun para el usuario.

      Agradecido de sus comentarios que puedan brindar,
      PD.- LA COLUMNA ESTA EN FORMATO TEXTO Y DEBE SEGUIR COMO TEXTO.
      Saludos!!
      Julio Zarate

    • jluis
      Espectador

        Hola Julio

        Yo lo hubiera hecho con columnas auxiliares. Con el botón Extraer del Query Editor, extraería los 4 primeros dígitos en 1 columna, luego los 4 últimos en otra, y por último crearía una nueva concatenando los 4 primeros dígitos + “********” + los 4 últimos.

        Supongo que habrá una forma diferente, pero yo lo haría de esa forma. Espero te sirva.
        Saludos :+1:t4:

        rolando
        Espectador

          Hola Julio,

          En mi opinión podrías usar la función de Split Columns y luego Merge con caracteres de los asteriscos.

          Tal vez haya una manera más simple pero es lo que se me ocurre.

          Saludos

          managerdeproductivid
          Espectador

            Hola Jluis, excelente idea, lo pongo a practica para comentarte que resulta, pero me parece de primera mano coherente y simple que agregaria aprox solo 4 pasos, asi que la voy a probar. Gracias!!!
            Saludos cordiales,
            Julio Zarate

            managerdeproductivid
            Espectador

              Hola Rolando, gracias por responder, consulta como realizar el Merge o combinar con caracteres?, te referias a crear previamente la columna de 8 caracteres en asteriscos y de ahi hacer un MERGE de 3 columnas verdad?
              Saludos cordiales,
              Julio Zarate

               

              rolando
              Espectador

                Hola Julio,
                me parece que ya encontré otra manera más fácil.
                En el editor de Power Query en la pestaña de agregar columna esta el botón de Columna a partir de los ejemplos

                 

                En este ejemplo que hice solo le puse que agarrara los primeros 2 digitos, se relllenara con 8 asteriscos y al final pusiera el último digito, podrías hacer algo así

                 

                Espero te sea útil.

                Saludos

                managerdeproductivid
                Espectador

                  Rolando, Genial si se pudo!!!, muchas gracias, acá comparto lo realizado y se soluciono con un solo paso, GRACIAS EXCELENTE COMUNIDAD.

                  = Table.AddColumn(#“Tipo cambiado1”, “Personalizado”, each Text.Combine({Text.Start([NROTAR], 9), “******”, Text.Middle([NROTAR], 15)}), type text)

                  Saludos cordiales,
                  Julio Zarate

                  MaruSolis
                  Espectador

                    Hola Julio:

                    Me da gusto que haya varias aportaciones para este tema ya que eso indica que existen varios caminos para llegar a lo que se desea.

                    Otra opción es directamente en el query editor, agregar una columna personalizada y usar la función Text.ReplaceRange como en el siguiente ejemplo:

                    Text.ReplaceRange([numeroTarjeta],3,8,"********")

                    Espero te sea de utilidad.

                    Saludos :ok_hand:

                    managerdeproductivid
                    Espectador
                      managerdeproductivid
                      Espectador

                        Text.ReplaceRange([numeroTarjeta],3,8,"********")

                        Maru, que guenazo!!, me salio como bien mencionas, muchas gracias y espero yo tmb pueda ayudarte en algun momento.

                        Saludos,
                        Julio Zarate

                        MaruSolis
                        Espectador

                          Perfecto, me agrada que te haya sido de utilidad.
                          Saludos :raised_hand_with_fingers_splayed:

                        Viendo 10 respuestas - de la 1 a la 10 (de un total de 10)
                        • El debate ‘Como enmascarar caracteres en una columna en texto’ está cerrado y no admite más respuestas.