Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Cómo copiar una cadena específica de una columna a otra

Hola a todos

Me gustaría saber si esto se puede hacer. Tengo una columna que tiene texto (Resumen). Me gustaría saber si puedo agregar una columna (ExpenseCode) y copiar solo una parte del texto necesario de (Resumen) en ese nuevo ejemplo de colum (ExpenseCode)

Columna 1 (Resumen)

Joh Fulano

Solicitud de equipo de TI

Código de gastos : 12344556654

Dispositivo: Portátil

Modelo: Latitude

Costo: 1K

Este sistema debe instalarse con Windows 11 y otras aplicaciones

por favor verifique con el usuario ...... etc..

Nuevo Colum (Código de Gastos)

122344556

La razón por la que estoy tratando de hacer esto es principalmente porque tengo otra tabla (activo) que tiene todos los datos una vez que el dispositivo se ha implementado. Quiero poder validar la información de la tabla de activos con esta tabla. Con este escenario podría validar el código de gastos.

Sé que probablemente podría hacer un caso cuando la cláusula, pero estaba deambulando si puedo ponerlo un poco más limpio ya que el resumen de la columna específica tiene muchos datos en una celda.

10 REPLIES 10
Syndicate_Admin
Administrator
Administrator

Cambie la cadena que está buscando. En lugar de buscar "Código de gastos: " busque "ExpenseCode: ExpenseCode"

Sí, incluso incluya el espacio al final para que la fórmula pueda encontrar la posición exacta donde comienza el código real.

Expense Code = 
VAR _Code = "ExpenseCode:  ExpenseCode "
VAR _CodeLen = LEN ( _Code )
VAR _CodeMissing = ISERROR ( FIND ( _Code, 'DataTable'[Column] ) )
VAR _CodePosition = IF ( _CodeMissing, BLANK (), FIND ( _Code, 'DataTable'[Column] ) + _CodeLen )
VAR _CodeEnd = IF ( _CodeMissing, BLANK (), FIND ( UNICHAR ( 10 ), 'DataTable'[Column], _CodePosition ) )
RETURN
    IF ( _CodeMissing, BLANK (), MID ( 'DataTable'[Column], _CodePosition, _CodeEnd - _CodePosition ) )

El resto del código se encargará de eliminar los caracteres adicionales. Eso es lo que hacen los _CodePosition del VAR y los _CodeEnd del VAR.

Syndicate_Admin
Administrator
Administrator

Parece que necesita ajustar el _Code VAR para que coincida con sus datos reales.

Expense Code = 
VAR _Code = "Expense Code : "

Este primer VAR se establece en la cadena "Expense Code :", esta es la cadena que está buscando en los datos, pero en sus datos parece que la cadena es "ExpenseCode: " por lo que tendría que cambiar la medida para que coincida.

Expense Code = 
VAR _Code = "ExpenseCode: "
VAR _CodeLen = LEN ( _Code )
VAR _CodeMissing = ISERROR ( FIND ( _Code, 'DataTable'[Column] ) )
VAR _CodePosition = IF ( _CodeMissing, BLANK (), FIND ( _Code, 'DataTable'[Column] ) + _CodeLen )
VAR _CodeEnd = IF ( _CodeMissing, BLANK (), FIND ( UNICHAR ( 10 ), 'DataTable'[Column], _CodePosition ) )
RETURN
    IF ( _CodeMissing, BLANK (), MID ( 'DataTable'[Column], _CodePosition, _CodeEnd - _CodePosition ) )

Tks funciona lo que hice mal es lo siguiente

ExpenseCode, GL o Factura: ExpenseCode Coding (División 1) ExpenseCode: ExpenseCode

Para la división uno donde dice Var _Code = ExpenseCode, GL o Invoice:"

al copiar solo esta parte funciona, la pregunta que tendría es que ahora tengo el código pero tengo el resto delante del código

Codificación de ExpenseCode (División 1) ExpenseCode: ExpenseCode 111111222333322211

¿Hay alguna manera de tener solo el número?

Hice lo mismo con GL Code, este también funciona y solo muestra números.

Tks de nuevo muy apreciado y gran trabajo!

Hola

Pude eliminar el comienzo del código de gasto y solo mostrar el número usando Right, el único problema es que si no tengo un valor para el código de gasto, mostrará los últimos 30 caracteres en lugar del número, principalmente porque sería un código GL que mostraría. ¿Hay alguna manera en caso de que no tenga un código de gasto para dejarlo en blanco?

tks

Syndicate_Admin
Administrator
Administrator

Ah, interesante. Sí, eso cambia un poco las cosas. Voy a suponer que desea los tres valores en tres columnas diferentes: Código de gastos, Código GL, Número de factura.
Agregamos tres columnas calculadas, cada una configurada para buscar una cadena diferente y tirar hacia atrás de todo el texto después de esa cadena hasta el siguiente retorno de carrige (UNICHAR(10)) de la siguiente manera:

Expense Code = 
VAR _Code = "Expense Code : "
VAR _CodeLen = LEN ( _Code )
VAR _CodeMissing = ISERROR ( FIND ( _Code, 'DataTable'[Column] ) )
VAR _CodePosition = IF ( _CodeMissing, BLANK (), FIND ( _Code, 'DataTable'[Column] ) + _CodeLen )
VAR _CodeEnd = IF ( _CodeMissing, BLANK (), FIND ( UNICHAR ( 10 ), 'DataTable'[Column], _CodePosition ) )
RETURN
    IF ( _CodeMissing, BLANK (), MID ( 'DataTable'[Column], _CodePosition, _CodeEnd - _CodePosition ) )
GL Code = 
VAR _Code = "GL Code : "
VAR _CodeLen = LEN ( _Code )
VAR _CodeMissing = ISERROR ( FIND ( _Code, 'DataTable'[Column] ) )
VAR _CodePosition = IF ( _CodeMissing, BLANK (), FIND ( _Code, 'DataTable'[Column] ) + _CodeLen )
VAR _CodeEnd = IF ( _CodeMissing, BLANK (), FIND ( UNICHAR ( 10 ), 'DataTable'[Column], _CodePosition ) )
RETURN
    IF ( _CodeMissing, BLANK (), MID ( 'DataTable'[Column], _CodePosition, _CodeEnd - _CodePosition ) )
Invoice Number = 
VAR _Code = "Invoice Number : "
VAR _CodeLen = LEN ( _Code )
VAR _CodeMissing = ISERROR ( FIND ( _Code, 'DataTable'[Column] ) )
VAR _CodePosition = IF ( _CodeMissing, BLANK (), FIND ( _Code, 'DataTable'[Column] ) + _CodeLen )
VAR _CodeEnd = IF ( _CodeMissing, BLANK (), FIND ( UNICHAR ( 10 ), 'DataTable'[Column], _CodePosition ) )
RETURN
    IF ( _CodeMissing, BLANK (), MID ( 'DataTable'[Column], _CodePosition, _CodeEnd - _CodePosition ) )

Mis datos de muestra tienen 3 filas que se ven así. Puede ver que la primera entrada solo tenía el Código de Gastos, por lo que es la única que regresa.

Joh Fulano
Solicitud de equipo de TI
Código de gastos : 1234
Dispositivo: Portátil
Modelo: Latitude
Costo: 1K
Este sistema debe instalarse con Windows 11 y otras aplicaciones
por favor verifique con el usuario ...... etc..
Joh Fulano
Solicitud de equipo de TI
Código de gastos : 6654654654654
Código GL : 987654
Número de factura : 789321654798
Dispositivo: Portátil
Modelo: Latitude
Costo: 1K
Este sistema debe instalarse con Windows 11 y otras aplicaciones
por favor verifique con el usuario ...... etc..
Joh Fulano
Solicitud de equipo de TI
Código de gastos : 1455654
Código GL : 987654
Número de factura :
Dispositivo: Portátil
Modelo: Latitude
Costo: 1K
Este sistema debe instalarse con Windows 11 y otras aplicaciones
por favor verifique con el usuario ...... etc..

jdbuchanan71_0-1656965724973.png

Hola cómo lo intentas pero esta vez el colum está en blanco sin datos volveré a comprobarlo y revisaré. Aquí está el detalle completo que se completa, elimino toda la información confidencial y así es exactamente como se muestra en la tabla, por lo que básicamente cada orden de trabajo tendrá toda esta información proporcionada en 1 celda en el nombre de colum DetailDescription. Una cosa es para cada WO individual, es el código de gastos o el código GL como verá en la información de aprobación.

Tks

aquí está la información

--- información de aprobación ---

Departamento:

Organización:

ExpenseCode, GL o Factura: ExpenseCode Coding (División 1) ExpenseCode: ExpenseCode

Código GL:

Aprobador de COA:

--- de información del solicitante de ---

Solicitar Contacto:

Departamento:

Rama:

Teléfono:

Correo electrónico:

--- solicitud de información ---

Cuenta activa: Sí: tienen una cuenta existente y activa

Nuevo nombre del empleado:

Nombre del empleado existente:

Dirección de correo electrónico:

Dpto/:

Rama:

Edificio:

Ubicación de la oficina:

Dirección:

Ciudad:

Provincia:

Código postal:

Teléfono:

--- --- de información informática

Tipo de dispositivo solicitado:

Escritorio solicitado:

Cantidad:

Portátil solicitado:

Cantidad:

Requisito/justificación solicitada de otro dispositivo:

--- de información de --- Monitor

Monitor solicitado:

Cantidad:

Otros requisitos/fundamentos del monitor:

--- de información de software ---

Etiqueta de activo:

Nombre(s) de software: ["~Other"]

Nota: Si se solicita la firma electrónica, se aprovisionará el

Comentarios sobre la cantidad de software: 1 de cada título de software solicitado

Otra información de software:

--- --- de información periférica

Periférico(s) solicitado(s):

Computadoras y accesorios solicitados:

Almacenamiento de datos solicitado:

Auriculares y auriculares solicitados:

Teclados y ratones solicitados:

Ponentes solicitados:

Webcam solicitada:

Otra información periférica:

Cantidad:

Cantidad superior a 1 Detalles:

Fecha de finalización solicitada: 18/07/2022

--- información de la impresora ---

Nombre de contacto en el sitio:

Correo electrónico de contacto in situ:

Teléfono de contacto en el lugar:

Notas especiales de ubicación:

Número de empleados que deben usar el dispositivo:

Ascensor:

Nuevo/Reemplazo:

Marca de reemplazo, modelo y serie / activo: , ,

Impresora solicitada:

Opciones de impresora:

Detalles de las opciones de impresora:

Conexión local:

Software único:

Requisito/Justificación del negocio:

Información adicional:

Hola

Tks es realmente apreciado. Lo intentaré y actualizaré. Básicamente, esto está dentro de Remedy a través del módulo DWP. Cuando se envía una solicitud de equipo NewIT, deben completar un formulario que contiene una sección como la siguiente.

Información de aprobación

Solicitar información

Reques para información

Información del ordenador

Supervisar la información

Información del software

Información periférica

Información de la impresora

Requisitos de Negocio/Racional

Todo esto tiene aproximadamente un total de 60 líneas que se vuelcan en una celda por cada WO creado. Al principio habíamos pedido que se creara una tabla para que nos fuera más fácil de manejar, pero eso no es lo que hicieron, es un volcado en el boleto. Ahora lo que estoy tratando de hacer es básicamente extraer la información necesaria para validar contra nuestra gestión de activos.

SI lo que me proporcionó funciona, ajustaré y exportaré / agregaré más columna para la información del dispositivo y otra información. Trato de pensar cómo se puede hacer esto de manera diferente, pero hasta ahora es la única forma en que puedo pensar.

Probaré lo que proporcionaste y te actualizaré.

Tks de nuevo

Syndicate_Admin
Administrator
Administrator

@KevinMorneault

Puede agregar la columna de esta manera.

Expense Code =
IF (
    CONTAINSSTRING ( YourTable[Column 1  (Summary)], "Expense Code" ),
    SUBSTITUTE ( YourTable[Column 1  (Summary)], "Expense Code : ", "" )
)

jdbuchanan71_0-1656903120861.png

Hola

Tks lo he probado pero copia todo de la columna. Sé por qué, así que esto es lo que sucede

el Código de Gastos de Línea: tiene más información dentro de la misma línea, así que aquí hay un ejemplo de la línea, realmente no se puede copiar y pasar todo debido a la información confidencial.

--- información de aprobación ---
Departamento: Nombre del departamento
Organización: Nombre de la organización
ExpenseCode, GL o Factura: Código de Gastos (División1) Código de Gastos: 12345678.98877.776655.444
Código GL:
COA Approver: correo electrónico del aprobador

Así que algún escenario sería código de gasto y otro sería GL ya que tenemos 2 Divsion.

en este momento simplemente copia todo a la nueva columna.

Lo que proporcionaste es exactamente lo que estoy buscando.

Una cosa que olvidé mencionar es que estos datos están todos dentro de un campo. así que básicamente es un formulario que llenan y los datos se vuelcan en 1 campo. dentro del colum específico.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.