buscar dato en una matriz o base de datos

16/07/2005 - 00:49 por HUGO B | Informe spam
q tal grupo queria preguntar como le puedo hacer para encontrar un numero y
si esta dentro de la fecha q yo le ponga de comparacion me devuelva un "*"
(la lista q tego son de como 2000 filas y un numero se puede repetir pero en
otra fecha)... espero me explique pongo ejemplo (supongamos q llevo el
control de una flotilla de carros y cada sierto tiempo le damos su afinacion
(3, 4, 6 meses, etc.) y lo q quiero hacer es un calendario y q se marque con
un "*" el dia q se afino asi para tener marcado cuando se hicieron las
afinaciones) (me gustaria tambien si se puede q tambien se pudiera en la
formula q se compara con otra hoja q tambien es listado pero este es de
accidentes (como ponchaduras de llantas, agregar aceite, chequeo, etc y este
se marcara con "/") ..

hoja1 (PLACA ESTA EN A1...)
PLACA Afinacion
HZP-3192 01/01/2005
TPX-3182 05/01/2005
JTG-3692 30/03/2005
ZJN-4521 01/01/2005
HZP-3192 07/06/2005
ZJN-4521 01/05/2005

Hoja2 (LA PRIMER PLACA ESTA EN A3, B2=1,C1=2,etc) (ASI QUIERO Q SE VEA)
PLACA ENERO
1 2 3 4 5 ...
HZP-3192 *
TPX-3182 *
JTG-3692
ZJN-4521 *
HZP-3192
ZJN-4521

HOJA3 (ESTO ES LO Q ME GUSTARI Q EN LA MISMA FORMULA DE EL CALENDARIO Q
APARECIERA PARA Q SE PUSIERA "/")
PLACA FALLO
HZP-3192 03/01/2005
TPX-3182 05/07/2005
JTG-3692 3/07/2005
ZJN-4521 05/01/2005
HZP-3192 09/07/2005
ZJN-4521 08/07/2005


CABE DESTACAR Q EN LA HOJA 2 ES DONDE ESTA LA FLOTA COMPLETA CAPTURADA Y LA
HOJA 1 Y 3 SE CAPTURA HACIA ABAJO.

PONGO EJEMPLO DE FORMULA PARA VER SI ES POR AHI O ANDO TOTAL MENTE PERDIDO
ESTA ES MATRIZIAL

=SI((Hoja1!$A$2:$A$1586=Hoja2!A3)*(DIA(Hoja1!$B$2:$B$1586)=Hoja2!$B$2)*(MES(Hoja1!$B$2:$B$1586)=1),"*","")
AQUI NO TENGO CONTEMPLADA LA HOJA3 Q ME GUSTARIA INCLUIR..
OJALA Y ME PUEDAN AYUDAR GRACIAS!!!

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
16/07/2005 - 09:25 | Informe spam
hola, Hugo !

si te he entendido bien... [te sugiero]... haz las siguientes [ligeras] modificaciones en la hoja2 [el listado 'completo']...
1) los 'dias' [que inician en B2,C2,D2,etc.] CAMBIALOS a fechas_reales ->en secuencia<- [p.e. 1/1/05, 2/1/05, etc.]
2) aplica al rango completo de dias [B2...->] un formato 'personalizado' que muestre solamente el dia [p.e. 'd']
3) prueba con la siguiente formula [inicial] en hoja1->B3 =>NO es matricial<= :))
=elegir(1+sumaproducto((hoja1!$a$2:$a$1586=$a3)*(hoja1!$b$2:$b$1586=b$2)),"","*")
4) copia la formula al resto del listado
5) para agregar los 'detalles' [relacionados en la hoja3]... necesitaras CONCATENAR una formula 'identica'
-> sustituyendo hoja1 a hoja3 [y probablemente sus rangos]
-> y sustituyendo tambien el caracter * por \
[y quizas... algun 'separador intermedio'... para cuando existan los dos carcteres] :)

nota: no se si 'pretendas' controlar un calendario anual completo -?- [ya que solo 'dispones' de 256 columnas] :-(

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.

mensaje original... 'recortado' ==> ... llevo el control de una flotilla de carros y cada... tiempo le damos su afinacion (3, 4, 6 meses, etc.)
... quiero hacer... un calendario y q se marque con un "*" el dia q se afino
... q tambien... en la formula... ponchaduras de llantas, agregar aceite, chequeo, etc... se marcara con "/"
hoja1 (PLACA ESTA EN A1...)
PLACA Afinacion
HZP-3192 01/01/2005 [...]
Hoja2 (LA PRIMER PLACA ESTA EN A3, B2=1,C1=2,etc) (ASI QUIERO Q SE VEA)
PLACA ENERO
1 2 3 4 5 ...
HZP-3192 *
TPX-3182 * [...]
HOJA3
PLACA FALLO
HZP-3192 03/01/2005 [...]
... EN LA HOJA 2 ES DONDE ESTA LA FLOTA COMPLETA [...]
... EJEMPLO DE FORMULA... MATRIZIAL
=SI((Hoja1!$A$2:$A$1586=Hoja2!A3)*(DIA(Hoja1!$B$2:$B$1586)=Hoja2!$B$2)*(MES(Hoja1!$B$2:$B$1586)=1),"*","") [...]
Respuesta Responder a este mensaje
#2 HUGO B
16/07/2005 - 16:31 | Informe spam
GRACIAS MIGUEL!!!... no me resulto me aparece el "*" pero no me toma la fecha
q estoy comparando... tu tip de la fecha se me hiso bastante bueno!! no lo
habia penzado. TE PONGO EL RESULTADO Q ME APARECE.. ya me fije q las celdas
de fecha tengan ese formato, q las de las placas sean de texto y todo pero no
me sale!!

PLACA ENERO
1 2 3 4 5 6
HZP-3192 *
TPX-3182 *
JTG-3692
ZJN-4521 *
HZP-3192 *
ZJN-4521 *

si te fijas me toma las placas HZP-3192 y ZJN-4521 q no son de enero.. q
crees q sea??



"Héctor Miguel" escribió:

hola, Hugo !

si te he entendido bien... [te sugiero]... haz las siguientes [ligeras] modificaciones en la hoja2 [el listado 'completo']...
1) los 'dias' [que inician en B2,C2,D2,etc.] CAMBIALOS a fechas_reales ->en secuencia<- [p.e. 1/1/05, 2/1/05, etc.]
2) aplica al rango completo de dias [B2...->] un formato 'personalizado' que muestre solamente el dia [p.e. 'd']
3) prueba con la siguiente formula [inicial] en hoja1->B3 =>NO es matricial<= :))
=elegir(1+sumaproducto((hoja1!$a$2:$a$1586=$a3)*(hoja1!$b$2:$b$1586=b$2)),"","*")
4) copia la formula al resto del listado
5) para agregar los 'detalles' [relacionados en la hoja3]... necesitaras CONCATENAR una formula 'identica'
-> sustituyendo hoja1 a hoja3 [y probablemente sus rangos]
-> y sustituyendo tambien el caracter * por \
[y quizas... algun 'separador intermedio'... para cuando existan los dos carcteres] :)

