Muy Buenas,
Como jugar a hundir la flota. Me explico: tengo montada una función
que busca el elemento fila y elemento columna de una tabla que nombro
en excel y me devuelve el cruce entre ambas:
rojo verde amarillo
dia1
dia2 43
dia3
Poniendo =B(nombre_rango; "dia2";"verde") devuelve 43.
Esto lo hago con la función de más abajo, pero quisiera saber si ya
existe alguna construida en excel que haga lo mismo de forma tan
sencilla como la función que os muestro (rango, elemento_fila,
elemento_col), sin que tenga que utilizar una combinación de funciones
concidir, indirecto, etc que complican la función y al final tengo un
churro de función ilegible.
La cuestión es que esta función la utilizo bastante en un libro y
excel se cansa de pasar todos los datos por la función "B" y aparecen
refs.cuando se queda sin memoria. Por eso quería saber si conocéis de
alguna función ya diseñada en excel u otra que mejore la que os
presento.
Gracias por adelantado,
Javi
Public Function B(hoja As Range, ElementoFila As Variant, ElementoCol
As Variant) As Variant
Dim nfila As Integer
Dim ncol As Integer
'Dim BPrevio As Double
nfila = Application.WorksheetFunction.Match(ElementoFila,
hoja.Columns("A:A"), 0)
ncol = Application.WorksheetFunction.Match(ElementoCol,
hoja.Rows("1:1"), 0)
B = Application.WorksheetFunction.Index(hoja, nfila, ncol, 1)
If (Application.WorksheetFunction.IsNumber(B) = False Or
Application.WorksheetFunction.IsError(B) = True) Then
B = "ND"
Else
B = Application.WorksheetFunction.Index(hoja, nfila, ncol, 1)
End If
End Function
Leer las respuestas