Saltar al contenido

Macro formulas mejor armadas.


Recommended Posts

publicado

Hola a todos los del foro, quisiera saber si alguien tiene la solucion para optimizar estas formulas para realizar una macro y no estar arrastrando la formula cada que la necesito aplicar..

Tengo esta formula...

=(2012-(EXTRAE(O2,5,2)+1900))[/PHP]

[b][i]Calcular edad en base a la fecha de nacimiento[/i][/b] ... SORL[b]79[/b]0406636

[PHP]=SI(P2<24,"De 18 a 24 años",SI(P2<29,"de 25 a 29 años",SI(P2<34,"de 30 a 34 años",SI(P2<39,"de 35 a 39 años",SI(P2<44,"de 40 a 44 años",SI(P2<49,"de 45 a 49 años",SI(P2<54,"de 50 a 54 años",SI(P2<59,"de 55 a 59 años",SI(P2<64,"de 60 a 64 años",SI(P2<65,"de 65 a 69 años","mayor de 70 años"))))))))))[/PHP]

[i][b]Rango de edad donde se encuentra...[/b][/i]

Gracias a todos, re agradecido con este excelente foro.

Saludos

Gerardo

publicado

Hola compañero no soy experto en este tema, tal vez exista una mejor forma de hacerlo, pero yo lo haría con un Select case dentro de una Function y luego llamaría mediante una macro esa formula

Function edades(anio As Integer)

Select Case anio
Case 18 To 24
edades = "De 18 a 24 años"
Case 25 To 29
edades = "De 25 a 29 años"
Case 30 To 34
edades = "De 30 a 34 años"
Case 35 To 39
edades = "De 35 a 39 años"
Case 40 To 44
edades = "De 40 a 44 años"
Case 45 To 49
edades = "De 45 a 49 años"
Case 50 To 54
edades = "De 50 a 54 años"
Case 55 To 59
edades = "De 55 a 59 años"
Case 60 To 64
edades = "De 60 a 64 años"
Case 65 To 69
edades = "De 65 a 69 años"
Case Else
edades = "Mayor o igual a 70 años"
End Select

End Function[/CODE]

=edades(celda donde esta la edad)

En el ejemplo se ve mas claro....

Espero te sirva de algo....

ejemploEdad.zip

publicado

Gracias jermmy, esta muy buena tu solucion, solo que necesito algo para no estar seleccionando el rango a cada momento ya que es una columna con muchos registros, dale que trabajo con tu propuesta para ver si puedo ajustarla, pero si alguien nos puede ayudar muchas gracias.

Yo estoy igual que tu, mi conocimiento en macros es nulo, pero el intento se le hace.

Saludos

publicado

La respuesta del compañero si funciona pero dura mucho en ejecutarse por ser un ciclo, y se ejecuta cada vez que se cambia la hoja, en este caso lo que hice fue solo cuando se modifique el valor de una celda de la columna

Agregar esto al código en hoja1

Private Sub Worksheet_Change(ByVal Target As Range)

Dim i As Long

i = Target.Row

If Target.Column = 3 Then 'Columna donde ingresamos datos

Range("D" & i).Activate 'Donde queremos la respuesta

ActiveCell.FormulaR1C1 = "=edades(RC[-1])"

Exit Sub

End If

End Sub

Adjunto ejemplo, espero te funcione. Habilita las macros y ingresa un numero en alguna celda de la columna C

ejemploEdad.zip

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.