Com buscar varios datos y que me muestre titulo de col

TE 6S TE 60 CH TE 60 ATC CH TE 7C CH TE 70 CH TE 70 ATC CH
354764 365460 365460 327315 74473 74473
343785 365463 365463 240912 74479 74476
354624 366151 366151 207960 330909 330909
344362 365572 393991 327953 74498 74483
76561 330180 330180 240437 74808 74499
70716 345371 345371 328852 366930 366760
72417 366277 389968 279515 366870 366870
343179 330166 330166 240906 366289 366289
343169 366270 366189 76460 366163 366163
207960 76438 366280 76487 268094 268094
240438 268094 76438 328679 366292 366292
343105 364660 268094 240915 391658 366280
76437 366279 392611 240908 366588 391658
201240 72320 366279 240916 366879 366588
26352 330083 72320 328752 207960 366879
Hola, quiero saber como hacer para buscar un valor en todo el rango y que me devuelva el titulo de cada columna que lo contenga. Ej. Buscar el 76437 y que me diga que máquinas lo utilizan.

1 Respuesta

Respuesta
1
Asumiendo que estos datos están desde A1 (títulos) hasta F16 (el último 366879), te doy un ejemplo que lo resuelve
En la celda G18 colocá el valor a buscar (en este caso 76437)
En A18 colocá
=si(esnod(coincidir($g18,a$2:a$16,0)),"",a$1)
Y copiás esta fmla hasta F18
Luego te queda juntar todos estos valores
Hola, muchas gracia spor la respuesta. Al correr la fórmula me muestra efectivamente el nombre de la máquina, pero lo hace por columnas.
Lo que necesito es que haga lo mismo pero extensivo a todo el rango y que me de por ejemplo: código 3994 está en TE-70 / TE-75 / UH-650 y así hasta cubrir todos los códigos, que son 6000.
Encontré esta macro, pero me muestra el resultado de que columna se encuentra el código. Hay que colocar en columnas la fórmula =localizar(C9:G9;1) y en una sola celda me indica todas las columnas que se encuentra el código en esa fila. Lo que me gustaría es que en vez de decirme la columna, me diga el titulo o encabezado de columna.
Muchas gracias
USUARIO DATOS Columnas
MANOLITO 2 1 6 1 2 D F
PABLITO 1 1 1 4 1 C D E G
PEPITO 0 1 6 7 8 D
JULIANITO 1 1 1 7 3 C D E
FULANITO 2 2 3 2 7 No existe
MENGANITO 0 1 2 1 4 D F
Function Localizar(rango As Range, valor As Variant)
'fichamos la celda donde están los datos
'inicial y final (el rango, vamos)
mi_rango = rango.Address
'separamos los datos inicial y final
coordenadas = Split(mi_rango, ":")
inicio = coordenadas(0)
fin = coordenadas(1)
'pasamos a una variable la dirección de la celda inicial
celda = Range(inicio).Address
'para todo el rango de datos...
For i = 0 To Range(fin).Column - Range(inicio).Column
'Comprobamos el valor introducido
If Range(celda) = valor Then
columna = columna & " " & Range(celda).Address
'eliminamos el signo de $ de referencia absoluta
columna = Replace(columna, "$", "")
End If
'pasamos a la siguiente columna
celda = Range(celda).Offset(0, 1).Address
'seguimos con el bucle
Next
'Si no existe el dato en ninguna columna
If columna = 0 Then columna = " No existe"
'eliminamos los números de la fila
numeros = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
For j = 0 To UBound(numeros)
columna = Replace(columna, numeros(j), "")
Next
'asignamos a la función, el dato del contador
'eliminando previamente el primer espacio vacío
Localizar = Mid(columna, 2)
End Function
Es lo que te decía de juntar todos los valores, . Si querés en la celda G19 escribí
=A18&" | "B18&" | "&C18&" | "&D18&" | "&E18&" | &F18
La verdad que si querés hacerlo por macros avisame y lo vemos pero yo dentro de lo posible trato de mantenerlo "sin código"
Disculpa la molestia, pero no me resulta lo que busco.
Voy a colocar le necesidad de otra forma para ver si resultCount AG 125-S CH C 7/36-ACS KOR
624
638 a a
678
728
729
731 a
739 a
740
741 a
743
750
783
784 a
801
803
804
a.
Quiero que busque un código en la columna A y lo busque en la misma fila y devuelva el titulo de cada columna en que apareció la "a". En la columna A estarán todos loc códigos ordenados de mayor a menor y son 6000, por ende, en este arreglo es más fácil buscar horizontalemnte en vez de buscar en todo el arreglo.
Gracias
Ahora te entendí menos que antes. No llego a darme cuenta como tenés los datos... Supongo que buscarv te servirá pero no llego a entender como están todos los datos...
En la columna A, están todos los códigos (6000), a partir de la columba B en adelante, aparece cada máquina y los códigos que tiene cada una de ellas (son 80 máquinas). Hice una fórmula para que busque en otro archivo por columnas, y me muestre un código en la columna ordenada A y le ponga un visto bueno ("a" en letra webdings).
Lo que quiero es que busque en la fila, un código y vea que columnas tienen ese visto bueno y me diga todas las máquinas que lo poseen (siempre dentro de la misma fila).
En el fondo, hice un súper resumen con todos los códigos ordenados en la columna A y vistos buenos en donde exista coincidencia. Habría que ver en una fila, que columnas tienen vistos buenos y devolver su titulo de columna pero todos los títulos juntos en una sola celda.
Espero que sirva esta explicación, pero me resulta difícil explicarlo sin ver el archivo.
Saludos
Ahora entendí pero vas a tener que terminar en algo del concatenar como antes; encima vas a necesitar usar alguna macro para traer todos los códigos porque, por ejemplo Buscarv solo trae el primer que encuentre, creo que te conviene quedarte con la primer versión (agregando el concatenar al final de la celda).
Decime por donde la querés seguir.
Me pareceía que iba a ser complicado.
En la macro que encontré hace exactamente lo que necesito pero en vez de darme el encabezado de cada columna, me da la letra de la columna en forma concatenada. Ej el número 1 aparece en "A B E F".
Si fuera posible, ¿se podría cambiar la parte donde da la columna por la información de encabezados de columna?
Muchas gracias
Ok, cambie la función que me pasaste y la probé. Funciona pero en el rango tienes que incluir el titulo...
Function Localizar(rango As Range, valor As Variant)
'fichamos la celda donde están los datos
'inicial y final (el rango, vamos)
mi_rango = rango.Address
'separamos los datos inicial y final
coordenadas = Split(mi_rango, ":")
inicio = coordenadas(0)
fin = coordenadas(1)
'gf...lo paso a variables "numericas"
Dim salidaAuxiliar As String
Dim filaDesde As Long, filaHasta As Long, colDesde As Long, colHasta As Long
Dim i As Long, j As Long
salidaAuxiliar = ""
filaDesde = Range(inicio).Row 'en la 1 està el titulo...
colDesde = Range(inicio).Column
filaHasta = Range(fin).Row
colHasta = Range(fin).Column
For i = filaDesde + 1 To filaHasta
For j = colDesde To colHasta
If Cells(i, j) = valor Then salidaAuxiliar = salidaAuxiliar & Cells(1, j).Value & " | "
Next j
Next i
If salidaAuxiliar = "" Then
Localizar = "No Existe"
Else
Localizar = Left(salidaAuxiliar, Len(salidaAuxiliar) - 2)
End If
End Function

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas