Busco Formula

14/11/2003 - 14:40 por jose miguel ramirez | Informe spam
Estimados : agradesco de antemano cualquier aporte. Tengo una planilla en la
cual necesito que en un celda se llene con informacion de la variable que
esta en la celda contigua. la cantidad de variable son 17!, tambien se
conbinadas. el caso es el siguiente :

A B
Largos Tipo de Puerta
90 P01
180 P01;P01
290 P01:P07
. .
. . y asi sucesivamente, entonces cuando
coloco informacion de tipo de Pueta en B se llene la columna A con el largo
de esta o estas que seria a la suma de los largo de las Ps ingresadas en
B, la (contidad de P son 17.)

Gracias de antemano y saludos
desde punto cl
jm
 

Leer las respuestas

#1 Héctor Miguel
15/11/2003 - 08:56 | Informe spam
Hola, Jose Miguel !

... necesito que ... celda se llene con informacion de la variable ... en la celda contigua.
... la cantidad de variables son 17, tambien ... conbinadas ... el caso es el siguiente :
A B
Largos Tipo de Puerta
90 P01
180 P01;P01
290 P01:P07 ... y asi sucesivamente ...
... cuando coloco informacion del tipo de Puerta en B se llene la columna A
... con ... la suma de los largos de las Ps ingresadas en B [...]



lo que necesitas ['al parecer', buscar en una matriz y sumar datos -variables- 'solicitados n_veces']
REQUIERE 'contar' las veces que se 'repetira' la busqueda [lo que seria 'como' una funcion 'BuscarV' ... 'repetitiva']
[de momento, y 'mientras aparece' una formula 'matricial'] la siguiente funcion 'personalizada' es [o pudiera serte] 'util' :))
en un modulo de codigo 'normal' ==Function SumarDatos(Datos As String, Tabla As Range, Col As Integer, _
Optional Lista As String) As Double
Dim Celda As Range, Veces As Integer, Sig As Integer, Dato_n(), _
Inicio As Integer, Largo As Integer
Veces = Len(Datos) - Len(Replace(Datos, Lista, "")) + 1
If Veces > 1 Then
Inicio = 1
For Sig = 1 To Veces
ReDim Preserve Dato_n(Sig)
If Sig < Veces _
Then Largo = InStr(Inicio + 1, Datos, Lista) - Inicio _
Else Largo = Len(Datos) - Inicio + 1
Dato_n(Sig - 1) = Mid(Datos, Inicio, Largo)
Inicio = Inicio + Largo + 1
SumarDatos = SumarDatos + Application.VLookup(Dato_n(Sig - 1), Tabla, Col)
Next
Else: SumarDatos = Application.VLookup(Datos, Tabla, Col)
End If
End Function

Notas: =>'mi' separador de argumentos es la coma ',' NO punto y coma ';'<1.- una vez 'creada', la forma de 'usarla' [en hojas de calculo] seria [p.e.en las celdas de la columna 'A']
['A5'] =SumarDatos(B5,Hoja2!$A$2:$B$18,2,";")
y los argumentos que 'solicita' ['igual a' la funcion BuscarV] son:
Datos = la celda o el dato-texto ['entre' comillas dobles] que contiene la 'combinacion' de dato/s 'a buscar'
Tabla = el rango de celdas que contiene la tabla para 'buscar_donde'
Col = el numero de la columna [a la derecha del dato] que se 'devolvera' [o 'acumulara en suma']
Lista = la celda o el dato-texto ['entre' comillas dobles] que contiene el 'separador' de los datos [ ; - / * , _ ...]
2.- si usas excel '97 cambia 'Replace(...' [funcion vba] por 'Application.Substitute(...' [funcion hoja de calculo] =>linea 5<
saludos,
Héctor.

Preguntas similares