Estimados expertos estoy necesito hacer un select from where de access,pero en matriz de excel

matriz donde buscar el dato: A1:F5
A B C D E F

1 área grupo cargo eje niv1 niv2
2 TESORERÍA DIR TESORERO JEFE (vacío) (vacío)
3 TESORERÍA DIR PROTESORE SUBJEF JF INFORMAL (vacío)
4 TESORERÍA ADM ADMINISTRA (vacío) MANO DER AUXILIAR
5 MANTÉN ADM MANTÉN INTENDENTE OFICIAL BEDEL

dato del resultado buscado: D2:F5
Ejemplo:
donde área="TESORERÍA" y grupo="DIR" y cargo="PROTESORERO" y es niv1 debiera dar el resultado de "IF INFORMAL"
donde área="TESORERÍA" y grupo="ADM" y cargo="ADMINISTRA" y es niv2 debiera dar el resultado de "AUXILIAR"


El registro que debe agregar ese resultado, sería de la siguiente forma:
leg, apellido, nombre, área, grupo, cargo y nivel (donde nivel será alguno
del rango D1:F1) lo que se desea es agregar una celda mas en ese registro que
tenga el resultado de la selección con los filtros área, grupo, cargo y el
nivel.


No he encontrado función alguna en excel que permita esto, ningún buscar, ni
coincidir, lo mas parecido es sumar.si.conjunto


Pensaba en una función que reciba una matriz y los parámetros de búsqueda,
que arroje como resultado el valor de la celda que cumple esas condiciones, se
les ocurre?

1 Respuesta

Respuesta
1

Carga en un modulo lo siguiente y adáptalo a lo que necesitas

sub jeranquia()

dim fila=1 as integer

While sheets("tuhoja").cells(fila,1) <> empty

If sheets("tuhoja").cells(fila,1)="Tesorería" and sheets("tuhoja").cells(fila,2)= _

"Dir" and sheets("tuhoja").cells(fila,3)="Protesorero" then

sheets("tuhoja").cells(fila,5)="INFORMAL"

Else

sheets("tuhoja").cells(fila,5)="AUXILIAR"

End If

fila =fila +1

Wend

End sub

En www.programarexcel.blogspot.com encontraras una serie de ejemplos que puedes descargar y ver como funcionan, dale un vistazo. Comenta si era si lo que necesitabas

1° Agradezco el que me hayas hacho recordar algo básico, tantos años sin programar me había olvidado y quería resolver todo con el mismo excel.

No es exactamente lo que buscaba pero me has dado un importante empujón.

Ahora resta descubrir como le paso variables a la función y como devuelvo el resultado en la celda donde ponga la llamada a esa función.

Gracias

Para poner el resultado en la celda puedes hacer

sheets("mihoja").cells(fila,1)=mivariable

Y para hacer lo contrario?, no quiero que el resultado lo coloque en una celda, sino que lo tome una variable.

Por ejemplo:

miresultado = mifuncion(con mis datos para procesar)

Perdón, pero creo que mi pregunta es tan tonta que por eso no se me entiende y no la encuentro en la web.

Imagino que definiendo a la variable del resultado como GLOBAL podría usarla desde cualquier lado de mi hoja de cálculos, pero quiero que la vida de la variable quede restringida a la función.

Me logro explicar?

dim variable as integer y la declaras después del sub

sub proce ()

dim var as integer

end sub

Hola y ante todo gracias. pero voy a ver si yo puedo ser mas claro.

Con tu primer ayuda, logre entender: crear una función, declarar variables, comparar datos y colocar en celdas lo que se me ocurra.

Lo que no logro encontrar y entender es: creo una función a la que recibe un número y que dentro de la función, lo multiplica por si mismo.

Lo que estoy buscando es: en una celda -ej. A:1- coloco un numero 3, y en la celda de al lado le digo.

=mifuncion(A:1)

Lo que espero es que en la celda donde coloque =mifuncion(A:1), es decir A:2, quede a la vista el resultado 9.

La función en sí, la entiendo como:

Function mifuncion(numero as integer)
Dim resultado as integer

resultado = numero * numero

End Function

pude explicarme mejor, quiero usarla desde el excel, como si usara cualquier formula predefinida (como suma, fecha, max, min, etc.) solo llamarla en una celda, pasarle los datos y esperar que muestre el resultado.

Bien lo que tu quieres es que tu función agregar una función personalizada a excel, para ello abre un libro de excel en un módulo carga la función, luego ve a guardar a guardalo como un archivo de complemento de excel normalmente se guarda acá, C:\ Users\ Mi Cuenta\ AppData\ Roaming \Microsoft\ Complementos. Pero tu elige donde, luego una vez guardado abre un excel de nuevo ve archivo - opciones - complementos administrar complementos -ir . Ahí se abre un cuadro de diálogo donde está tu función haces click y ya está disponible en excel como función personalizada. Buscala así tendrás las funciones suma, fecha, max, min, etc. y la tuya como función personalizada.

Fijate en www.programarexcel.blogspot.com ahí una función que convierte número a letras en excel y hay un video sobre como hacer lo que te describo, pero con tu conocimiento seguramente me entenderás.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas