En esos casos, generalmente recurrimos a una macro. Pero si necesitamos realizar ese cálculo de modo frecuente.... ¿porqué no desarrollar nuestra propia función?
En este video se puede seguir el paso a paso de cómo se crearon 2 funciones personales:
1- Encontrar un número en una matriz: =BUSCARM(nro; rango)
2- Sumar de modo alterno en un rango de una columna: = SUMA_ALTERNA(rango)
IMPORTANTE: las funciones personales deben ser desarrolladas para ser utilizadas en cualquier escenario. Verificar si el resultado obtenido coincide con los resultados esperados en los distintos escenarios.
A continuación los códigos para cada función que encontrarán en libro que se deja para descargar.
Function BUSCARM(dato, rango)
'buscar en la matriz
For Each cd In Range(rango.Address)
If cd.Value = dato Then BUSCARM = cd.Address(False, False)
Next cd
End Function
Function SUMA_ALTERNA(rango)
'1er fila y col del rango
fil = Range(rango.Address).Row
col = Range(rango.Address).Column
'total de filas
filas = Range(rango.Address).Rows.Count
'se recorre el rango en saltos de 2
For i = fil To filas + fil Step 2
tot = tot + Cells(i, col)
Next i
SUMA_ALTERNA = tot
End Function
3- Sumar de modo alterno en un rango de una columna, con criterio.
Si además necesitamos sumar según alguna condición al estilo SUMAR.SI, agregaremos como segundo argumento el criterio deseado:
= SUMA_ALTERO(rango;criterio)
Function SUMA_ALTERO(rango, criterio)
'instrucciones
For i = fil To filas + fil Step 2
If InStr(1, Cells(i, col - 1), criterio) > 0 Then tot = tot + Cells(i, col)
Next i
'resto de instrucciones
End Sub
Descargar libro de ejemplo
Acceso al VIDEO N° 21.
No hay comentarios.:
Publicar un comentario