Validación de formato

31/03/2010 - 15:26 por Oszkar M^ | Informe spam
Buenas amigos del foro,

Mi duda es la siguiente:

Quisiera utilizar en una celda de excel una validación de datos, en la que
el usuario solo pueda escribir la siguiente combinación de caracteres:

Año/Seis números Ejemplo. 2009/123456

En otra celda una validación de datos de la siguiente forma:

Un número/Año/Ocho números Ejemplo: 1/2009/12345678

Es posible hacer este tipo de validaciones?.

Muchas gracias.
Saludos,

Oszkar M^
Sevilla - España

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
01/04/2010 - 00:32 | Informe spam
hola, !

__ 1 __
Quisiera utilizar en una celda de excel una validacion de datos
en la que el usuario solo pueda escribir la siguiente combinacion de caracteres:
A#o/Seis numeros Ejemplo. 2009/123456


__ 2 __
En otra celda una validacion de datos de la siguiente forma:
Un numero/A#o/Ocho numeros Ejemplo: 1/2009/12345678



- la primera restriccion para la celda [A1] y la segunda para la celda [A2]
- toma en cuenta que mi sistema usa comas para separar argumentos
- las formulas son en una sola linea (las separo porque de seguro se cortan por el servidor)
- todas son validaciones personalizadas (usando formulas)

1)
=y(extrae(a1,5,1)="/",
sumaproducto(--esnumero(--extrae(a1,fila(indirecto("1:4")),1)))=4,
sumaproducto(--esnumero(--extrae(a1,fila(indirecto("6:11")),1)))=5)

2)
=y(contar.si(a2,"?/????/????????"),
esnumero(--izquierda(a2)),
sumaproducto(--esnumero(--extrae(a2,fila(indirecto("3:6")),1)))=4,
sumaproducto(--esnumero(--extrae(a2,fila(indirecto("8:16")),1)))=8)

saludos,
hector.
Respuesta Responder a este mensaje
#2 Oszkar M^
05/04/2010 - 17:36 | Informe spam
Hola Héctor,

Ya me he dado cuenta de mi fallo, y he logrado que funcione; sin embargo, el
formato que me está validando es Año/cinco cifras (ej: 2009/12345) y el que
necesito es Año/Seis cifras (ej. 2009/123456).

Para modificar la fórmula de validación, basta con agregar una unidad a
todos los números que aparecen en la fórmula? (no me funciona).

Agradezco tu amable colaboración.


Saludos,

Oszkar M^
Sevilla - España


"Oszkar M^" wrote:

Hola Héctor,

Antes de todo, muchas gracias por tu valiosa ayuda.

Con respecto a las dos soluciones que me has aportado, la segunda ha
funcionado perfectamente.

Con respecto a la primera, no logro que funcione. He comprobado el separador
de listas (el mio es ";"), también que la fórmula esté solo en una fila. Pero
no funciona.

Cuando digito los números en la celda 2009/123456, me dice "Valor no válido:
El usuario no puede introducir ciertos valores en esta celda". Te copio la
fórmula con los cambios por si hay algo que se me esté escapando.

=Y(CONTAR.SI(A1;"????/????????");ESNUMERO(--IZQUIERDA(A1));SUMAPRODUCTO(--ESNUMERO(--EXTRAE(A1;FILA(INDIRECTO("3:6"));1)))=4;SUMAPRODUCTO(--ESNUMERO(--EXTRAE(A1;FILA(INDIRECTO("8:16"));1)))=8)



Agradezco nuevamente tu amable colaboración.



Saludos,

Oszkar M^
Sevilla - España


"Héctor Miguel" wrote:

> hola, !
>
> __ 1 __
> > Quisiera utilizar en una celda de excel una validacion de datos
> > en la que el usuario solo pueda escribir la siguiente combinacion de caracteres:
> > A#o/Seis numeros Ejemplo. 2009/123456
> __ 2 __
> > En otra celda una validacion de datos de la siguiente forma:
> > Un numero/A#o/Ocho numeros Ejemplo: 1/2009/12345678
>
> - la primera restriccion para la celda [A1] y la segunda para la celda [A2]
> - toma en cuenta que mi sistema usa comas para separar argumentos
> - las formulas son en una sola linea (las separo porque de seguro se cortan por el servidor)
> - todas son validaciones personalizadas (usando formulas)
>
> 1)
> =y(extrae(a1,5,1)="/",
> sumaproducto(--esnumero(--extrae(a1,fila(indirecto("1:4")),1)))=4,
> sumaproducto(--esnumero(--extrae(a1,fila(indirecto("6:11")),1)))=5)
>
> 2)
> =y(contar.si(a2,"?/????/????????"),
> esnumero(--izquierda(a2)),
> sumaproducto(--esnumero(--extrae(a2,fila(indirecto("3:6")),1)))=4,
> sumaproducto(--esnumero(--extrae(a2,fila(indirecto("8:16")),1)))=8)
>
> saludos,
> hector.
>
>
> .
>
Respuesta Responder a este mensaje
#3 Héctor Miguel
06/04/2010 - 05:27 | Informe spam
hola, Oszkar !

... el formato que me esta validando es A#o/cinco cifras (ej: 2009/12345)
y el que necesito es A#o/Seis cifras (ej. 2009/123456).

Para modificar la formula de validacion, basta con agregar una unidad
a todos los numeros que aparecen en la formula? (no me funciona).



si... solo debes adaptar cuantos caracteres (y en que posicion) deben ser de x_tipo (p.e.)

para esta validacion: 2009/12345 (que fue la que -por error- propuse)...
a) el caracter en la posicion 5 debe ser "/"
b) los 4 primeros caracteres deben ser numero
c) los 5 caracteres (despues del "/") a partir de la posicion 6 deben ser numero
== la propuesta original =a) > =y(extrae(a1,5,1)="/",
b) > sumaproducto(--esnumero(--extrae(a1,fila(indirecto("1:4")),1)))=4,
c) > sumaproducto(--esnumero(--extrae(a1,fila(indirecto("6:11")),1)))=5)

para la validacion que necesitas: 2009/123456
a) > =y(extrae(a1,5,1)="/",
b) > sumaproducto(--esnumero(--extrae(a1,fila(indirecto("1:4")),1)))=4,
c) > sumaproducto(--esnumero(--extrae(a1,fila(indirecto("6:12")),1)))=6)

hay otras opciones (limitar el largo de caracteres a la entrada, etc.)
si cualquier duda... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 Oszkar M^
06/04/2010 - 10:12 | Informe spam
Hola Héctor,

Primero, déjame decirte que eres muy amable por tu magnífica ayuda. Me ha
funcionado perfectamente y ahora mas, por que entiendo el funcionamiento de
la fórmula.

Ahora tengo una pregunta algo diferente (perdona que sea tan insistente).

La validación que busco ahora es como sigue:

Si en la celda A1 se selecciona a través de una lista de validación un dato,
que en la celda B1 el usuario pueda escribir un código de 10 dígitos, pero
que valide que el código comience por AM30, y si en A1 se selecciona otro
dato, en B1 se escriba un código de 10 dígitos, pero que valide que el código
comience por DM30.

Ejemplo:

Si:

A1 = Blanco == > B1 = AM30200901

A1 = Negro == > B1 = DM30200902


De nuevo muchas gracias por tu valiosa ayuda.
Saludos,

Oszkar M^
Sevilla - España


"Héctor Miguel" wrote:

hola, Oszkar !

> ... el formato que me esta validando es A#o/cinco cifras (ej: 2009/12345)
> y el que necesito es A#o/Seis cifras (ej. 2009/123456).
>
> Para modificar la formula de validacion, basta con agregar una unidad
> a todos los numeros que aparecen en la formula? (no me funciona).

si... solo debes adaptar cuantos caracteres (y en que posicion) deben ser de x_tipo (p.e.)

para esta validacion: 2009/12345 (que fue la que -por error- propuse)...
a) el caracter en la posicion 5 debe ser "/"
b) los 4 primeros caracteres deben ser numero
c) los 5 caracteres (despues del "/") a partir de la posicion 6 deben ser numero
== la propuesta original => a) > =y(extrae(a1,5,1)="/",
b) > sumaproducto(--esnumero(--extrae(a1,fila(indirecto("1:4")),1)))=4,
c) > sumaproducto(--esnumero(--extrae(a1,fila(indirecto("6:11")),1)))=5)

para la validacion que necesitas: 2009/123456
a) > =y(extrae(a1,5,1)="/",
b) > sumaproducto(--esnumero(--extrae(a1,fila(indirecto("1:4")),1)))=4,
c) > sumaproducto(--esnumero(--extrae(a1,fila(indirecto("6:12")),1)))=6)

hay otras opciones (limitar el largo de caracteres a la entrada, etc.)
si cualquier duda... comentas ?
saludos,
hector.


.

Respuesta Responder a este mensaje
#5 Héctor Miguel
06/04/2010 - 11:19 | Informe spam
hola, Oszkar !

... algo diferente... La validacion que busco ahora es como sigue:
Si en la celda A1 se selecciona a traves de una lista de validacion un dato
que en la celda B1 el usuario pueda escribir un codigo de 10 digitos
pero que valide que el codigo comience por AM30
y si en A1 se selecciona otro dato, en B1... valide que el codigo comience por DM30.
Ejemplo:
A1 = Blanco == > B1 = AM30200901
A1 = Negro == > B1 = DM30200902



las reglas de validacion solo requieren de una condicion que pueda ser evaluada como:
- verdadero (se permite al usuario la entrada del dato)
- falso (no se permite al usuario la entrada del dato)

para la condicion de los primeros cuatro caracteres en B1 (segun blanco/negro en A1)
una formula que puedes usar es:
=izquierda(b1,4)=si(a1="blanco","am30",si(a1="negro","dm30",si(esblanco(a1),"")))

que podrias combinar dentro de una funcion =y(... con algun sumaproducto(... o el largo de la celda [B1]

entendiendo que las reglas de validacion aplican (solo) para entrada directa del usuario (a tecla pura y dura)
cabria la posibilidad de que una vez introducido un dato "validado" en B1, se cambiara la condicion en A1 (?)
pero el dato "anterior" se quedaria en B1 hasta la siguiente entrada del usuario (algun dato "nuevo") :-((

para estos casos conviene acompanar las reglas de validacion con formatos condicionales
(te lo dejo "de tarea" ?, o...) si cualquier duda, comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida