............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

crear funciones para excel

Ver el tema anterior Ver el tema siguiente Ir abajo

crear funciones para excel

Mensaje por moises melgar el Miér Jun 02, 2010 1:58 pm

hola mi problema es en excel utilice la formula buscarv para poder determinar el incp de una fecha
para eso tengo que tener unas serier de celdas con estos datos:
......A.........B.........C..........d.........e .........f
1 años .Enero ... febrero .. marzo ... abril .. mayo ......etc
2 2005 112.554 112.929 113.438 113.842 113.556
3 2006 116.983 117.162 117.309 117481 116.958
4 2007 121.640 121.980 122.244 122.171 121.575
5 2008 126.146 126.521 127.438 127.728 127.590

entonces cuando ponen una fecha ejemplo
......... A
6 01/01/2007

Pongo la formula =BUSCARV(AÑO(A6),$A$1:$f$5,MES(A6)+1,FALSO)
y me da como resultado 121.640 (celda B4)
y con esto encuentro el INPC de la fecha que se me da

pero mi pregunta es si se puede crear una formula en visual para que nada mas ponga digamos """" =INPC(A6) = 121.640 """" y no tenga que estar arrastrando mi base de datos en excel y solo al importar el archivo de visual lo haga


Última edición por moises melgar el Miér Jun 02, 2010 2:03 pm, editado 1 vez (Razón : ayuda con formulas)
avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 552
Edad : 29
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: crear funciones para excel

Mensaje por Tatayayan el Mar Jun 08, 2010 11:50 am

Hola,
Function INPC(Fecha As Date, Tabla As Range)
If Tabla.Find(Year(Fecha), LookIn:=xlValues, lookat:=xlWhole) Is Nothing Then
INPC = 0
Else
INPC = Tabla.Find(Year(Fecha), LookIn:=xlValues, lookat:=xlWhole).Offset(0, Month(Fecha)).Value
End If
INPC = Resp
End Function

Sino con fórmulas otra opción:

=INDICE(B2:F5;COINCIDIR(AÑO(A7);A2:A5;0);COINCIDIR(TEXTO(A7;"mmmm");B1:F1))
avatar
Tatayayan
Moderador
Moderador

Masculino Cantidad de envíos : 319
Ciudad - Pais : Chamical- La Rioja - ARG
Fecha de inscripción : 20/11/2008

Volver arriba Ir abajo

Re: crear funciones para excel

Mensaje por GalileoGali el Mar Jun 08, 2010 7:18 pm

Otra alternativa
Option Explicit

Código:
Function INPC(Fecha As Long)
Application.Volatile True
If Not Application.IsDate(Fecha) Then Exit Function
INPC = Evaluate("=VLOOKUP(YEAR(" & Fecha & "),A1:F5,MONTH(" & Fecha & ")+ 1,FALSE)")
End Function

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: crear funciones para excel

Mensaje por moises melgar el Mar Jun 08, 2010 9:19 pm

muchas gracias
en verdad esto de las macros soy muy novato

voy a probar de inmediato esto
avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 552
Edad : 29
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: crear funciones para excel

Mensaje por GalileoGali el Miér Jun 09, 2010 5:39 pm

Esta otra pasa el rango de busqueda como argumento

Código:
Function INPC(Fecha As Date, rng As Range)
Application.Volatile True
If Not IsDate(Fecha) Then Exit Function
año = Year(Fecha)
Mes = Month(Fecha)
Set Rango = rng
INPC = Application.VLookup(año, Rango, Mes + 1, False)
End Function

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: crear funciones para excel

Mensaje por moises melgar el Jue Jun 10, 2010 3:36 pm

Hola mira me pasastes este codigo:

Function INPC(Fecha As Long)
Application.Volatile True
If Not Application.IsDate(Fecha) Then Exit Function
INPC = Evaluate("=VLOOKUP(YEAR(" & Fecha & "),A1:F5,MONTH(" & Fecha & ")+ 1,FALSE)")
End Function

Y salio muy bien salio exactamente como lo necesitaba

pero como le hago para utilizarla en otras hojas????, por que cuando la utilice en la hoja que tiene los datos si salio por el rango "a1:f5"
pero ahora me gustaria saber si me ayudas a que esta formula pueda usarla en las hojas???, para que pueda tener una hoja especial en donde tenga los datos, y en las otras utilizar las formulas
avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 552
Edad : 29
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: crear funciones para excel

Mensaje por GalileoGali el Jue Jun 10, 2010 5:36 pm

Viste la funcion ampliada que te aporte en el Post anterior? o la que te brindo TATAYAYAN?

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: crear funciones para excel

Mensaje por moises melgar el Vie Jun 11, 2010 1:04 pm

si ye esta gracias de nuevo ya pude conseguir lo que necesitaba
avatar
moises melgar
Jr_Moderator

Masculino Cantidad de envíos : 552
Edad : 29
Ciudad - Pais : Coatzacoalcos - Mexico
Version de Excel : 2007 - 2010
Fecha de inscripción : 25/05/2010

Volver arriba Ir abajo

Re: crear funciones para excel

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.