> ... que mediante una macro... inicie proceso de impresion solo a columnas y filas con escrituras
> ... que automaticamente reconosca las filas y columnas y se establesca sola la area de impresion.
-> cuando estableces un rango como el area de impresion [cualquiera]...
excel 'genera' un nombre [p.e. Área_de_impresion' o... 'Print_area' -si en ingles-]
-> dicho nombre [que en realidad es una referencia al rango que se imprime] es tambien 'factible' de 'personalizar'
[p.e. podrias definir un rango 'dinamico']
-> ve a [menu] insertar / nombre / definir...
selecciona el nombre 'apropiado' y... CAMBIA sus 'referencias' a la siguiente formula...
bueno... aqui solo falta saber cuales son las condiciones/caracteristicas/o similares...
para poder 'decirle' cual seria el area de impresion 'automatica' -???-
si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.
"Héctor Miguel" escribió:
"Héctor Miguel" escribió:
Hola Hector, favor mas ayuda
> El area de impresion es una zona de varias columna que van variando en su cantidad de lineas,puesto que es una hoja de resumen de datos que esta interconectada con otras hojas,Por lo que va variando.
te repito, como, cual es la formula para que solo reconosca las celdas
activa y no estar "pintando" siempre el area de celdas escritas.
saludos y gracias de todos modos
>
> ... area de impresion es... varias columna que van variando en... lineas
> ... es una hoja de resumen de datos que esta interconectada con otras hojas
> ... cual es la formula para que solo reconosca las celdas... y no estar "pintando" siempre el area...
> saludos y gracias de todos modos
voy a aprovechar una consulta similar [y la respuesta] copiando/pegando al final del presente :))
[obviamente] no espero que la situacion tenga 'mucho' parecido con TU situacion 'real' :-(
[solo considero que] sera conveniente 'empezar' con algo mas facil de 'digerir'... que 'tener que'... adivinar TU realidad :)
si cualquier duda [o informacion adicional mas 'concreta']... comentas?
saludos,
hector.
=== copio / pego consulta y respuesta anteriores ===
> ... designar un area de impresion de forma automatica
> ... la primera celda del rango va a ser siempre A1
> ... el final del rango... la columna T... la fila, en la cual este situado el valor 0 [...]
-> si ya has establecido un rango como el area de impresion [cualquiera]...
excel ya debio 'generarte' un nombre [p.e. Área_de_impresion' o... 'Print_area' -si en ingles-]
-> ve a [menu] insertar / nombre / definir...
selecciona el nombre 'apropiado' y... CAMBIA sus 'referencias' a la siguiente formula...
=desref($a$1,,,coincidir(0,$t:$t,0),20)
[solo toma en cuenta que mi sistema 'usa' como separador de argumentos a la coma ',' NO al punto y coma ';'] :D
-> si 'todo sale bien'... excel 'se encargara' de completar la formula con el nombre de 'esa' hoja [p.e.]
=DESREF(Hoja1!$A$1,,,COINCIDIR(0,Hoja1!$T:$T,0),20)
-> tu 'nueva' area de impresion sera [siempre] desde 'A1' hasta 'Tn' [donde 'n' es la primer celda que contenga un 0 -cero-]
"Héctor Miguel" escribió:
> ... es la Hoja 6 con el nombre de Stock y las columnas a imprimir... en la C4 hasta la E78 en adelante
> ... dentro de las columnas c,d y e se van agregando linaes.
> anote tu formula pero debe haber error de escritura... escribirla con estos datos.
-> no comentas si la 'ultima fila' pudiera corresponder a la columna c, d o e -?-
[asi que]... voy a suponer que pudiera ser... en cualquiera de esas columnas :)
-> tampoco comentas si los datos que se van agregando son letras... numeros... o cualquiera -?-
[asi que]... me voy a evitar 'andar averiguando' y te sugiero usar un nombre +/- como sigue...
-> estando como 'activa' la hoja 6 ['Stock'] agrega/modifica los siguientes nombres...
[menu] insertar / nombre / definir...
a) nombre: Fila_n formula: =max(si($c$5:$e$1500>0,fila($c$5:$e$1500)))
si todo sale bien... excel pondra algo +/- como: =MAX(SI(Stock!$C$5:$E$1500>0,FILA(Stock!$C$5:$E$1500)))
b) EDITA el nombre que haya asignado al area de impresion [Área_de_impresión o... Print_area]
formula: =desref($c$4,,,fila_n-fila($c$4)+1,3)
si todo sale bien... excel pondra algo +/- como: =DEREF(Stock!$C$4,,,Fila_n-FILA(Stock!$C$4)+1,3)
-> toma en cuenta que mi sistema usa como separador de argumentos a la coma ',' NO al punto y coma ';' :D
si cualquier duda... comentas?
saludos,
hector.
"Héctor Miguel" wrote in message news:uKb5Ab%
> a) nombre: Fila_n formula:
> =max(si($c$5:$e$1500>0,fila($c$5:$e$1500)))
Estaba pensando en como hacer las formulas mas eficientes y, aunque sabia
del comportamiento extrano/irregular de las funciones INDICE, COINCIDIR y
BUSCARV en formulas matriciales, abrigaba la esperanza, pero no ha podido
ser :-o La siguiente formula solo funciona en la hoja, pero no dentro de un
nombre :-((
=MAX(SI(ESNUMERO(COINCIDIR({9,99999999999999E+307;"zzzzzzzzzzzzzzzzz"};DESREF($C:$C;;COLUMNA($C:$E)-COLUMNA($C:$C))));COINCIDIR({9,99999999999999E+307;"zzzzzzzzzzzzzzzzz"};DESREF($C:$C;;COLUMNA($C:$E)-COLUMNA($C:$C)))))
Aunque es mas larga, en realidad esta formula NO MATRICIAL habria sido mas
rapida que la propuesta por HM y habria permitido abarcar toda la hoja.
Bueno, seguiremos buscando :-)
> b) EDITA el nombre que haya asignado al area de impresion
> [Área_de_impresión o... Print_area]
> formula: =desref($c$4,,,fila_n-fila($c$4)+1,3)
Esta si que me parece que podria optimizar un poco mediante:
=$C$4:INDICE($E:$E;Fila_n)
Saludos,
KL
>> a) nombre: Fila_n formula: =max(si($c$5:$e$1500>0,fila($c$5:$e$1500)))
> ... pensando en como hacer las formulas mas eficientes
> ... aunque sabia del comportamiento extrano/irregular de las funciones INDICE, COINCIDIR y BUSCARV en formulas matriciales
> abrigaba la esperanza, pero no ha podido ser :-o
> La siguiente formula solo funciona en la hoja, pero no dentro de un nombre :-(( [...]
> ... en realidad esta formula NO MATRICIAL habria sido mas rapida que la propuesta por HM y habria permitido abarcar toda la hoja. ... seguiremos buscando :-)
>> b) EDITA el nombre que haya asignado al area de impresion [Área_de_impresión o... Print_area]
>> formula: =desref($c$4,,,fila_n-fila($c$4)+1,3)
> Esta si que me parece que podria optimizar un poco mediante:
> =$C$4:INDICE($E:$E;Fila_n)
solo comentarios 'al margen' :DD
1) acerca de tu primer propuesta de cambio... [la formula no matricial mas 'rapida']...
a) la verdadera 'razon' por la que no la has podido asignar a un nombre... es por la longitud [caracteres] en la formula :-(
1. tal como la propones [castellanizada] tiene ya 218 caracteres MAS habria que agregar el signo '='
2. al 'pasarla' a nombre-definido... excel va a agregar el nombre de la hoja...
si suponemos que la hoja se llama 'hoja1'...
la longitud total de la formula [en castellano] seria ya de 255 caracteres... ->el limite<- :-(
si suponemos que excel es en ingles y la hoja se llama 'sheet1'...
si suponemos que la hoja se llama... -???- [o si suponemos que se le cambia de nombre]... -???-
b) algo debo estar interpretando mal :-(( no he logrado que me de 'el resultado que se busca' :-((
c) no le veo mucha importancia a la rapidez en una 'funcion' que se necesitara -solo- de manera 'previa' a una impresion -?-
[no creo equivocarme si te aseguro que]... mas tiempo te tomara 'decidir' si pulsas [o no] el boton de imprimir [o cancelar] ;)
2) acerca de tu segunda propuesta de cambio... [recortar los caracteres de la formula con la que se re/define el area de impresion]...
es muy 'atractiva' [tanto... que la he mandado a mi coleccion personal... si no te opones... obviamente] ;)
a pesar de lo anterior... [me parece que... 'cubren' areas/requerimientos/especificaciones/situaciones/... ->diferentes<-
saludos,
hector.
otros comentarios 'al margen' ;)
-> 'regresando' a tu primer propuesta de cambio [la formula mas 'rapida']...
'en realidad'... NO esta 'trabajando' sobre la -posible- 'matriz' de columnas :(
solo tiene 'cabida'... buscar cual es la ultima fila con datos EN la primer columna de la formula... 'C'
[por lo tanto] si solo se necesita buscar en esa primer columna...
[me parece que] no tiene sentido 'crecer' la formula [la matricial] en ~5 veces su tama#o 'propuesto'
-> =max(elegir(1+(contar(c:c)>0),0,coincidir(9.99999999999999e+307,c:c)),elegir(1+(contar.si(c:c,"*")>0),0,coincidir(repetir("z",255),c:c)))
o... si no tiene importancia que los si'es condicionales 'consumen' mas recursos que los si'es 'booleanos' [20 caracteres 'menos']...
-> =max(si(contar(c:c)>0,coincidir(9.99999999999999e+307,c:c)),si(contar.si(c:c,"*")>0,coincidir(repetir("z",255),c:c)))
o... si la cuenta/busqueda de la ultima fila [en cualquiera de las -posibles- columnas] se deja en una celda... [la formula matricial]...
-> =max(si(c5:e1500>0,fila(c5:e1500))) [solo 34 caracteres, si no tiene efectos colaterales usar referencias relativas]
lo anterior es -solamente- mientras se puede encontrar la forma de 'adelgazar' y 'desmatricializar' la propuesta 'original' ;)
aunque sigo pensando que en una formula para un 'evento' unico y no muy 'frecuente'... [imprimir o vista preliminar]...
la rapidez de calculo en ese aspecto... deja de ser... 'relevante' -?-
saludos,
hector.
"Héctor Miguel" wrote in message
news:Oh8DoSC...@tk2msftngp13.phx.gbl...
> 'en realidad'... NO esta 'trabajando' sobre la -posible- 'matriz' de
> columnas :(
> solo tiene 'cabida'... buscar cual es la ultima fila con datos EN la
> primer columna de la formula... 'C'
Parece que tienes razon - no funciona (juraria que anoche me daba el
resultado buscado, pero igual lo he sonado :-) (wishful thinking)
> [por lo tanto] si solo se necesita buscar en esa primer columna...
> [me parece que] no tiene sentido 'crecer' la formula [la matricial] en
> ~5 veces su tama#o 'propuesto'
> ->
> =max(elegir(1+(contar(c:c)>0),0,coincidir(9.99999999999999e+307,c:c)),elegir(1+(contar.si(c:c,"*")>0),0,coincidir(repetir("z",255),c:c)))
> o... si no tiene importancia que los si'es condicionales 'consumen' mas
> recursos que los si'es 'booleanos' [20 caracteres 'menos']...
> ->
> =max(si(contar(c:c)>0,coincidir(9.99999999999999e+307,c:c)),si(contar.si(c:c,"*")>0,coincidir(repetir("z",255),c:c)))
> o... si la cuenta/busqueda de la ultima fila [en cualquiera de
> las -posibles- columnas] se deja en una celda... [la formula matricial]...
> -> =max(si(c5:e1500>0,fila(c5:e1500))) [solo 34 caracteres, si no tiene
> efectos colaterales usar referencias relativas]
Todo esto es bastante obvio y ademas como entenderas no era la idea :-)
> lo anterior es -solamente- mientras se puede encontrar la forma de
> 'adelgazar' y 'desmatricializar' la propuesta 'original' ;)
> aunque sigo pensando que en una formula para un 'evento' unico y no muy
> 'frecuente'... [imprimir o vista preliminar]...
> la rapidez de calculo en ese aspecto... deja de ser... 'relevante' -?-
No entiendo muy bien que tiene que ver la frecuencia con la que se va a
imprimir/activar la vista previa con la rapidez de la formula - si la
formula va a recalcular independientemente de si imprimes o no, por lo que
afectaria todos los recalculos. Asi que, a diferencia de ti, estoy
convencido de que en este caso la rapidez y la volatilidad son importantes y
mas aun en libros cargados de formulas y cuando las areas de impresion andan
por decenas de miles de filas ;-)
Saludos,
KL
> Parece que tienes razon - no funciona (juraria que... daba el resultado buscado... :-) (wishful thinking)
-> jjjuatt ! :DD
> ... que tiene que ver la frecuencia con la que se va a imprimir/activar la vista previa con la rapidez de la formula
> ... la formula va a recalcular independientemente de si imprimes o no, por lo que afectaria todos los recalculos
> ... estoy convencido de que en este caso la rapidez y la volatilidad son importantes
> ... mas aun en libros cargados de formulas y cuando las areas de impresion andan por decenas de miles de filas ;-)
[creo que] podrias darle 'un poco de credito' al excel :)) ya que este re/calcula [o trata de re/calcular] de manera 'inteligente'
[SOLO] cuando las referencias 'dependientes/precedentes' han sufrido cambios o modificaciones ;)
lo cual -considero- NO significa que se la vaya a pasar re/calculando el modelo 'completo' [SI NO hubo 'necesidad de'...] ;)
[ademas] si -consideras que- la rapidez y volatilidad son de primordial importancia...
1) la funcion desref/offset es de las volatiles que MAS consumo de recursos 'demanda' :-(
tu propuesta de cambio1 la utiliza dos veces [mientras que la propuesta matricial ninguna] ;)
2) no crees que es mas 'sano' delimitar un numero de filas... en lugar de 'poner' a excel a 'detectar en TODAS' [columnas completas] -?-
3) y por si piensas 'recriminarme' que 'mi' propuesta tambien usa la funcion desref/offset [al re/definir el nombre 'print_area']...
te recuerdo que [yo] considero que con el cambio que propones para esta parte [aunque cubren areas y situaciones distintas]...
[y si no dispones otra cosa]... le has agregado la ventaja de 'prescindir' del uso de dicha 'volatilidad' ;)
definitivamente... estoy seguro que OP tendra mas alternativas para seleccionar la que mejor acomode a sus necesidades ;)
saludos,
hector.
En primer lugar decirte que es una situacion muy curiosa la mia, ya que se
podria decir que estoy defendiendo una formula que no funciona :-) Bueno, no
exactamente, pongamos que mas bien estoy discutiendo cuestiones generales.
> [creo que] podrias darle 'un poco de credito' al excel :)) ya que este
> re/calcula [o trata de re/calcular] de manera 'inteligente'
> [SOLO] cuando las referencias 'dependientes/precedentes' han sufrido
> cambios o modificaciones ;)
> lo cual -considero- NO significa que se la vaya a pasar re/calculando el
> modelo 'completo' [SI NO hubo 'necesidad de'...] ;)
!Y tanto! le estoy dando mucho credito a Excel, no lo dudes (y si no, por
que estaria yo aqui???). Estaba respondiendo a tu planteamiento generalizado
y no analizando la formula concreta. En este caso es lo que dices, pero, tal
como te he mencionado antes, esto depende de la formula o mas bien de las
funciones que uses (o sea de la inteligencia del que crea la formula y no
tanto de la de Excel). Sabes de sobra que hay funciones del tipo AHORA, HOY,
INDIRECTO [y una que otra mas] que son volatiles siempre y recalcularan en
cada recalculo que se produzca y no solo al cambiar algo en los rangos
implicados.
> [ademas] si -consideras que- la rapidez y volatilidad son de primordial
> importancia...
> 1) la funcion desref/offset es de las volatiles que MAS consumo de
> recursos 'demanda' :-(
> tu propuesta de cambio1 la utiliza dos veces [mientras que la propuesta
> matricial ninguna] ;)
En todo caso no es la que mas y una de las razones por la que me la carge en
la segunda formula era evitar su volatilidad. En el caso de la primera
formula (la fracasada) me parecio un 'trade-off' muy justificado de la
volatilidad por la rapidez.
> 2) no crees que es mas 'sano' delimitar un numero de filas... en lugar de
> 'poner' a excel a 'detectar en TODAS' [columnas completas] -?-
Pues va a ser que no :-) Si te fijas, mi formula, aunque posiblemente lo
haga con mayor frecuencia, realiza 37 operaciones (contando cada una de las
operaciones binarias de COINCIDIR como una, ya que tardan practicamente lo
mismo) mientras que la tuya unas 2991. ?Que tal asi?
> 3) y por si piensas 'recriminarme' que 'mi' propuesta tambien usa la
> funcion desref/offset [al re/definir el nombre 'print_area']...
> te recuerdo que [yo] considero que con el cambio que propones para esta
> parte [aunque cubren areas y situaciones distintas]...
> [y si no dispones otra cosa]... le has agregado la ventaja de
> 'prescindir' del uso de dicha 'volatilidad' ;)
Tres cosas:
1) Ya te lo 'habia recriminado', antes de que te hubieras dado cuenta, por
el simple hecho de cargarmela en mi formula alternativa ;-)
2) No consigo entender el comentario "aunque cubren areas y situaciones
distintas" ya que por lo que veo ambas formulas devuelven el mismo
resultado.
3) Si vuelves a anlizar lo que has escrito en tu ultimo mensaje, seguramente
veras que es una apologia de la importancia de la rapidez y baja volatilidad
en el caso discutido y una negacion casi total de tu frase:
"c) no le veo mucha importancia a la rapidez en una 'funcion' que se
necesitara -solo- de manera 'previa' a una impresion -?-
[no creo equivocarme si te aseguro que]... mas tiempo te tomara 'decidir' si
pulsas [o no] el boton de imprimir [o cancelar] ;)"
> definitivamente... estoy seguro que OP tendra mas alternativas para
> seleccionar la que mejor acomode a sus necesidades ;)
Pues creo que de momento solo tiene tu solucion (con mi alternativa de la
segunda formula)
Saludos,
KL
La formula:
=MAX(SI(ESNUMERO(COINCIDIR({9,99999999999999E+307;"zzzzzzzzzzzzzzzzz"};DESREF($C:$C;;COLUMNA($C:$E)-COLUMNA($C:$C))));COINCIDIR({9,99999999999999E+307;"zzzzzzzzzzzzzzzzz"};DESREF($C:$C;;COLUMNA($C:$E)-COLUMNA($C:$C)))))
obviamente no funciona como se esperaba aunque
tanto
COINCIDIR({9,99999999999999E+307;"zzzzzzzzzzzzzzzzz"};DESREF($C:$C;;COLUMNA($C:$E)-COLUMNA($C:$C))))
como
ESNUMERO(COINCIDIR({9,99999999999999E+307;"zzzzzzzzzzzzzzzzz"};DESREF($C:$C;;COLUMNA($C:$E)-COLUMNA($C:$C))))
devuelven matrices, cosa que no se comprueba mediante F9 en la barra de
formulas, pero SI introduciondolas en un rango de 3 celdas de ancho y 2 de
alto mediante Ctrl+Shift+Enter
Este mismo comportamiento se puede observar en BUSCARV cuando el 1o
argumento es una matriz o en INDICE cuando el 2o y/o 3o argumentos son
matrices.
Saludos,
KL
"KL" <NOSPAMla...@PLEASEhotmail.com> wrote in message news:...
> ... INDICE, COINCIDIR y BUSCARV tienen un comportamiento increible dentro de las formulas matriciales
> ... Alan Beban y Harlan Grove llevan discutiendo durante ... http://tinyurl.com/8sdot ).
conozco 'esta' discusion [y una que otra mas] entre HG y 'otros' ;)
> La formula:
> =MAX(SI(ESNUMERO(COINCIDIR({9,99999999999999E+307;"zzzzzzzzzzzzzzzzz"} [...]
> obviamente no funciona como se esperaba aunque
> tanto
> COINCIDIR({9,99999999999999E+307;"zzzzzzzzzzzzzzzzz"};DESREF($C:$C;;COLUMNA($C:$E)-COLUMNA($C:$C))))
> como
> ESNUMERO(COINCIDIR({9,99999999999999E+307;"zzzzzzzzzzzzzzzzz"};DESREF($C:$C;;COLUMNA($C:$E)-COLUMNA($C:$C))))
> devuelven matrices... introduciondolas en un rango de 3 celdas de ancho y 2 de alto mediante Ctrl+Shift+Enter [...]
[ahora soy yo que...] no entiendo si lo anterior que comentas 'aporta' algo 'en favor' de tu propuesta de cambio1 -?-
si bien es cierto que existen formulas mas 'rapidas' [por el simple hecho de que no se requiere introducirlas con ctrl-shift-enter]
no siempre significa que NO sean 'formulas matriciales' [es decir... de cualquier forma SI estan 'trabajando' matricialmente] ;)
ademas de que NO siempre son 'aprovechables' [como el caso que mencionas] SI es requisito 'bajarlas' a un rango de n_filas/columnas :-(
[p.e. si comentaste que 'esperabas' poder 'abarcar' toda la hoja... esto significa 'reducirla' por mitad para poder 'bajar' la formula ???]
en fin... si ya has visto que [de momento] la matricial es la unica forma/formula 'a la rapida' de encontrar la ultima fila en varias columnas... ;)
saludos,
hector.
> ... situacion muy curiosa la mia... defendiendo una formula que no funciona :-)
> ... pongamos que mas bien estoy discutiendo cuestiones generales.
>> 2) no crees que es mas 'sano' delimitar un numero de filas... en lugar de 'poner' a excel a 'detectar en TODAS' [columnas completas] -?-
> Pues va a ser que no :-) ... mi formula, aunque posiblemente lo haga con mayor frecuencia, realiza 37 operaciones
> (contando cada una de las operaciones binarias de COINCIDIR como una, ya que tardan practicamente lo mismo)
> mientras que la tuya unas 2991. ?Que tal asi?
=> supongo que lo de las 37 operaciones de 'tu formula' se debe a la 'ultima celda' EN LA PRIMER COLUMNA donde 'pusiste' la prueba :))
y 'asumo' que lo de las 2991 operaciones de 'la mia' se debe al rango 'delimitado que estoy 'proponiendo' de 1500 filas en la formula ;)
nota la siguiente expresion que utilizas en el mensaje al que respondo en el anterior, cuando 'dices' que...
> ... mas aun en libros cargados de formulas y cuando las areas de impresion andan por decenas de miles de filas ;-)
pregunta: cual sera el numero de operaciones que realice 'tu formula' cuando realmente se trate de 'varias decenas de miles de filas' ??? ;)
>> definitivamente... estoy seguro que OP tendra mas alternativas para seleccionar la que mejor acomode a sus necesidades ;)
> Pues creo que de momento solo tiene tu solucion (con mi alternativa de la segunda formula)
-> totalmente de acuerdo ;)
saludos,
hector.
> [ahora soy yo que...] no entiendo si lo anterior que comentas 'aporta'
> algo 'en favor' de tu propuesta de cambio1 -?-
Este mensaje era simplemente 'a propo' y no servia para defender ni atacar
la primera formula. Ademas esta claro que no funciona (que en paz descanse)
:-P
Simplemente me parecio que venia al caso y casi que no eras el destinatario
principal ;-)
> si bien es cierto que existen formulas mas 'rapidas' [por el simple hecho
> de que no se requiere introducirlas con ctrl-shift-enter]
> no siempre significa que NO sean 'formulas matriciales' [es decir... de
> cualquier forma SI estan 'trabajando' matricialmente] ;)
con permiso, el parrafo anterior me parece una perogrullada. Y ya puestos a
decir banalidades, podriamos matizar que hay formulas matriciales
(introducidas con ctrl-shift-enter o no) que operan con matrices de 6
miembros y otras que usan 1500 ;-)
> SI es requisito 'bajarlas' a un rango de n_filas/columnas :-(
> [p.e. si comentaste que 'esperabas' poder 'abarcar' toda la hoja... esto
> significa 'reducirla' por mitad para poder 'bajar' la formula ???]
lo siento, se me escapa el significado de esta frase.
Saludos,
KL
> lo siento, se me escapa el significado de esta frase.
[creo que] no tiene caso ya... [me acabas de dar la razon] ;)
saludos,
hector.
> => supongo que lo de las 37 operaciones de 'tu formula' se debe a la
> 'ultima celda' EN LA PRIMER COLUMNA donde 'pusiste' la prueba :))
No, he contado todas las operaciones. Como te he comentado he contado las
busquedas binarias como una operacion para cada columna.
> y 'asumo' que lo de las 2991 operaciones de 'la mia' se debe al rango
> 'delimitado que estoy 'proponiendo' de 1500 filas en la formula ;)
Correcto.
> nota la siguiente expresion que utilizas en el mensaje al que respondo
> en el anterior, cuando 'dices' que...
>> ... mas aun en libros cargados de formulas y cuando las areas de
>> impresion andan por decenas de miles de filas ;-)
> pregunta: cual sera el numero de operaciones que realice 'tu formula'
> cuando realmente se trate de 'varias decenas de miles de filas' ??? ;)
Pues fijate - sera el mismo - solo variara al aumentar el numero de
columnas. En cambio el numero de operaciones de tu formula crecera en
proporcion al numero de filas involucradas ;-)
Saludos,
KL
wow !... me acabas de confirmar que 'tu' propuesta 'solamente' hace 37 operaciones 'debido' a que...
-> [para el caso de 3 columnas]... 'bajas' a una matriz_rango de 3x2 y la operacion 'se repite'... n_veces+1
-> y 'sugieres' que NO 'importa' cual sea la 'ultima' fila -real y verdadera-...
[de las varias decenas de miles de filas]... seran 'siempre' -solo- 37 operaciones -???-
sin embargo... 'argumentas' que la propuesta matricial se repetira n_filas x 2 veces [mas wow !] ;)
[tendre que revisar ciertos 'paradigmas'] :))
saludos,
hector.
Bueno me he equivocado un pelin evaluando la formula matrical y tal vez haya
subestimado (un poco) el impacto de las busquedas binarias, pero...
> wow !... me acabas de confirmar que 'tu' propuesta 'solamente' hace 37
> operaciones 'debido' a que...
> -> [para el caso de 3 columnas]... 'bajas' a una matriz_rango de 3x2 y
> la operacion 'se repite'... n_veces+1
> -> y 'sugieres' que NO 'importa' cual sea la 'ultima' fila -real y
> verdadera-...
> [de las varias decenas de miles de filas]... seran 'siempre' -solo-
> 37 operaciones -???-
como ya te habia dicho, conte las funciones de busqueda binaria como una
operacion, pero si quieres mas precision:
=MAX(SI(ESNUMERO(COINCIDIR({1;"T"};DESREF($C:$C;;COLUMNA($C:$E)-COLUMNA($C:$C))));COINCIDIR({1;"T"};DESREF($C:$C;;COLUMNA($C:$E)-COLUMNA($C:$C)))))1) COINCIDIR({9;"Z"};DESREF($C:$C;;COLUMNA($C:$E)-COLUMNA($C:$C)) a.. COLUMNA($C:$E)-COLUMNA($C:$C)={0\1\2} => 3 operaciones de resta b. DESREF($C:$C;;{0\1\2})={Rng1\Rng2\Rng3} => 3 operaciones dereferencia c. COINCIDIR({9;"Z"};{Rng1\Rng2\Rng3})={...\...\...;...\...\...} => Si es cierto que el numero de escaneos binarios que hace la funcionCOINCIDIR con coincidencia aproximada equivale a =REDONDEAR(LOG(N;2);0),entonces el numero maximo de escaneos debera ser=REDONDEAR(LOG(65536;2);0)=16Suponiendo el peor escenario obtenemos 16*6=96Subtotal: 3+3+96=1022) ESNUMERO(COINCIDIR({1;"T"};DESREF($C:$C;;COLUMNA($C:$E)-COLUMNA($C:$C))) a. ESNUMERO({a\b\c;x\y\z})={V\F\V\F\V\F}=> 6 operaciones de resta + 102de repeticion de lo anteriorSubtotal: 6+102=1083) SI({V\F\V\F\V\F},{a\b\c;x\y\z})={...\...\....;...\...\....} => 6operaciones de evaluacionSubtotal: 64) MAX({...\...\....;...\...\....}) => hasta 6 operaciones de comparacion(desconozco si MAX hace un escaneo lineal o binario)Subtotal: 6Total: 102+108+6+6=222 como maximoCada columna adicional anadira aproximadamente un 30% de operaciones mas.> sin embargo... 'argumentas' que la propuesta matricial se repetira n_filasx 2 veces [mas wow !] ;)> [tendre que revisar ciertos 'paradigmas'] :))=MAX(SI($C$5:$E$1500>0,FILA($C$5:$E$1500)))1) FILA($C$5:$E$1500)={5\6\7\...\1500} => 1495 operaciones devolviendo filapara cada celda2) $C$5:$E$1500>0={V\F\V\F\V\F\...} => 1495*3=4485 operaciones evaluando laequacion para cada celda3) SI({V\F\V\F\V\F\...},{5\6\7\...\1500})={...\...\....;...\...\....} =>4485 evaluaciones de la condicion que resultan en 4485 resultados4) MAX({...\...\....;...\...\....}) => hasta 4485 operaciones de comparacion(desconozco si MAX hace un escaneo lineal o binario)Total: 1495+4485+4485+4485=14950Saludos,KL
> ... me he equivocado... evaluando la formula matrical y... subestimado... el impacto de las busquedas binarias [...]
'resumiendo'...
-> dices que estas utilizando... cual formula ?
-> dices que das entrada... en que rango_matriz ?
-> dices que etas obteniendo... que resultados en cada celda ?
-> si necesitas 'ampliar' el numero de columnas... cuantas de las 256 columnas puedes 'monitorear' ?
saludos,
hector.
para elegir segun necesidades... aqui hay una excel...ente coleccion 'inicial'...
de Frank Kabel (D) & Bob Phillips
http://www.xldynamic.com/source/xld.LastValue.html
http://www.xldynamic.com/source/xld.LastValue.html#benchmarks
> http://www.xldynamic.com/source/xld.LastValue.html
> http://www.xldynamic.com/source/xld.LastValue.html#benchmarks
Conozco estas paginas, lo que no hacen estas formulas es encontrar la ultima
fila en varias columnas a la vez. Y lo de benchmarks, casi que no hacen
falta para decir que formula es mas rapida.
Saludos,
KL
Cambiando (solo un poco) del tema, tu que manejas varias versiones de
Office, ?sabes si en las versiones posteriores a la 2000 se sigue dando el
problema de LastCell/UsedRange que no se actualiza automaticamente? Se me
ocurre que una formula denominada como =GET.DOCUMENT(10)+(0*RAND()) podria
ser una opcion. La he probado en XL2000 y funciona bien salvo que hay que
resetear el rango usado si se reduce el numero de filas usadas :-(. Si todo
estuviera bien, acabariamos con algo tan simple y rapido como:
FILA=INDICAR.DOCUMENTO(10)+(0*ALEATORIO())
Print_Area=A1:INDICE(1:65536;FILA;255)
Entiendo que el riesgo del famoso derrumbe de Excel en caso de copiar
nombres con funciones XML de una hoja a otra no es relevante ya que el
nombre no se usaria en ninguna hoja del libro.
?Comentas?
Saludos,
KL
"KL" <NOSPAMla...@PLEASEhotmail.com> wrote in message
news:uYBMkYOu...@TK2MSFTNGP09.phx.gbl...
Saludos,
KL
"KL" <NOSPAMla...@PLEASEhotmail.com> wrote in message
news:%23yhW71S...@TK2MSFTNGP09.phx.gbl...
1) (no se por que no se me habia ocurrido antes) la funcion
INDICAR.DOCUMENTO() devuelve la ultima celda que no necesariamente esta
escrita, sino que tambien tiene formatos, comentarios, etc (exactamente
igual que SpecialCells(xlCellTypeLastCell). Eso mismo lo hace Excel si
imprimimos sin crear un area de impresion.
2) partiendo del primer punto, para que una UDF devuelva la ultima celda,
harian falta demasiadas operaciones por lo que el uso de VBA no estaria
justificado dada la existencia de otras soluciones mediante funciones
nativas.
Saludos,
KL
"KL" <NOSPAMla...@PLEASEhotmail.com> wrote in message
news:%23kmeaIU...@TK2MSFTNGP15.phx.gbl...
> Bueno, acabo mi monologo diciendo que las ultimas dos opciones quedan descartadas porque [...]
[creo que]... mas que... 'monologo'... [todavia]... 'disparas' mas rapido de lo que 'afinas y apuntas' :))
reza un viejo proverbio por estos lugares... -> rapido... y bien?... no ha habido quien <- ;)
no se si yo me habre 'metido mas alla'... de lo necesario en cuanto al requerimitneo de OP...
ya que [segun mi interpretacion] buscaba una forma 'sencilla y poco elaborada' de auto-ajustar el area de impresion -?-
de ahi que propongo la re/definicion del nombre que asigna excel al rango que se habra de imprimir ;)
de repente [y no veo el 'porque']... unas 'decimas de segundo', de 'no importar'... pasan a ser 'de vida o muerte' -?-
[si recuerdas la consulta de 'potenciacion' en la que finalizaste tu la participacion bajo la anterior 'premisa'] -?-
te concedo [porque efectivamente tienes razon en cuanto a la 'velocidad' en el re/calculo entre formulas y rangos matriz]...
que tu propuesta 'recupera' esas 'vitales decimas de segundo' [aunque no la has podido 'determinar en definitiva'] ;)
SOLO QUE... [y mientras no dispongas diferente]... es necesario 'sacrificar' [o perder] beneficios colaterales, como...
1) el procedimiento definitivamente deja de ser 'poco'... y pasa a ser... 'muy elaborado'
2) se pierde [y mucho] la facilidad/docilidad/amigabilidad/... para modificar la variable o mantenerla 'dinamica'
3) se necesita 'sacrificar' una columna por cada columna a monitorear [para el rango-matriz de x_columnas por 2 filas]
[es decir]... de las 256 columnas de excel... deberas 'separar' la mitad para poder establecer el rango_matriz :-(
4) la alternativa para sacrificar -solamente- 2 columnas es... 'invertir' el rango_matriz a 2 columnas por x_filas ;)
5) aun asi [tengo que insistir en que]... el manejo de las variables deja de ser 'sencillo/docil/amigable/dinamico/etc.' :-(
de cualquier forma... OP [y el lector] gana en alternativas para seleccionar de entre las que mejor acomoden a su necesidad ;)
saludos,
hector.
> [creo que]... mas que... 'monologo'... [todavia]... 'disparas' mas rapido
> de lo que 'afinas y apuntas' :))
> reza un viejo proverbio por estos lugares... -> rapido... y bien?... no ha
> habido quien <- ;)
Esto tambien hay quienes lo llaman conversacion espontanea en la que se
comparten las ideas en el momento de surgir y se analizan los pros y contras
conjuntamente como alternativa a hacerlo todo uno mismo y ofrecer una
solucion descafeinada y sin grasas saturadas. Ya se que no eres nada
partidario de este tipo de interaccion ;-)
> no se si yo me habre 'metido mas alla'... de lo necesario en cuanto al
> requerimitneo de OP...
> ya que [segun mi interpretacion] buscaba una forma 'sencilla y poco
> elaborada' de auto-ajustar el area de impresion -?-
> de ahi que propongo la re/definicion del nombre que asigna excel al rango
> que se habra de imprimir ;)
Creo que hiciste muy bien, y me parecio un tema muy interesante. Por eso
empece a buscar las posibilidades para mejorar las formulas, pero no hubo
suerte. Luego publique mis ideas para compartir los resultados de mi
experimento y en parte mi frustracion por no conseguir el resultado. Esto
porque creo que aun siendo un fracaso al menos podia ser interesante el
flujo de mi pensamiento al intentar hacerlo.
> de repente [y no veo el 'porque']... unas 'decimas de segundo', de 'no
> importar'... pasan a ser 'de vida o muerte' -?-
Bulex! Sencillamente, mientras yo esperaba (ingenuamente) una critica
constructiva de la formula y algunas ideas sobre el por que de no funcionar
la formula o como hacer que funcionara, Hector Miguel suelta frases del tipo
global basicamente tachando de innecesario este intento de encontrar una
mejora a la solucion, que fueron la causa de la discusion y no el hecho de
ganar unas decimas de segundos ya que probablemente no sabremos nunca
cuantos segundos se habrian ganado (la primera formula no llego a nacer). Y
como ya te habia comentado, los mensajes tuyos que siguieron ya llevaban un
caracter claro de sermones y constatacion de cosas obvias, y en estos casos
tiendo a llevar la contraria casi siempre - me gusta el rol del abogado del
diablo (ya conoces una mas de mi debilidades)
> [si recuerdas la consulta de 'potenciacion' en la que finalizaste tu la
> participacion bajo la anterior 'premisa'] -?-
Aparte de que creo que estos dos casos son totalmente distintos y el ahorro
de tiempo seria bastante mas significativo, creo que "you have totally
missed the point": la idea no era hacer una formula mas rapida porque si,
sino conseguir la flexibilidad para no estar limitado dentro de 1500 x 4 o
tal vez 10000 x 50 filas de datos que es cuando tu formula creo que
empezaria a ser un peso notable para la aplicacion.
> SOLO QUE... 1) el procedimiento definitivamente deja de ser 'poco'... y
> pasa a ser... 'muy elaborado'
No se este es una caso claro de disparar sin apuntar por tu parte. Por mi el
procedimiento es exactamente el mismo: dos formulas denominadas donde una
lleva (habria llevado) el nombre de Print_Area, la diferencia radica en una
de las formulas.
> 2) se pierde [y mucho] la facilidad/docilidad/amigabilidad/... para
> modificar la variable o mantenerla 'dinamica'
Las formulas matriciales en general son dificiles de entender y son
desconocidas por la mayoria absoluta de los usuarios. En esto de
amigabilidad no veo mucha diferencia entre las dos formulas. En el resto de
los factores te concedo la razon, pero la palabra 'mucho' me parece un
exageracion o mas bien una subjetividad total.
> 3) se necesita 'sacrificar' una columna por cada columna a monitorear
> [para el rango-matriz de x_columnas por 2 filas]
> [es decir]... de las 256 columnas de excel... deberas 'separar' la
> mitad para poder establecer el rango_matriz :-(
> 4) la alternativa para sacrificar -solamente- 2 columnas es... 'invertir'
> el rango_matriz a 2 columnas por x_filas ;)
Estos dos puntos te agradeceria que me los expliques (se que lo has
mencionado antes) porque no acabo de verles la razon. Espero que no sea el
hecho de que mi formula en realidad devuelve la ultima fila de la primera
columna del rango elegido y no la mayor de las ultimas filas de todas ellas
[en todo momento he estado basandome en la suposicion de que la formula
funciona tal como yo esperaba que funcionara] :-)
> 5) aun asi [tengo que insistir en que]... el manejo de las variables deja
> de ser 'sencillo/docil/amigable/dinamico/etc.' :-(
...sin comentarios
Saludos,
KL
vamos partiendo de las siguientes tres premisas [si crees que es correcto]...
1) encontrar cual es [el numero de] la ultima fila dentro de un grupo de columnas especifico
2) re/definir el nombre que auto-establece excel para el rango que se habra de imprimir [area_de_impresion o print_area]
3) el rango de columnas [segun consulta de OP] es de tres... 'C', 'D' y 'E'
las propuestas [hasta ahora] han sido...
___
[hm] 1) encontrar la ultima fila y asignarla a un nombre mediante una formula matricial
[hm] 2) re/definir el nombre [area de impresion] usando la funcion 'desref' [con parametros mas 'flexibles']
___
[KL] 1) usar una formula NO matricial [que no ha podido ser 'definida/determinada/probada/...'
[KL] 2) re/definir el nombre [area de impresion] usando la funcion 'indice' [mas rapida pero... menos 'flexible']
[solo por 'facilidad']... dejo fuera de un analisis 'semi-exhaustivo' las formulas de mi propuesta 'original'
[ya KL te habras encargado de analizarlas] ;)
la primer propuesta de formula, que no se termino de probar para 'justificar' si era [o no] funcional/operable/etc. 'reporta' lo siguiente:
a) no se puede 'asigar' a un nombre_formula [ya esta comentado que es] por el numero de caracteres 'agregables' al definir el nombre
b) para que sea 'funcional'... es IMPRESCINDIBLE 'bajarla' a un rango_matriz de mismas_columnas_x_2_filas [o sea... 3 cols / 2 filas]
[es decir... aun recortandola y asignandola a un nombre SIN bajarla a un rango.... NUNCA va a funcionar] :-(
c) esta siendo 'reduntante sobre si misma' [probablemente es por eso que la has dejado por... 'descanse en paz'] -?-
SOLO se necesita la parte 'medular' de la formula que desarrollaste... BAJADA a un rango de 3_cols / 2_filas [digamos... 'F1:H2']
si seleccionas el rango de ejemplo e introduces la siguiente formula... terminando la edicion con ctrl+shift+enter...
=coincidir({9.99999999999999e+307\"zzzzzzzzzzzzzzz"},desref($c:$c,,columna($c:$e)-columna($c:$c)))
solo se necesitara una celda adicional para 'encontrar' cual es la mayor de las ultimas filas de las columnas 'C:E'
[que por omision... TAMBIEN debe ser introducida/editada como matricial... ctrl+shift+enter] <= OJO
op1: =max(si(eserror(f1:h2),,f1:h2))
op2: =max(si(esnumero(f1:h2),f1:h2))
d) el rango_matriz NO puede 'coincidir' con el inicio del rango 'columnas_a_monitorear'
es decir... si las columnas_a_monitorear son C, D y E el rango_matriz NO podria cambiarse de F1:H2 a... C1:E2 [columna_1 = C]
e) si alguna columna del rango_matriz 'cae dentro' de las columnas_a_monitorear [probablemente] va a ser un 'estorbo en la cuenta' -?-
[sobre todo si llegara a ser necesario detectar tambien cual es la primer celda 'ocupada' dentro de el grupo de columnas] -?-
era por eso mi comentario de que se necesita 'apartar' para el rango_matriz tantas columnas como columnas_a_monitorear
de donde tambien se desprende que podrian monitorearse 256 / 2 - 1 = 127 columnas
para 'evadir' las columnas 'sacrificables' [si fuera el caso de varias-muchas], invertir el rango_matriz columnas a filas y filas a columnas
[p.e.] en A1:B3 la formula: =coincidir({9.99999999999999e+307;"zzzzzzzzzzzzzzz"},desref($c:$c,,fila($1:$3)-1))
tomar en cuenta que mi sistema en matrices constantes separa fias por barra inversa '\' y columnas por punto y coma ';' <= OJO
ambas formas [rango_matriz ya sea por columnas o por filas] carecen de flexibilidad para ampliar/reducir las columnas_a_monitorear
[incluyendo a la propuesta de re/definicion del nombre} si los grupos de columnas habran de ser fijos... me parece que son 'perfectas'] ;)
existe la alternativa de buscar 'la ultima fila' [real] por macros... aunque no asegura que corresponda al grupo de columnas_a_monitorear :-(
espero que sea 'apreciable' que lo que estoy exponiendo como 'desventajas' de un procedimiento se convierte en 'ventajas' para el otro :D
hay mas 'tela de donde cortar'... pero este mensaje se ha salido de mis 'parametros' :DD
si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.
p.d. y puesto que [de todas formas] a mis -intentos de- tips, consejos [o como quieras llamarlos] los consideras 'sermones'...
[pues]... 'ahi te van'... mis respuestas a tus respuestas... o sea...
a continuacion hago un intento por explicar 'lo oculto' [segun yo] de la discusion que se ha originado por lo tocante a esta consulta ;)
[de pasadita...] no se porque te ha dado por sentirte 'agredido' por [algunas de] mis intervenciones -?-
te anticipo que [sin dudar] los convencionalismos, modismos y costumbres regionales estan tomando parte en los 'malos entendidos' :-(
no olvides que el castellano [como toda lengua 'romance'] es una lengua 'rica en significados' :D
tu como profesor de idiomas no ignoras lo anterior [p.e.] la expresion: camisiñas...
-> en mexico es una forma 'jocosa' de hacer referencia a una prenda de vestir [camisa, camiseta, 't-shirt', etc.]
-> en brasil es un vocabulo con el que se hace referencia a los preservativos plastificados [los condones] :))
si dentro de 'mi forma' de ser/escribir/... incluyo un 'expresionismo' [quizas]... 'exagerado' [o a veces molesto para 'otros']...
y algunas veces mis 'propuestas/respuestas' llevan algo de... 'enigmaticas' [buscando 'motivar' la imaginacion del lector] :DD
procurare 'medirme' [al menos cuando 'responda' a comentarios tuyos de una manera que pudiera parecer poco... 'impersonal'] :))
no puedo asegurarte que lo lograre... siempre :-(( lamentablemente [y como 'versa' una cancion bernacula de mi tierra... MEXICO]...
"no soy monedita de oro... pa' caerles bien a todos... asi naci o asi soy... si no me quieren... ni modo"
== == == == == ==
> ... hay quienes lo llaman conversacion espontanea... se que no eres... partidario de este tipo de interaccion ;-)
___
-> tambien hay quienes utilizan una 'lluvia de ideas' ;)
[solo me parece que no es este... 'el caso'... el lugar... ni la forma de 'llamar' a un 'brain-storm'... 'a raja-tabla'] :(
> ... me parecio un tema muy interesante... empece a buscar las posibilidades para mejorar las formulas, pero no hubo suerte.
> ... publique mis ideas para compartir los resultados de mi experimento y en parte mi frustracion por no conseguir el resultado
> ... creo que aun siendo un fracaso... podia ser interesante el flujo de mi pensamiento al intentar hacerlo.
> ... esperaba (ingenuamente) una critica constructiva de la formula... ideas sobre el por que de no funcionar... o como hacer que funcionara
> ... Hector Miguel suelta frases del tipo global basicamente tachando de innecesario este intento de encontrar una mejora a la solucion
> ... causa de la discusion y no... unas decimas de segundos ya que... no sabremos nunca cuantos segundos se habrian ganado
> ... (la primera formula no llego a nacer)... los mensajes tuyos que siguieron ya llevaban un caracter claro de sermones y... cosas obvias
> ... en estos casos tiendo a llevar la contraria casi siempre - me gusta el rol del abogado del diablo (ya conoces una mas de mi debilidades)
___
-> lo anterior [creo yo que] no dejan de ser meras apreciaciones [personales y subjetivas] -?-
1) [para mi] no es 'absoluto' el comentario que haces de que... 'no hubo suerte' [en tus intentos de encontrar alternativas]
[simplemente] a las pruebas que hicieron falta [probablemente] les 'robo tiempo' una 'necesidad/costumbre' por 'postear' cuanto antes :))
2) si [ingenuamente?...] esperabas 'criticas constructivas' del porque o como... [segun yo y hasta donde mis conocimientos alcanzan]...
a) el primer comentario que hago ES [precisamente] el 'por que' no funciona cuando intentaste asignarla a un nombre definido -no?-
b) con lo anterior, la solucion [o propuesta de posible solucion] estaba ya planteada/sembrada/anunciada/... [al menos, asi lo crei] -?-
[considero que a un 'excelomano' con tus capacidades, no es necesario 'llevarlo de la mano... hasta la consecucion de un fin'] ;)
3) para saber cuanto tiempo se ahorra entre una propuesta y otra... [simplemente] 'termina' de hacer las pruebas que sean necesarias :))
[de pasadita... compruebas si pueden considerarse como 'sacrificio' las 'restricciones' que se derivan de los rangos_matriz]
4) yo TAMPOCO descarte la posibilidad de 'mejorar' la propuesta inicial... si recuerdas un mensaje 'agregado' a mi primer respuesta...
-> "lo anterior es -solamente- mientras se puede encontrar la forma de 'adelgazar' y 'desmatricializar' la propuesta 'original' ;)"
5) si vas a jugar el papel de abogado [ya sea 'de los buenos' o... 'de los malos']... procura [y que no se te olvide]...
NO hagas preguntas... de las cuales... NO sepas 'la respuesta' :( [suena a paradoja ?... pues, asi es... 'entre abogados'] ;)
> ... estos dos casos son totalmente distintos y el ahorro de tiempo seria bastante mas significativo... "you have totally missed the point"
> ... la idea no era hacer una formula mas rapida porque si, sino conseguir la flexibilidad para no estar limitado dentro de 1500 x 4 o... filas
> ... que es cuando tu formula creo que empezaria a ser un peso notable para la aplicacion.
___
-> 'I don't think so'... 'time and savings'... no significa que sea 'generador de riqueza'... 'invertir enteros... para ahorrar fracciones' :D
> ... este es una caso claro de disparar sin apuntar por tu parte. Por mi el procedimiento es exactamente el mismo:
> dos formulas denominadas donde una lleva (habria llevado) el nombre de Print_Area, la diferencia radica en una de las formulas.
___
-> independientemente de cual procedimiento se utilice para 'detectar' cual es la 'ultima fila' en un grupo de columnas 'especifico'...
[y tambien -si no recuerdo mal-]... tu propuesta de formula ->=$C$4:INDICE($E:$E;Fila_n)<-
a) me parecio sumamente interesante, tanto... que la agregue a una coleccion de KL-trucos ;)
b) a pesar de lo anterior... [me parece que] 'cubren' areas/requerimientos/especificaciones/situaciones/... ->diferentes<-
[lo de las diferencias en 'coberturas' y demas temas relacionados -espero que- habra quedado +/- clarificado] -?-
c) la unica diferencia es... cual de las propuestas se elija para determinar la ultima fila...
[ya sea la propuesta de la formula matricial que... 'come-tiempo'... o 'bajar' una matriz a un rango, que... 'come-columnas'] :))
> Las formulas matriciales en general son dificiles de entender y son desconocidas por la mayoria absoluta de los usuarios.
> En esto de amigabilidad no veo mucha diferencia entre las dos formulas.
> En el resto de los factores te concedo la razon, pero la palabra 'mucho' me parece un exageracion o mas bien una subjetividad total.
___
-> si la palabra 'mucho' [y el contexto bajo el que la utilizo] te parece una 'exageracion o subjetividad... total'...
a que 'te suena' tu expresion... "Las formulas matriciales... son desconocidas por la mayoria absoluta de los usuarios" -???- ;)
[ademas, estoy seguro que no 'aplica' el termino... 'dificil de entender', a la matricial propuesta... o si ?] :D
>> 3) se necesita 'sacrificar' una columna por cada columna a monitorear [para el rango-matriz de x_columnas por 2 filas]
>> [es decir]... de las 256 columnas de excel... deberas 'separar' la mitad para poder establecer el rango_matriz :-(
>> 4) la alternativa para sacrificar -solamente- 2 columnas es... 'invertir' el rango_matriz a 2 columnas por x_filas ;)
> ... te agradeceria que me los expliques (se que lo has mencionado antes) porque no acabo de verles la razon.
> Espero que no sea el hecho de que mi formula... devuelve la ultima fila de la primera columna del rango... y no la mayor de ...
> [en todo momento he estado basandome en la suposicion de que la formula funciona tal como yo esperaba que funcionara] :-)
___
-> como lo comentas [y confirmas] en el parrafo anterior... te has estado 'basando'... ->en una suposicion<-
sobre la cual NO has llegado a 'concretar' una prueba :-(
NO es que tu propuesta no pueda devolver mas que la ultima fila de la primer columna en el rango -variable- espeificado en la formula...
[una vez mas]... solo hizo falta 'agotar' las pruebas ANTES de dar [o descartar] la formula por 'poco funcional'
[o despedirla con un: 'en paz descanse'] D
la exposicion inicial del presente, [espero] habra dejado claro cuales [considero] son 'sacrificios' y donde 'se pierde amigabilidad/etc.' ;)
y disculpa por no haber compartido con mas anticipacion los resultados de estas pruebas :(
[como he comentado antes]... a veces mis respuestas son... 'enigmaticas'... ->tratando de 'motivar' la imaginacion del lector<- :D
Te agradezco el tiempo que has tomado para responderme y el anlisis
constructivo de ambas opciones. Me parece muy bueno (tal como lo habia
esperado inicialmente) este analisis de las opciones discutidas.
Ahora ya entiendo a que te referias diciendo "bajar una matriz a un rango" y
te comento que esta opcion la habia probado incluso antes de publicar mi
primer mensaje y la descarte por aparatosa y por las razones que expones
aqui. Asi que en ningun momento me la he planteado como una opcion dada la
existencia de tu solucion inicial. En todo momento me referia a una
situacion hipotetica de que funcionara la primera formula dentro de un
nombre. Pero antes de aplicar la funcion MAX solo devolvia un numero y no
una matriz como you esperaba (el tema del numero de caracteres si que llego
despues cuando, imagino, probaste la formula en castellano). Es por eso que
digo que no sabremos exactamente cuanto tardaria la formula - para eso
deberia funcionar en primer lugar.
Respecto a los temas no relacionados estrictamente al Excel, como lo de
objetivos, habitos, conocimientos, facultades personales, emociones,
malentendidos, regionalismos, etc, no pienso seguir desarrollando los
temas - los tenemos hablados a muerte y cada uno queda con su opinion. Solo
decirte que no son las palabras o frases con significados concretos los que
estorban/estropean la conversacion sino la clara actitud de ironia,
condescendencia y el propio hecho de referirse a la persona en los
comentarios tipo: "probablemente no has tomado el tiempo suficiente para..."
etc. Por tanto me parece muy prometedora la siguiente frase: " procurare
'medirme' [al menos cuando 'responda' a comentarios tuyos de una manera que
pudiera parecer poco... 'impersonal'] :))" aunque a mi juicio se basa en
juicios/premisas equivocadas :-)
Y respecto a " no puedo asegurarte que lo lograre... siempre :-((
lamentablemente [y como 'versa' una cancion bernacula de mi tierra...
MEXICO]...
> "no soy monedita de oro... pa' caerles bien a todos... asi naci o asi
> soy... si no me quieren... ni modo" - de eso no hay problema, pero ya
> sabras por que se calienta la conversacion o por que uno pasa del otro :-D
A si, casi se me olvidaba! Si tienes dudas como "ademas, estoy seguro que no
'aplica' el termino... 'dificil de entender', a la matricial propuesta... o
si ?" y este grupo no da suficiente informacion para el anlisis, mirate el
foro microsoft.public.excel.worksheet.functions. Creo que la mayoria de las
dudas tienen que ver con el uso de SUMAPRODUCTO y con no entender como es
que funciona o no funciona la formula =SUMAPRODUCTO((A1:A10=1)*B1:B10) etc.
etc. etc. Y fuera de estos grupos ni te digo, en mis oficinas europeas las
formulas matriciales producen un choque entre usuarios incluso relativamente
avanzados en los temas de formulas.
Saludos,
KL