Access - Función promedio geométrico

 
Vista:

Función promedio geométrico

Publicado por Martín (1 intervención) el 28/04/2006 20:52:54
Hola, necesito calcular el promedio geométrico de valores enteros en un campo determinado, a través de una consulta. Excel tiene una función llamada MEDIA.GEOM, pero en access al parecer no lo tiene. Igualmente necesito calcular el logaritmo base 10 de un valor. ¿Alguien tiene el código VBA para agregar estas funciones u otra forma de realizar este cálculo en access? Gracias por la ayuda...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Calcular promedio geométrico y logaritmo base 10 en una consulta

Publicado por Alejandro (4142 intervenciones) el 18/07/2023 18:31:16
En Access, no hay una función incorporada para calcular directamente el promedio geométrico o el logaritmo base 10 en una consulta. Sin embargo, puedes crear tus propias funciones personalizadas utilizando VBA (Visual Basic for Applications) y luego utilizar esas funciones en tus consultas.

A continuación, te proporciono el código VBA para crear las funciones de promedio geométrico y logaritmo base 10:

1. Función para calcular el promedio geométrico:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Public Function PromedioGeometrico(ParamArray values() As Variant) As Variant
    Dim product As Double
    Dim count As Integer
    Dim i As Integer
 
    product = 1
    count = 0
 
    For i = LBound(values) To UBound(values)
        If Not IsNull(values(i)) Then
            If IsNumeric(values(i)) And values(i) > 0 Then
                product = product * values(i)
                count = count + 1
            Else
                PromedioGeometrico = Null
                Exit Function
            End If
        End If
    Next i
 
    If count > 0 Then
        PromedioGeometrico = product ^ (1 / count)
    Else
        PromedioGeometrico = Null
    End If
End Function

2. Función para calcular el logaritmo base 10:

1
2
3
4
5
6
7
Public Function LogaritmoBase10(ByVal value As Variant) As Variant
    If Not IsNull(value) And IsNumeric(value) And value > 0 Then
        LogaritmoBase10 = Log(value) / Log(10)
    Else
        LogaritmoBase10 = Null
    End If
End Function

Para utilizar estas funciones en tus consultas, sigue estos pasos:

1. Abre tu base de datos en Access y ve al Editor de Visual Basic presionando Alt + F11.
2. En el Editor de Visual Basic, ve al menú "Insertar" y selecciona "Módulo" para crear un nuevo módulo.
3. Copia y pega el código VBA de las funciones en el nuevo módulo.
4. Guarda el módulo y cierra el Editor de Visual Basic.

Ahora, puedes utilizar estas funciones personalizadas en tus consultas de Access. Por ejemplo, para calcular el promedio geométrico de un campo llamado "CampoEntero" en una tabla llamada "TablaDatos", puedes crear una consulta y utilizar la siguiente expresión en el campo calculado:

1
PromedioGeometrico([CampoEntero]) AS PromedioGeom

Para calcular el logaritmo base 10 de un campo llamado "CampoValor" en una tabla llamada "TablaDatos", puedes utilizar la siguiente expresión en el campo calculado:

1
LogaritmoBase10([CampoValor]) AS LogBase10

Recuerda reemplazar "CampoEntero" y "CampoValor" con los nombres de tus campos reales y "TablaDatos" con el nombre de tu tabla real.

Espero que esta solución te ayude a calcular el promedio geométrico y el logaritmo base 10 en tus consultas de Access utilizando funciones personalizadas en VBA. ¡Buena suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar