** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Buscar datos en matriz horizontal y vertical
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Buscar datos en matriz horizontal y vertical

 Responder Responder
Autor
Mensaje
alfare Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 28/Junio/2006
Localización: Colombia
Estado: Sin conexión
Puntos: 669
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita alfare Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Buscar datos en matriz horizontal y vertical
    Enviado: 06/Diciembre/2021 a las 00:39
Hola a tod@s:
Tengo el siguiente problema y recurro a Uds para poder resolverloOuch , por favor ver la siguiente imagen :


  1. entre las columnas J : Y, se podrán colocar unos códigos únicos relativos a unas posiciones en una bodega de almacenamiento.
  2. En la columna A, el ID de varios productos
  3. A la derecha-superior de la imagen esta la distribución de como están ubicados los códigos de las posiciones de la bodega que se nombran en el punto # 1. estos serán fijos
Lo que deseo obtener, es que mediante una combinación de formulas (la cual no he podido hallar), en la parte derecha-inferior, me traiga el código del producto que esta en casa posición cuando en las columnas J:Y se cambie algún código.

De antemano agradezco a quien se interese en este hilo.



Slds desde Cali Colombia
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14105
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita xavi Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 07/Diciembre/2021 a las 16:11
Hola,

He leído como 20 veces tu planteamiento pero no soy capaz de entender los datos de partida y, mucho menos, el objetivo (a lo mejor es que en España tenemos varios festivos y estoy descolocado).

Vuelve a intentar explicarlo y, ya puestos, un ejemplo de como debería quedar.

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
sdgm Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 21/Abril/2005
Localización: Guatemala
Estado: Sin conexión
Puntos: 916
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita sdgm Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 08/Diciembre/2021 a las 17:21
Hola, Rafael.

Coincido con Xavi: ¡¡tu caso es un verdadero rompecabezas!!  Pero si te entendí bien, tal vez las siguientes líneas de puedan ayudar...

En primer lugar, te comentaré que las fórmulas (a mi entender), no te serán muy útiles.  Hay demasiadas filas y columnas por considerar, por lo que una solución por esa vía sería demasiado compleja, y hacer algún cambio posterior podría llevarte mucho tiempo y un gran riesgo de cometer algún error.  

Te aconsejaría orientar la solución a código VBA.  La cantidad de iteraciones y de resultados a generar no es muy grande, así que la velocidad de respuesta es aceptable.  Prueba insertar un módulo, y pegar allí el código siguiente:

Sub ActualizarRangos()
    Dim xCelda As Range
    For Each xCelda In Range("AA8:AB11,AD8:AE11,AG8:AH11").Cells
        xCelda.Value = CodigoPos(xCelda.Offset(-6, 0).Value)
    Next xCelda
End Sub
Private Function CodigoPos(xPosicion As String) As String
    Dim F As Long, C As Long
    For F = 2 To 12
        For C = 10 To 25
            If Cells(F, C).Value = xPosicion Then
                CodigoPos = Cells(F, 1).Value
                Exit For
            End If
        Next C
    Next F
End Function

Luego agrega un botón que llame al procedimiento "ActualizarRangos".  Deberás pulsarlo cada vez que creas que algún artículo cambió de posición.  Comenta si es esto lo que buscas.  Esta es una solución "a la medida" exacta del ejemplo que muestras.  Si el caso real tiene variaciones, tendrás que hacer las adaptaciones necesarias en el código anterior.

Adicional, si alguien logra resolver el problema con fórmulas, sería muy interesante que nos compartiera su solución.

Saludos!


Cordialmente, David
Arriba
alfare Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 28/Junio/2006
Localización: Colombia
Estado: Sin conexión
Puntos: 669
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita alfare Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 08/Diciembre/2021 a las 18:26
Hola Xavi y David.
Les ruego me excusen si mi explicación no fue clara y les hice perder tiempo, dicho lo anterior decidi colgar el siguiente video para fortalecer la explicacion.

https://youtu.be/YoQlYIhEiHo
Slds desde Cali Colombia
Arriba
sdgm Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 21/Abril/2005
Localización: Guatemala
Estado: Sin conexión
Puntos: 916
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita sdgm Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 08/Diciembre/2021 a las 18:49
Gracias por el video.  En efecto, veo que eso es lo que resuelvo con el código que te propongo.

Pruébalo, y si no se propone una solución por fórmula (lo que sería fabuloso), al menos tienes esta solución programada.

Saludos.
Cordialmente, David
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 12960
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 09/Diciembre/2021 a las 17:01
El evento Change de una hoja proporciona una valiosa información en el parámetro Target, nos da la dirección/es de las celdas cambiadas, en el momento del cambio.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then .........
End Sub
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable