Búsqueda de coordenadas del texto buscado en la columna

Resuelto
mod77 Mensajes publicados 1320 Fecha de registro   Estado Miembro Última intervención   -  
 mod77 -
Hola,

Me cuesta mucho desde demasiado tiempo para tan poco y tan cerca del objetivo así que les pido ayuda por favor.

He comprado un lector de códigos de barras.
Cuando escaneo un código, se sitúa en T3.
Este código corresponde a uno de los nombres (aa, bb, cc, dd, ..) que se encuentran en una columna de T4 a T16, y quiero:
1) encontrar este nombre en la columna T
2) obtener las coordenadas de (fila, columna) donde se encuentra ese nombre en esa columna.

para 1) he usado: BUSCAR(T3;T4:T16;T4:T16) que me da un número en U3
para 2) he usado: CELDA("dirección";U3) que lo he colocado en V3

Pero el resultado siempre es $U$3 y no lo que espero, aunque es una simple búsqueda. mientras que 1) funciona.
¿Por qué no funciona esto, por favor?

Configuración: Windows XP 2002 SP3
Excel 2002

Saber decir NO es un deber y una fuerza! ¡No tengáis miedo! ¡La unión hace la fuerza!

¡Cámbialo a resuelto si lo es!

2 respuestas

  1. Raymond PENTIER Mensajes publicados 58219 Fecha de registro   Estado Colaborador Última intervención   17 485
     
    Hola.

    1) Tu título menciona Calc, y estás en el foro Libre Office / Open Office; sin embargo pareces estar equipado con Excel 2002 (tu configuración)...

    2) Es mucho mejor para nosotros consultar un archivo que pelear con una explicación más o menos clara... La prueba, tu fórmula no devuelve “un número” sino el contenido de la celda correspondiente a T3. Así que envía tu archivo
     1) Vas a https://www.cjoint.com/ 
    2) Haces clic en [Parcourir] para seleccionar tu archivo (8192 Ko máximo)
    3) Desplázate hacia abajo para hacer clic en el botón azul [Crear el enlace Cjoint]
    4) Después de unos segundos se mostrará la segunda página, con el enlace en negrita; lo seleccionas y haces “Copiar”
    5) Regresas a tu discusión en CCM, y en tu mensaje de respuesta haces “Colocar”.
    =>Ver la ficha https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers

    3) La fórmula =CELLULE("adresse";U3) devuelve
    la référence de la primera cellule de l’argument référence, sous forme de texte.
    Es la fórmula =CELLULE("ligne";U3) que devuelve
    el número de fila de la celda del argumento référence
    ; pero mostrará 3, porque el nombre que buscas en la lista ya es el que se ha introducido en T3 !
    Por lo tanto hay que usar la función EQUIV que te permite delimitar el rango de búsqueda : =EQUIV(T3;$T$4:$T$16)

    Cordiales.

    --
    La jubilación está bien, ¡especialmente en las Antillas ... :-)
    Raymond (INSA, AFPA, CF/R)
    3
  2. mod77 Mensajes publicados 1320 Fecha de registro   Estado Miembro Última intervención   53
     
    Buenas noches, Raymond Pentier,

    Sí, hace tanto tiempo que no he venido que no actualicé mi perfil.

    Gracias por tu respuesta; yo también había avanzado por mi cuenta con ello:

    Reconozco el problema correctamente porque no puedo contactarlo sin anonimizarlo:
    Tengo una tabla:
    A partir de la columna "F4" hay nombres.
    A partir de la columna "B4" hay información de presencia "Verdadero" o "Falso" que pueden forzarse juntos a "Falso" o "Verdadero" mediante una casilla de verificación

    En T3 está la celda donde se escribe el nombre escaneado

    He procedido paso a paso:
    en U3: EQUIV(T3;F1:F107;0)
    En V3 he puesto la concatenación de "B" y el contenido de U3: =CONCATENAR("B";U3)
    en W3 he puesto: =SI(CÉLULA("CONTENTS";INDIRECTO(V3))=0;"VERDADERO";"FALSO")

    en V4 he puesto la concatenación de "F" y el contenido de U3: = CONCATENAR("F";U3)
    y en V5 he añadido la visualización del nombre de la fila que está en la columna "F" vía: INDIRECTO(V4)

    y finalmente en B4 he puesto: =SI(T3=V5;SI(CÉLULA("CONTENTS";INDIRECTO(V3))=0;"VERDADERO";"FALSO"))

    Hice esto porque quiero, cuando tecleo un nombre en T3, que la columna "B" pase de "FALSO" a "VERDADERO"

    Pero el problema es que cuando, mediante una casilla de verificación, pongo toda mi columna "B" al estado "VERDADERO" o "FALSO"
    eso hace que desaparezca mi fórmula "=SI(T3=V5;SI(CÉLULA("CONTENTS";INDIRECTO(V3))=0;"VERDADERO";"FALSO"))" de la columna "B"

    Creo que una macro sería más simple pero no sé cómo hacerla:
    tomé una zona de texto pero ¿después ???

    ¿Cómo encontrar las coordenadas del nombre, escrito en la zona de texto, en la columna "F" y luego poner un "VERDADERO" en la columna "B" en la fila correcta ???

    that is the problem??
    --
    Saber decir NO es un deber y una fuerza! ¡No teman! ¡La unión hace la fuerza!

    ¡Pasa a resuelto si lo está!
    0
    1. mod77 Mensajes publicados 1320 Fecha de registro   Estado Miembro Última intervención   53
       
      He avanzado un poco desde ayer y el asunto se resume en hacer una macro que:
      1) lea las coordenadas en la celda "V3"
      2) escriba "VRAI" en la celda correspondiente a las coordenadas leídas en "V3"

      ¿Alguien puede ayudarme a hacer una macro que haga eso, por favor?
      0
    2. mod77 Mensajes publicados 1320 Fecha de registro   Estado Miembro Última intervención   53
       
      Hola Raymond Pentier, Por fin he conseguido lo que quería mediante una macro. Pero si vuelvo a usted es porque en esta fórmula, donde asocio una concatenación y EQUIV, =CONCATENER("B";EQUIV(T3;F1:F107;0)), falla cuando el nombre buscado tiene un espacio o está mal escrito. ¿Existe una fórmula que permita encontrar el primer nombre cercano al que se ingresa? por ejemplo: escribo "Adame" en lugar de "Adam" y me gustaría que apareciera igual porque está cerca. ¿Es posible, por favor?
      0
      1. Raymond PENTIER Mensajes publicados 58219 Fecha de registro   Estado Colaborador Última intervención   17 485 > mod77 Mensajes publicados 1320 Fecha de registro   Estado Miembro Última intervención  
         
        No; que yo sepa no.
        O entonces haría falta una fórmula que enumere todas las palabras implicadas ...
        0
    3. mod77
       
      ¡ok! ¡gracias a ustedes!
      0