24 sept 2009

[T204] Buscar datos en tablas

En distintas disciplinas suele darse el caso de que haya que buscar valores que se encuentran en tablas de doble entrada. Partimos con 2 datos (a, c) y buscamos el tercero (b). Si lo hicieramos manualmente el proceso sería:  buscar el valor inmediatamente superior al dato "a" en la columna de datos (celeste en nuesto ejemplo), fijado este valor nos desplazamos por la fila correspondiente al mismo (naranja) hasta encontrar el valor inmediatamente superior a "c", una vez ubicado éste subimos por la columna correspondiente (amarilla) y hallamos el valor "b" en la fila de datos.
Si le ponemos cantidades a nuestros datos alfabéticos para obtener un ejemplo, tendríamos:
Datos:   a = 10,25      c = 35.000                 Resultado b = 51

Tratemos de ejemplificarlo ahora con un problema concreto, teniendo los valores tabulados en una planilla Excel y también la ubicación de la misma en la respectiva hoja (denominada en este caso "Cálculo"). La columna con fondo celeste es la correspondiente a la "Longitud" y la fila verde corresponde a los "Diámetros" de la cañería. Los números del 184 en adelante indican la ubicación relativa de las columnas en la hoja (en lugar de las letras)

     
Problema: Obtener el diámetro de una cañería conociendo la longitud de la misma y el caudal que tiene que transportar.

Solución: Para resolver el problema vamos a generar una función que se encargue de la búsqueda automática

Function DIAM(caudal, longitud)  
Fila = 17
    Do While longitud > Sheets("Cálculo").Cells(Fila, 184)
    Fila = Fila + 1
    Loop
    Col = 185
      Do While caudal > Sheets("Cálculo").Cells(Fila, Col)
      Col = Col + 1
      Loop
   DIAM = Sheets("Cálculo").Cells(17, Col)
End Function

Observar los valores iniciales para no confundirnos cuando el ejemplo y la posición sean distintos.

En nuestra planilla llamaremos a la función de la siguiente manera:


También podemos agregar una función "SI" que incluya a nuestra función "DIAM" para los casos que tengamos que completar una columna de datos y no querramos que aparezca un mensaje de error cuando falten la longitud o el caudal.

2 comentarios:

Unknown dijo...

Me gustó la nota. Espero que puedas publicar más sobre estos temas.
Saludos

Dario Gavassa dijo...

Muchas gracias "Josesito". Estas notas salen por sus preguntas o por tratarse de pequeñas situaciones que debemos resolver dentro de trabajos más complejos. Me parece que de esta manera se aprovecha más.

Publicar un comentario

Aviso Legal sobre los Artículos Publicados

Los conceptos vertidos en los artículos aquí publicados y mencionados en otras partes del sitio corresponden a los autores.
Es posible que algunos textos publicados en éste sitio hayan sido tomados de Internet, en cuyo caso se citará autor, fuente y/o página de donde se lo obtuvo, considerándolos como de copyright libre.