nota: no se si 'pretendas' controlar un calendario anual completo -?- [ya que solo 'dispones' de 256 columnas] :-(

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.

mensaje original... 'recortado' ==> > ... llevo el control de una flotilla de carros y cada... tiempo le damos su afinacion (3, 4, 6 meses, etc.)
> ... quiero hacer... un calendario y q se marque con un "*" el dia q se afino
> ... q tambien... en la formula... ponchaduras de llantas, agregar aceite, chequeo, etc... se marcara con "/"
> hoja1 (PLACA ESTA EN A1...)
> PLACA Afinacion
> HZP-3192 01/01/2005 [...]
> Hoja2 (LA PRIMER PLACA ESTA EN A3, B2=1,C1=2,etc) (ASI QUIERO Q SE VEA)
> PLACA ENERO
> 1 2 3 4 5 ...
> HZP-3192 *
> TPX-3182 * [...]
> HOJA3
> PLACA FALLO
> HZP-3192 03/01/2005 [...]
> ... EN LA HOJA 2 ES DONDE ESTA LA FLOTA COMPLETA [...]
> ... EJEMPLO DE FORMULA... MATRIZIAL
> =SI((Hoja1!$A$2:$A$1586=Hoja2!A3)*(DIA(Hoja1!$B$2:$B$1586)=Hoja2!$B$2)*(MES(Hoja1!$B$2:$B$1586)=1),"*","") [...]



Respuesta Responder a este mensaje
#3 Héctor Miguel
16/07/2005 - 20:24 | Informe spam
hola, Hugo !

... me aparece el "*" pero no me toma la fecha q estoy comparando...
... TE PONGO EL RESULTADO Q ME APARECE...
PLACA ENERO
1 2 3 4 5 6
HZP-3192 *
TPX-3182 *
JTG-3692
ZJN-4521 *
HZP-3192 *
ZJN-4521 *
... me toma las placas HZP-3192 y ZJN-4521 q no son de enero.. q crees q sea?



[creo que solamente] se trata de una 'solicitud duplicada' :D [me explico]...
-> las 'marcas' que esta dejando en las placas HZP-3192 y ZJN-4521 [que tu 'aprecias' que no son de enero]
a) NO se refieren a las que tienen fecha junio-7 NI enero-5
-> 'esas' apareceran cuando el calendario 'llegue' a esas fechas :))
b) [en realidad] se refieren a la fecha [dia en la columna] del calendario que 'las solicita' ->enero-1<-
c) la 'razon' de que esten 'apareciendo' [en enero-1] ES porque las estas solicitando DOS VECES :-(
-> si se entiende que en la hoja2 esta el listado ->completo<- de las unidades...
a) se supone que debiera existir un registro ->unico<- por cada unidad PERO...
b) las placas 3192 y ZJN-4521 -> aparecen DOS veces en el listado completo <- por que ???

comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#4 HUGO B
18/07/2005 - 07:16 | Informe spam
la razon pq se repite es pq 1 carro puede tener mas de un servicio por año
por eso puse el ejemplo asi q se repitiera, pq esa es mi bronca :(

o algo q tambien me ayudaria es q tengo otra columa en donde pongo una
marca (t, v, s, d) q en ves de el "*" me pusiera esa letra q le pongo como
clave de q se le hiso a el carro, trate de cobinar la funcion buscarv y la
funcion si con una condicion de Y ej
=BUSCARV(SI(Y((Hoja1!$B$2:$B$1586²67)*(Hoja1!$AE$2:$AE$1586)=K$4),"SI","NO"),Hoja1!B2:AA1586,11)

pero nome sirve si me pone lo q tengo en la columna 11 (t, v, s, d) de donde
encuentra la placa pero me pone todo y no me respeta las condicones q le
pongo...
ta muy carajo lo q pido???

gracias x tratar de ayudarme!!! esperoy podamos encontar esta solucion..
lo voy a segui intentando ahora con BDEXTRAER pero creo q sera inutil pq
como tengo datos repetidos no mas no ...
no c si con algun macro nos podamos facilitar la vida???


"Héctor Miguel" escribió:

hola, Hugo !

> ... me aparece el "*" pero no me toma la fecha q estoy comparando...
> ... TE PONGO EL RESULTADO Q ME APARECE...
> PLACA ENERO
> 1 2 3 4 5 6
> HZP-3192 *
> TPX-3182 *
> JTG-3692
> ZJN-4521 *
> HZP-3192 *
> ZJN-4521 *
> ... me toma las placas HZP-3192 y ZJN-4521 q no son de enero.. q crees q sea?

[creo que solamente] se trata de una 'solicitud duplicada' :D [me explico]...
-> las 'marcas' que esta dejando en las placas HZP-3192 y ZJN-4521 [que tu 'aprecias' que no son de enero]
a) NO se refieren a las que tienen fecha junio-7 NI enero-5
-> 'esas' apareceran cuando el calendario 'llegue' a esas fechas :))
b) [en realidad] se refieren a la fecha [dia en la columna] del calendario que 'las solicita' ->enero-1<-
c) la 'razon' de que esten 'apareciendo' [en enero-1] ES porque las estas solicitando DOS VECES :-(
-> si se entiende que en la hoja2 esta el listado ->completo<- de las unidades...
a) se supone que debiera existir un registro ->unico<- por cada unidad PERO...
b) las placas 3192 y ZJN-4521 -> aparecen DOS veces en el listado completo <- por que ???

comentas?
saludos,
hector.



Respuesta Responder a este mensaje
#5 Héctor Miguel
19/07/2005 - 03:31 | Informe spam
hola, Hugo !

... 1 carro puede tener mas de un servicio por año por eso puse el ejemplo asi q se repitiera, pq esa es mi bronca :(
... me ayudaria... otra columa... donde... una marca (t, v, s, d)... en ves de... "*"... como clave de q se le hiso a el carro
trate de cobinar la funcion buscarv y la funcion si con una condicion de Y ej:
=BUSCARV(SI(Y((Hoja1!$B$2:$B$1586²67)*(Hoja1!$AE$2:$AE$1586)=K$4),"SI","NO"),Hoja1!B2:AA1586,11)
... si me pone lo q tengo en la columna 11 (t, v, s, d) de donde encuentra la placa pero me pone todo y no me respeta las condicones
... ta muy carajo lo q pido???



si quieres hacer otra prueba [antes de 'llegarle' a las macros]... van ejemplos al final ;)
si cualquier duda [o informacion adicional... comentas?
saludos,
hector.
=-> si 'piensas' continuar con listados 'unicos'... pero... CON 'repeticiones'... [como minimo]...
sera necesario 'alargar' las formulas para contar cuantas veces 'pudiera' aparecer cada unidad en los listados de 'servicios'...
[ademas de] 'comprobar' en que linea/fila aparece cada servicio...
[aparte]... 'ver'... si la fecha 'coincide' con la del dia del calendario que 'la solicita'...
[creo que lo demas... viene a ser -ya- 'lo de menos'] :)
-> otra opcion es 'separar' tantos listados 'unicos' SIN 'repeticiones' [uno por cada tipo de servicio] :-(
-> [creo que] para la alternativa que sugieres de usar una columna 'auxiliar' [supongo en un solo listato de servicios]...
[donde de preferencia] se usaria tambien en un listado 'unico' [tambien SIN 'repeticiones'] de todas las unidades...
las formulas que podrian 'funcionar' para devolver uno, dos, o los servicios que se marquen para cada placa ->por fecha<-
-> con los siguientes supuestos...
a) la columna 'B' es la que contiene los numeros de placas [en ambos listados]
b) la columna 'AE' es la que contiene las fechas [en el listado de los servicios]
c) la fila 4 es la que contiene las fechas [dias de cada mes] ->en el listado 'completo' de las unidades<-
d) la columna 'L' [en la hoja de servicios] es la que contiene 'la clave' del servicio [que pudiera ser una o varias]
en lugar de la formula que estas probando...
=buscarv(si(y((hoja1!$b$2:$b$1586²67)*(hoja1!$ae$2:$ae$1586)=k$4),"si","no"),hoja1!b2:aa1586,11)
op1: =desref(hoja1!$a$1,coincidir($b267&"\"&k$4,hoja1!$b$2:$b$1586&"\"&hoja1!$ae$2:$ae$1586,0),11)
op2: =indice(hoja1!$l$2:$l$1586,coincidir($b267&"\"&k$4,hoja1!$b$2:$b$1586&"\"&hoja1!$ae$2:$ae$1586,0))
=> AMBAS son formulas 'matriciales' [ya sabes... al introducirlas/editarlas... se deben 'terminar' con {ctrl}+{may}+{enter}]
=> AMBAS van a devolver 'valores de error' [en caso de no haber coincidencias de placas/dia_fecha_calendario] :-(
podrias 'ocultar' los valores de error con formatos condicionales [p.e.]
condicion: formula: =eserror(celda_con_la_formula)
formato: [p.e. color de la fuente en 'blanco'] :))
o... podrias considerar [otra vez] 'alargar' las formulas para 'descartar' los -posibles- valores de error -?-
o... buscar funciones que no requieran que la formula sea 'matricial' [como sumaproducto(), etc.]
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida