Buscar referencias

29/11/2009 - 19:59 por José Rafael | Informe spam
Hola a todos
Uso Windows XP Excel 2003

Tengo una base de datos en la hoja "Base" que llega desde la columna A fila
3 hasta la IU fila 364.
En la columna A están los números de orden de los clientes desde el 1 al 362
A partir de la columna H hasta la IU en todas las filas existen valores que
corresponden al consumo de los clientes de las referencias que están
situadas en la fila 1 de cada columna (la mayoría con valores 0)
Me gustaría obtener una fórmula (... o ¿código?) que indicando en la Hoja
"Plantilla", celda B1, el nº de orden de un cliente, me permita extraer el
numero de referencia del articulo (situado en la fila 1 de la hoja "Base")
cuando recorriendo la fila (cuyo número es el valor de la celda B1
comentada) por todas las columnas de un determinado cliente (definido por la
fila) encuentre el primer valor superior a 0 y esa referencia la coloque en
la Hoja "Plantilla" en la celda F5, el siguiente encuentro superior a 0, lo
coloque en la celda F6, el siguiente en la celda F7, y así sucesivamente.
La hoja "Plantilla" es una plantilla valga la redundancia, que se imprime en
un Din A4 donde figuran todos los datos del cliente y sus compras de los
articulos de la empresa. Todo lo tengo resuelto excepto el extraer los
articulos comprados y por eso planteo el problema.
Gracias anticipadas por vuestra ayuda.
Saludos

José Rafael - Valencia

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
29/11/2009 - 22:42 | Informe spam
hola, José Rafael !

-> en la hoja "base"
a) que tipo de valor tiene el "numero de orden" en la columna A, a partir de la fila 3 ? (numerico, alfanumerico, ...)
b) que tipo de datos contienen las filas de las columnas B a G ? (numeros, textos, mezcla, ...)
c) tienes "libre" la celda [A1] ?

-> en la hoja "plantilla"...
a) como has resuelto ya cuales referencias (fila1 de la hoja "base") deben ir en esta plantilla ?
b) cual es (exactamente) "la referencia" que necesitas rescatar de "la fila" correspondiente al "numero de orden" que pongas en [B1] ?
- el dato/valor de cada columna (si es mayor que cero) de "la fila" ?
- el dato del encabezado (fila 1) de ese valor (si mayor que cero) ?
- ambos ? (en cual celda/columna se inicia esta obtencion de referencias ?)

"plis", revisa cada una de las (re)preguntas para poder (re)crear un modelo de trabajo (exactamente) "igual al tuyo"

saludos,
hector.

__ OP __
... datos en la hoja "Base"... desde la columna A fila 3 hasta la IU fila 364.
... columna A... numeros de orden de los clientes desde el 1 al 362
A partir de la columna H hasta la IU.. valores que corresponden al consumo... de las referencias... en la fila 1 de cada columna
(la mayoria con valores 0)
Me gustaria obtener una formula (... o codigo?) que indicando en la Hoja "Plantilla", celda B1, el nº de orden de un cliente
me permita extraer el numero de referencia del articulo (situado en la fila 1 de la hoja "Base")... recorriendo la fila
(cuyo numero es el valor de la celda B1 comentada) por todas las columnas de un determinado cliente
(definido por la fila) encuentre el primer valor superior a 0 y esa referencia la coloque en la Hoja "Plantilla" en la celda F5
el siguiente encuentro superior a 0, lo coloque en la celda F6, el siguiente en la celda F7, y asi sucesivamente.
La hoja "Plantilla"... se imprime... todos los datos del cliente y sus compras de los articulos de la empresa.
Todo lo tengo resuelto excepto el extraer los articulos comprados y por eso planteo el problema...
Respuesta Responder a este mensaje
#2 José Rafael
30/11/2009 - 10:27 | Informe spam
Hola Héctor:
Voy a escribir las contestaciones en mayusculas entre las lineas de las
preguntas solo para destacar las respuestas.
(je,je, no es que esté gritando... vale?) y muchisimo menos a Héctor Miguel
el gran ayudante de todos que le da valor a este foro.
Gracias por tu tiempo. Si hiciera falta te puedo enviar una parte de las
hojas en cuestión.
Espero haberme explicado. Gracias otra vez.
José Rafael

"Héctor Miguel" escribió en el mensaje
news:
hola, José Rafael !

-> en la hoja "base"
a) que tipo de valor tiene el "numero de orden" en la columna A, a
partir de la fila 3 ? (numerico, alfanumerico, ...)


NUMERICO
b) que tipo de datos contienen las filas de las columnas B a G ?
(numeros, textos, mezcla, ...)


MEZCLA -SON DOMICILIOS, CPOSTALES, ETC.., RESTO HASTA COLUMNA IV SON
NUMERICOS
c) tienes "libre" la celda [A1] ?


SI, ESTÁN LIBRES DE A1 A G1

-> en la hoja "plantilla"...
a) como has resuelto ya cuales referencias (fila1 de la hoja "base")
deben ir en esta plantilla ?


ESTO ES LO QUE NO TENGO RESUELTO. QUIERO LLEVAR A LA PLANTILLA LA REFERENCIA
SITUADA EN LA FILA 1, CADA VEZ QUE RECORRIENDO UNA FILA DE UN CLIENTE
CUALQUIERA EL VALOR DE UNA DE LAS COLUMNAS CUALQUIERA SEA SUPERIOR A CERO.
ENTONCES EL VALOR QUE QUIERO ES JUSTAMENTE EL DE LA CELDA 1 DE ESA MISMA
COLUMNA.
b) cual es (exactamente) "la referencia" que necesitas rescatar de "la
fila" correspondiente al "numero de orden" que pongas en [B1] ?


NO NECESITO RESCATAR DATOS DE LAS FILAS DE LOS CLIENTES, SINO COMPARAR Y
CUANDO SEAN MAYORES QUE CERO ENTONCES DE ESA MISMA COLUMNA RESCATAR EL
CONTENIDO DE LA FILA 1 Y PONERLO EN "PLANTILLA" CELDA F5 Y SUCESIVAS HACIA
ABAJO, F6,F7,ETC. EL VALOR NUMERICO DE LA "PLANTILLA" CELDA B1, SIRVE PARA
ELEGIR LA FILA DE CLIENTE A RECORRER EN LA HOJA "BASE"
- el dato/valor de cada columna (si es mayor que cero) de "la fila"
?RECORRIENDO LA FILA DE CADA CLIENTE CUANDO UN VALOR SEA MAYOR QUE CERO
ENTONCES QUE "TOME" EL VALOR DE LA FILA UNO DE ESA COLUMNA
- el dato del encabezado (fila 1) de ese valor (si mayor que cero)
? SI, ES UNA REFERENCIA DE ARTICULO ALFANUMERICA
- ambos ? (en cual celda/columna se inicia esta obtencion de
referencias ?) NO, SOLO EN LA FILA DEL CLIENTE (ORDEN) CUANDO UN VALOR ES
>0 ENTONCES "TOME" EL VALOR DE LA FILA1 MISMA COLUMNA PARA "PONERLO" EN
"PLANTILLA" CELDA F5 Y SUCESIVAS, --


(A PARTIR DE COLUMNA H CELDA 3 HASTA COLUMNA IU FILA 364)

"plis", revisa cada una de las (re)preguntas para poder (re)crear un
modelo de trabajo (exactamente) "igual al tuyo"

saludos,
hector.

__ OP __
... datos en la hoja "Base"... desde la columna A fila 3 hasta la IU fila
364.
... columna A... numeros de orden de los clientes desde el 1 al 362
A partir de la columna H hasta la IU.. valores que corresponden al
consumo... de las referencias... en la fila 1 de cada columna
(la mayoria con valores 0)
Me gustaria obtener una formula (... o codigo?) que indicando en la Hoja
"Plantilla", celda B1, el nº de orden de un cliente
me permita extraer el numero de referencia del articulo (situado en la
fila 1 de la hoja "Base")... recorriendo la fila
(cuyo numero es el valor de la celda B1 comentada) por todas las columnas
de un determinado cliente
(definido por la fila) encuentre el primer valor superior a 0 y esa
referencia la coloque en la Hoja "Plantilla" en la celda F5
el siguiente encuentro superior a 0, lo coloque en la celda F6, el
siguiente en la celda F7, y asi sucesivamente.
La hoja "Plantilla"... se imprime... todos los datos del cliente y sus
compras de los articulos de la empresa.
Todo lo tengo resuelto excepto el extraer los articulos comprados y por
eso planteo el problema...




Respuesta Responder a este mensaje
#3 Héctor Miguel
01/12/2009 - 05:42 | Informe spam
hola, José Rafael !

de acuerdo con la esencia de tus respuestas...
-> en la hoja "base"
b) que tipo de datos contienen las filas de las columnas B a G ? (numeros, textos, mezcla, ...)


MEZCLA -SON DOMICILIOS, CPOSTALES, ETC.., RESTO HASTA COLUMNA IV SON NUMERICOS

-> en la hoja "plantilla"...
b) cual es (exactamente) "la referencia" que necesitas rescatar de "la fila" correspondiente al "numero de orden" que pongas en [B1] ?


... NECESITO... CUANDO SEAN MAYORES QUE CERO... DE ESA MISMA COLUMNA RESCATAR EL CONTENIDO DE LA FILA 1
Y PONERLO EN "PLANTILLA" CELDA F5 Y SUCESIVAS HACIA ABAJO, F6,F7,ETC...



sigue estos pasos, pero antes, confirma/corrige si "mi" separador de argumentos (coma) es el mismo en tu sistema (???)

1) en la hoja "base"...

a) [B1] =coincidir(plantilla!b3,a:a,0)

b) define/crea/... dos nombres (menu: insertar / nombre / definir...):
nombre formula (en el cuadro de edicion "se refiere a:")
Orden =desref($a$1,$b$1-1,7,,248)
Refs =si(orden>0,columna(orden))

2) en la hoja "plantilla"...

a) [B3] <aqui es donde seleccionas el dato de busqueda, ok ?>

b) [F3] =contar.si(orden,">0")

c) [F4] =si(filas(e$4:e4)>f$3,"",desref(base!$a$1,,k.esimo.menor(refs,filas(e$4:e4))-1))

la formula en [F4] la copias/arrastras/... hacia abajo (como minimo) el numero de veces indicado en [F3]

saludos,
hector.
Respuesta Responder a este mensaje
#4 José Rafael
01/12/2009 - 11:10 | Informe spam
Hola Héctor:
Algo no funciona bien pues me aparece el error
#¿NOMBRE?

He hecho lo que me indicas y todo funciona excepto la fórmula situada en F4
y sucesivas celdas
SI(FILAS(E$4:E4)>F$3;"";DESREF(Base!$A$1;;K.ESIMO.MENOR(Refs;FILAS(E$4:E4))-1))
de la columna F. (por cierto en la fila 4 tengo los títulos y en concreto en
esta columna "Articulo"... deberíamos comenzar en F5...
Repasando un poco los datos:
Tengo 362 clientes ordenados del 1 al 363 que están situados en la hoja
"base" en las filas 3 a 364.
Todos ellos han comprado algunos determinados articulos cuyo codigo de
articulo se encuentra en la fila 1 del rango de columnas H:IU.
Ejemplo: Un cliente que está situado en la fila 14 (nº de orden 12), ha
comprado determinado articulo cuya referencia es por ejemplo 12345678 y está
situada en la fila 1 de la columna M, en la celda fila 14 columna M se
encuentra el valor de la compra que siempre será superior a cero.
Este mismo cliente puede haber comprado otro articulo cuya referencia es por
ejemplo 22222222 y está situada en la fila 1 de la columna Z, pues bien en
la celda correspondiente a la fila 14 y columna Z se encuentra otro valor
superior a cero porque ha comprado.
Esto puede suceder en mas ocasiones para este cliente, bastaría recorrer su
fila y ver las cantidades superiores a cero. Con la fórmula
CONTAR.SI(H14:IU14:">0"), situada en la columna D (por ejemplo) de esa misma
fila nos daría el resultado de cuantos articulos ha comprado este cliente.

En la hoja "Plantilla" tengo una plantilla que me extrae datos de diversas
bases de datos. ¿como?, fundamentalmente con BuscarV, siendo la referencia a
buscar el dato de la celda B1 que es donde se sitúa el nº de orden del
cuadrode lista de clientes de donde elijo el cliente y cuyo valor como sabes
es igual al de la fila menos dos. Todo muy bien, me resulta una página para
imprimir con todos los datos, excepto
Lo que me falta por resolver es que desde la celda F5 hasta la Fnn (nn = al
nº de articulos comprados +5) aparezcan sucesivamente las diferentes
referencias de los articulos comprados por ese cliente. Ya está.
Creo que estamos muy cerca de conseguirlo..., agradezco tu tiempo, tu ayuda.
Saludos

José Rafael






"Héctor Miguel" escribió en el mensaje
news:%
hola, José Rafael !

de acuerdo con la esencia de tus respuestas...
-> en la hoja "base"
b) que tipo de datos contienen las filas de las columnas B a G ?
(numeros, textos, mezcla, ...)


MEZCLA -SON DOMICILIOS, CPOSTALES, ETC.., RESTO HASTA COLUMNA IV SON
NUMERICOS

-> en la hoja "plantilla"...
b) cual es (exactamente) "la referencia" que necesitas rescatar de
"la fila" correspondiente al "numero de orden" que pongas en [B1] ?


... NECESITO... CUANDO SEAN MAYORES QUE CERO... DE ESA MISMA COLUMNA
RESCATAR EL CONTENIDO DE LA FILA 1
Y PONERLO EN "PLANTILLA" CELDA F5 Y SUCESIVAS HACIA ABAJO, F6,F7,ETC...



sigue estos pasos, pero antes, confirma/corrige si "mi" separador de
argumentos (coma) es el mismo en tu sistema (???)

1) en la hoja "base"...

a) [B1] =coincidir(plantilla!b3,a:a,0)

b) define/crea/... dos nombres (menu: insertar / nombre / definir...):
nombre formula (en el cuadro de edicion "se refiere a:")
Orden =desref($a$1,$b$1-1,7,,248)
Refs =si(orden>0,columna(orden))

2) en la hoja "plantilla"...

a) [B3] <aqui es donde seleccionas el dato de busqueda, ok ?>

b) [F3] =contar.si(orden,">0")

c) [F4]
=si(filas(e$4:e4)>f$3,"",desref(base!$a$1,,k.esimo.menor(refs,filas(e$4:e4))-1))

la formula en [F4] la copias/arrastras/... hacia abajo (como minimo) el
numero de veces indicado en [F3]

saludos,
hector.

Respuesta Responder a este mensaje
#5 Héctor Miguel
01/12/2009 - 21:20 | Informe spam
hola, José Rafael !

Algo no funciona bien pues me aparece el error #¿NOMBRE?



significa que alguna funcion (o algun nombre definido) no esta siendo "reconocido"
(error tipografico o funciones mal enlazadas al definir nombres ?)

He hecho lo que me indicas y todo funciona excepto la formula situada en F4 y sucesivas celdas
SI(FILAS(E$4:E4)>F$3;"";DESREF(Base!$A$1;;K.ESIMO.MENOR(Refs;FILAS(E$4:E4))-1)) de la columna F.
(por cierto en la fila 4 tengo los titulos y en concreto en esta columna "Articulo"... deberiamos comenzar en F5...



solo adapta/corrige/modifica/... donde mis "supuestos" sean distintos de TU realidad (?)

Repasando un poco los datos:
Tengo 362 clientes ordenados del 1 al 363 que estan situados en la hoja "base" en las filas 3 a 364.
Todos ellos han comprado... determinados articulos cuyo codigo... se encuentra en la fila 1 del rango de columnas H:IU...
Ejemplo: Un cliente... en la fila 14..., ha comprado... articulo cuya referencia... esta situada en la fila 1 de la columna M
en la celda fila 14 columna M se encuentra el valor de la compra que siempre sera superior a cero
Esto puede suceder en mas ocasiones para este cliente, bastaría recorrer su fila y ver las cantidades superiores a cero.
Con la formula CONTAR.SI(H14:IU14:">0"), situada en la columna D (por ejemplo)
de esa misma fila nos daria el resultado de cuantos articulos ha comprado este cliente.



(precisamente) "eso"... es lo que hace uno de los nombres de la propuesta, la que dice:
2) en la hoja "plantilla"...
b) [F3] =contar.si(orden,">0")





=> OJO: para que esta formula "funcione", es requisito el haber creado los dos nombres sugeridos

En la hoja "Plantilla" ... Lo que me falta por resolver es que desde la celda F5 hasta la Fnn (nn = al nº de articulos comprados +5)
aparezcan sucesivamente las diferentes referencias de los articulos comprados por ese cliente. Ya esta.
Creo que estamos muy cerca de conseguirlo...



te sugeriria repasar nuevamente y seguir "paso a paso" el procedimiento sugerido
(de hecho, en las pruebas realizadas ya lo he "conseguido")

saludos,
hector.

__ la propuesta original __
sigue estos pasos, pero antes, confirma/corrige si "mi" separador de argumentos (coma) es el mismo en tu sistema (???)

1) en la hoja "base"...

a) [B1] =coincidir(plantilla!b3,a:a,0)

b) define/crea/... dos nombres (menu: insertar / nombre / definir...):
nombre formula (en el cuadro de edicion "se refiere a:")
Orden =desref($a$1,$b$1-1,7,,248)
Refs =si(orden>0,columna(orden))

2) en la hoja "plantilla"...

a) [B3] <aqui es donde seleccionas el dato de busqueda, ok ?>

b) [F3] =contar.si(orden,">0")

c) [F4] =si(filas(e$4:e4)>f$3,"",desref(base!$a$1,,k.esimo.menor(refs,filas(e$4:e4))-1))

la formula en [F4] la copias/arrastras/... hacia abajo (como minimo) el numero de veces indicado en [F3]
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida