Largo

06/07/2006 - 19:18 por Enrique | Informe spam
Hola a todos..
tengo una columna en la que tengo que digitar varios numero de identidad en
cada fila, el numero a digitar es semejante a este 0506-120560-102-9, por lo
tanto el numero de caracteres es de 17, solo que el caracter 5,12 y 16,
necesito que sean guiones y los demas que sean numeros.
como podria hacerlo?

Preguntas similare

Leer las respuestas

#36 Héctor Miguel
10/07/2006 - 05:51 | Informe spam
hola, Jose !

... por intentar comprender hasta el fianal esta fórmula (por aprender, sin mas), me puedes explicar que hace:
FILA(INDIRECTO("1:17"))
... leyendo la ayuda de las funciones FILA y INDIRECTO y no consigo comprender el funcionamiento [...]



revisa la consulta que hace Gabriel Raigosa derivada de este hilo con asunto de: 'Sumaproducto' ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#37 ~ jose ~
10/07/2006 - 13:59 | Informe spam
Hola hector,

... por intentar comprender hasta el fianal esta fórmula (por aprender, sin mas), me puedes explicar que hace:
FILA(INDIRECTO("1:17"))



Chico!..., pues me quedo, igual, sigo sin comprender, pero bueno, es
igual, no te preocupes...


Héctor Miguel wrote:
hola, Jose !

> ... por intentar comprender hasta el fianal esta fórmula (por aprender, sin mas), me puedes explicar que hace:
> FILA(INDIRECTO("1:17"))
> ... leyendo la ayuda de las funciones FILA y INDIRECTO y no consigo comprender el funcionamiento [...]

revisa la consulta que hace Gabriel Raigosa derivada de este hilo con asunto de: 'Sumaproducto' ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#38 ~ jose ~
10/07/2006 - 16:16 | Informe spam
Hola,
Dado que la formula:

=Y(CONTAR.SI(A2,"????-??????-???-?"),SUMAPRODUCTO(--ESNUMERO(--EXTRAE(A2,FI­LA(INDIRECTO("1:17")),1))))

no la entiendo muy bien, a mi me gusta más esta, aunque sea mas larga
(modificada del mensaje: "Contar los primeros caracteres repetidos de
una celda"), asi si se comprende la formula la puedes modificar para
otros usos ;)

La modificación que hay en la que os pongo aqui abajo, es que al final
cuenta los "0" que pueda haber al principio del código y los resta con
14.

=Y(CONTAR.SI(A2;"????-??????-???-?");ESNUMERO(--SUSTITUIR(A2;"-";""));SI(ESNUMERO(--SUSTITUIR(A2;"-";""));LARGO(ENTERO(--SUSTITUIR(A2;"-";"")))-(HALLAR(IZQUIERDA(SUSTITUIR(SUSTITUIR(A2;"-";"");"0";""));SUSTITUIR(A2;"-";""))-1)))


Un saludo,
jose
Respuesta Responder a este mensaje
#39 Héctor Miguel
11/07/2006 - 04:13 | Informe spam
hola, Jose !

Dado que la formula:
=Y(CONTAR.SI(A2,"????-??????-???-?"),SUMAPRODUCTO(--ESNUMERO(--EXTRAE(A2,FI­LA(INDIRECTO("1:17")),1))))
no la entiendo muy bien, a mi me gusta mas esta, aunque sea mas larga
(modificada del mensaje: "Contar los primeros caracteres repetidos de una celda")
asi si se comprende la formula la puedes modificar para otros usos ;) [...]
=Y(CONTAR.SI(A2;"????-??????-???-?");ESNUMERO(--SUSTITUIR(A2;"-";""));SI(ESNUMERO(--SUSTITUIR(A2;"-";""));


LARGO(ENTERO(--SUSTITUIR(A2;"-";"")))-(HALLAR(IZQUIERDA(SUSTITUIR(SUSTITUIR(A2;"-";"");"0";""));SUSTITUIR(A2;"-";""))-1)))

[creo que de todas maneras] puede resultar de utilidad el 'analisis' de 'como es que funciona' la formula que 'no entiendes' :))
solo toma en cuenta que las operaciones [parentesis y funciones anidadas] se resuelven 'de adentro, hacia afuera' ;)

1) solo se utilizan dos operaciones/criterios/... a) contar.si {+} b) sumaproducto(...)
2) contar.si [solamente] verifica que el 'patron' sea de 17 caracteres, de los cuales, las posiciones 5, 12 y 16 deberan ser guiones
3) sumaproducto [obviamente] 'acumula' de los 17 caracteres, los que puedan ser 'evaluados' como numero [que deberan ser 14]
4) analizando [de adentro hacia afuera] la funcion sumaproducto, obtenemos que los argumentos/funciones utilizados son:
a) el mas 'interno' -> indirecto("1:17") [que 'por si solo' pareciera que no hace nada] :D
b) el siguiente -> fila(indirecto("1:17")) crea una matriz con numeros [1 a 17] que seran la posicion de la que...
c) el siguiente -> extrae(a2,fila(indirecto("1:17")),1) obtiene [uno a uno] los 17 caracteres de la referencia ['A2'] luego...
d) el siguiente -> esnumero(<aqui_todo_lo_anterior>) 'confirma' [verdadero/falso <-> 0/1] si cada caacter ES 'numerico' [finalmente]...
d) el ultimo -> sumaproducto(<todo_lo_anterior>) 'acumula' los unos por cada caracter que puede ser evaluado como numero
[el uso del doble-menos esta comentado en el post de referencia]

si necesitas de un analisis mas... 'profundo', acerca del funcionamiento de matrices y la funcion sumaproducto [aunque en ingles]...
visita: Multiple Condition Tests: -> http://www.xldynamic.com/source/xld...ODUCT.html

si cualquier duda... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#40 ~ jose ~
12/07/2006 - 01:31 | Informe spam
Hola hector,
No hacia falta que me explicaras toda la fórmula, no hacia falta que
te molestaras tanto, solo era una pequeña parte (como comentaba en el
post anterior), pero de todas formas gracias.

a) el mas 'interno' -> indirecto("1:17") [que 'por si solo' pareciera que no hace nada] :D
b) el siguiente -> fila(indirecto("1:17")) crea una matriz con numeros [1 a 17] que seran la posicion de la que...
c) el siguiente -> extrae(a2,fila(indirecto("1:17")),1) obtiene [uno a uno] los 17 caracteres de la referencia ['A2'] luego...



Me quedo con esta explicación.

Un saludo,
jose
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida