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

#26 Gabriel Raigosa
08/07/2006 - 15:54 | Informe spam
OK, he revisado los posibles fallos por instroduccion de datos por parte del
usuario y tu validacion cobntempla todas las posibilidades.

solo veo una posibilidad de simplificacion

SUSTITUIR(A2;"-";"")*1

Gabriel Raigosa
Medellín - Colombia

news://msnews.microsoft.com/
news://msnews.microsoft.com/microso...c.es.excel

"KL" escribió en el mensaje
news:
Tampoco estaba la mia a prueba de todas, aqui va una mejorada:

1) para Validacion

=Y(CONTAR.SI(A2;"????-??????-???-?");ESNUMERO(--SUSTITUIR(A2;"-";""));ESERROR(HALLAR("e";A2));ESERROR(HALLAR(".";A2));ESERROR(HALLAR(",";A2));(LARGO(A2)-LARGO(SUSTITUIR(A2;"-";"")))=3)

2) para uso en celdas:

=Y(CONTAR.SI(A2;"????-??????-???-?");ESNUMERO(--SUSTITUIR(A2;"-";""));SUMAPRODUCTO(--ESERROR(HALLAR({"e"\"."\","};A2)))=3;(LARGO(A2)-LARGO(SUSTITUIR(A2;"-";"")))=3)

Saludos,
KL


"KL" wrote in message
news:
Hola jose,

Has probado la fórmula que he propuesto?
es que la estoy probando poniendo la "e" y funciona perfectamente,
echale un vistazo, pero recuerda que tiene que está la celda "A2"
(según mi propuesta) con el formato personalizado de 0000-000000-000-0



Aunque no me referia a tu formula al escribir mi mensaje anterior (porque
no cumplia con la condicion establecida por Enrique de que los guiones se
tenian que introducir a mano ), prueba hacer lo siguiente:

1) introduce el valor: 22223345199222
2) sustituye el penultimo digito por una "e": 222233451992e2
o/y
3) sustituye el primer digito por un guion: -2223345199222
o/y
4) empieza el numero por uno o mas ceros: 02223345199222

PD: me alegro de hablar contigo otra vez.



Igualmente.

Saludos,
KL





Respuesta Responder a este mensaje
#27 KL
08/07/2006 - 16:11 | Informe spam
Hola Gabriel,

Aceptado, solo que esta simplificacion solo es buena para las reglas de
validacion, pero no para la formula en celda ya que el error se propagara en
toda la formula.

=Y(CONTAR.SI(A2;"????-??????-???-?");--SUSTITUIR(A2;"-";"");ESERROR(HALLAR("e";A2));ESERROR(HALLAR(".";A2));ESERROR(HALLAR(",";A2));(LARGO(A2)-LARGO(SUSTITUIR(A2;"-";"")))=3)Saludos,KL"Gabriel Raigosa" wrote in messagenews:OeU8$ OK, he revisado los posibles fallos por instroduccion de datos por partedel usuario y tu validacion cobntempla todas las posibilidades.>> solo veo una posibilidad de simplificacion>> SUSTITUIR(A2;"-";"")*1>> --> Gabriel Raigosa> Medellín - Colombia> news://msnews.microsoft.com/> news://msnews.microsoft.com/microso....excel> > "KL" escribió en el mensajenews: Tampoco estaba la mia a prueba de todas, aqui va una mejorada:>>>> 1) para Validacion>>>>=Y(CONTAR.SI(A2;"????-??????-???-?");ESNUMERO(--SUSTITUIR(A2;"-";""));ESERROR(HALLAR("e";A2));ESERROR(HALLAR(".";A2));ESERROR(HALLAR(",";A2));(LARGO(A2)-LARGO(SUSTITUIR(A2;"-";"")))=3)>>>> 2) para uso en celdas:>>>>=Y(CONTAR.SI(A2;"????-??????-???-?");ESNUMERO(--SUSTITUIR(A2;"-";""));SUMAPRODUCTO(--ESERROR(HALLAR({"e"\"."\","};A2)))=3;(LARGO(A2)-LARGO(SUSTITUIR(A2;"-";"")))=3)>>>> Saludos,>> KL>>>>>> "KL" wrote in messagenews: Hola jose,>>>>>>>Has probado la fórmula que he propuesto?>>>>es que la estoy probando poniendo la "e" y funciona perfectamente,>>>>echale un vistazo, pero recuerda que tiene que está la celda "A2">>>>(según mi propuesta) con el formato personalizado de 0000-000000-000-0>>>>>> Aunque no me referia a tu formula al escribir mi mensaje anterior(porque no cumplia con la condicion establecida por Enrique de que losguiones se tenian que introducir a mano ), prueba hacer lo siguiente:>>>>>> 1) introduce el valor: 22223345199222>>> 2) sustituye el penultimo digito por una "e": 222233451992e2>>> o/y>>> 3) sustituye el primer digito por un guion: -2223345199222>>> o/y>>> 4) empieza el numero por uno o mas ceros: 02223345199222>>>>>>> PD: me alegro de hablar contigo otra vez.>>>>>> Igualmente.>>>>>> Saludos,>>> KL>>>>>>>>>
Respuesta Responder a este mensaje
#28 Héctor Miguel
09/07/2006 - 06:59 | Informe spam
hola, chicos ! [perdon por la intromision] :))

tenia tiempo sin 'ver' un hilo tan 'representativo' de su asunto: largo :D

[me parece que] las formulas propuestas por KL tienen...

a) una 'redundancia'...
-> al comparar [al final] el largo de la celda despues de sustituir los guiones -?-
ya que dicha 'condicion' se deberia de cumplir con la funcion contar.si, que hace referencia al 'patron' buscado
que ya tiene 'contemplado' el que deberan ser 17 caracteres y guiones en las posiciones 5, 12 y 16
[independientemente de que tipo de caracteres fueran los 14 restantes]

b) una 'fuga'...
al asegurarse que no se incluyan caracteres como 'e', coma y punto...
y que el resultado de la sustitucion de los guiones pueda ser evaluado como valor_numerico [el doble-menos y demas]...
-> omite la posibilidad de que se intruduzca un espacio al inicio y/o al final de los 17 caracteres 'validos' -?-

-> habria que 'crecer' la formula para las reglas de validacion y adaptar la formula para su uso en celdas ;)
o... probar con una formula +/- como la siguiente: [ojo con 'mi' separador de argumentos que es la coma] :D

=y(contar.si(a2,"????-??????-???-?"),esnumero(--sustituir(a2,"-","")),si(esnumero(--sustituir(a2,"-","")),largo(entero(--sustituir(a2,"-","")))))

saludos,
hector.
Respuesta Responder a este mensaje
#29 KL
09/07/2006 - 12:24 | Informe spam
Hola HM,

a) una 'redundancia'...
-> al comparar [al final] el largo de la celda despues de sustituir los
guiones -?-
ya que dicha 'condicion' se deberia de cumplir con la funcion
contar.si, que hace referencia al 'patron' buscado
que ya tiene 'contemplado' el que deberan ser 17 caracteres y guiones
en las posiciones 5, 12 y 16
[independientemente de que tipo de caracteres fueran los 14 restantes]



No es del todo cierto ya que el patron solo se ocupa de las posiciones 5,12
y 16 mientras que pueden haber guiones en otras posiciones perfectamente y
se daran por validos por "contar.si(a2,"????-??????-???-?")". Como sabes,
esto no ocurriria en VBA donde podriamos usar el comodin de numeros:
"####-######-###-#". La parte que mide la longitud asegura que no solo esten
en susitio sino que solamente sean 3.

b) una 'fuga'...
al asegurarse que no se incluyan caracteres como 'e', coma y punto...
y que el resultado de la sustitucion de los guiones pueda ser evaluado
como valor_numerico [el doble-menos y demas]...
-> omite la posibilidad de que se intruduzca un espacio al inicio y/o
al final de los 17 caracteres 'validos' -?-



Tienes razon :-)

=y(contar.si(a2,"????-??????-???-?"),esnumero(--sustituir(a2,"-","")),si(esnumero(--sustituir(a2,"-","")),largo(entero(--sustituir(a2,"-","")))))



Me quedo con esta.

Saludos,
KL
Respuesta Responder a este mensaje
#30 Héctor Miguel
09/07/2006 - 20:44 | Informe spam
hola [de nuevo], chicos !

KL escribio en el mensaje ...



[hm] >> a) una 'redundancia'...
... el patron solo se ocupa de las posiciones 5,12 y 16... guiones en otras posiciones... se daran por validos
... La parte que mide la longitud asegura que no solo esten en su sitio sino que solamente sean 3.



[hm] >> b) una 'fuga'...
Tienes razon :-)
=y(contar.si(a2,"????-??????-???-?"),esnumero(--sustituir(a2,"-","")),si(esnumero(--sustituir(a2,"-","")),largo(entero(--sustituir(a2,"-","")))))


Me quedo con esta.



1) en cuanto a la 'redundancia'...
asi lo entendi, por eso el comentario de: '[independientemente de que tipo de caracteres fueran los 14 restantes]'

2) en cuanto a la 'fuga'...
existe aun [incluso en la propuesta modificada] OTRA 'fuga', relacionada con la 'cuenta' de 14 caracteres numericos
el 'ejemplo practico' es el ejemplo que expone OP en su primer mensaje cuando se refiere al 'tipo' de entrada que se hara...
-> 0506-120560-102-9
-> donde el cero [o si existen dos o mas 'ceros' seguidos en el 'patron' numerico] AL INICIO <= OJO...
a) se omite/n por la sustitucion de los guiones -> --sustituir(a2,"-","") [y por lo tanto]...
b) se debiera/n EXCLUIR EN la 'cuenta' de los 14 caracteres-numericos 'restantes'
es decir... 14 caracteres numericos... MENOS... ??? [cuantos ceros iniciales en el 'patron'] -?-

3) opciones ? [creo que la respuesta... 'sigue en el aire'... pero]... algunas ideas...
considerando que las constantes no son 'permitidas' en formulas para criterios de las reglas de validacion :-((
a) utilizar una celda contigua para la 'validacion'
b) usar nombres definidos -> cuidando el largo de la formula [por la referencia a la celda y el -posible- uso de constantes] ;)

saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida