Pregunta un lector sobre la forma de realizar una validación condicionada
Para dar solución a esta duda tendremos que Asignar nombres a los distintos rangos, para luego mediante la Validación configurar los posible valores. Podremos jugar y experimentar más adelante con los rangos dinámicos.
El problema que surge al tratar de vincular el valor de una celda con el de otra celda, siendo en ambos casos valores numéricos, es que Excel nos devuelve un error, puesto que entiende que pretendemos emplear valores genéricos ya utilizados en otras partes de la aplicación; por lo que para salvar este inconveniente convertiremos en texto algunos de estos valores.
Vamos por partes, en primer lugar supongamos que es esta la distribución de posibles valores:
Pretendemos que cuando en la celda A2 seleccione un valor de los posibles en el campo 'Opción1', como primer nivel, en la celda B2 automáticamente sólo me permita desplegar y seleccionar aquellos existentes en las columnas F, G y H, como segundo nivel.
Antes de continuar, es fundamental dar una forma de texto a las cabeceras de las columnas F, G y H, mediante la función =TEXTO(valor;formato) para cada agrupación de segundo orden; esta función convierte en texto cualquier valor numérico, en nuestro ejemplo
=TEXTO(1;"#") convertimos el valor 1 en un texto con un formato de un caracter,
=TEXTO(2;"#") convertimos el valor 2 en un texto con un formato de un caracter,
=TEXTO(3;"#") convertimos el valor 3 en un texto con un formato de un caracter;
Una vez realizada esta conversión podremos comenzar a Asignar nombres a cada agrupación de valores, ya sean de primer o segundo nivel; recordemos cómo lo hacíamos viendo la entrada Asignar nombres a rangos; en concreto, para nuestro ejemplo, los nombres asignados son:
Opción1=Hoja1!$D$2:$D$4
_1=Hoja1!$F$2:$F$3
_2=Hoja1!$G$2:$G$4
_3=Hoja1!$H$2:$H$4
Nos fijamos en la forma particular en que Excel a dado los nombres a las agrupaciones de segundo nivel, y es que a pesar de la conversión en texto, Excel no puede entender un Nombre como un valor numérico genérico; sin embargo esto podremos salvarlo.
Llegamos al último paso, la Validación. Para la celda A2 configuramos la siguiente validación:
y para la celda B2:
Fijémonos en la función empleada en este paso:
=INDIRECTO("_"&$A$2)
es aquí donde hemos 'corregido' esa particularidad de Excel, el guión bajo; lo que conseguimos con esta función es que la Validación busque en el rango que sea igual a un guión bajo seguido del valor elegido en la celda A2.
Como se puede ver no he configurado los mensajes de error o títulos de esas celdas validadas, pero podríamos hacerlo igual que en cualquier otro caso, entiendo que no es básico para el desarrollo del ejemplo.
Probamos que todo funcione correctamente desplegando y seleccionando un valor en la celda A2, y vemos que efectivamente la celda B2, al desplegar la lista, sólo nos devuelve los valores correspondientes:
Cómo poder hacer lo siguiente: 1. Si la celda A1 introduzco el valor 1, entonces la celda B1 solo puede permitir los numeros 1, 2 o 3. 2. Pero si en la celda A1 introduzco el valor 2, entonces la celda B1 solo puede permitir los valores 4, 5 y 6 |
Para dar solución a esta duda tendremos que Asignar nombres a los distintos rangos, para luego mediante la Validación configurar los posible valores. Podremos jugar y experimentar más adelante con los rangos dinámicos.
El problema que surge al tratar de vincular el valor de una celda con el de otra celda, siendo en ambos casos valores numéricos, es que Excel nos devuelve un error, puesto que entiende que pretendemos emplear valores genéricos ya utilizados en otras partes de la aplicación; por lo que para salvar este inconveniente convertiremos en texto algunos de estos valores.
Vamos por partes, en primer lugar supongamos que es esta la distribución de posibles valores:
Pretendemos que cuando en la celda A2 seleccione un valor de los posibles en el campo 'Opción1', como primer nivel, en la celda B2 automáticamente sólo me permita desplegar y seleccionar aquellos existentes en las columnas F, G y H, como segundo nivel.
Antes de continuar, es fundamental dar una forma de texto a las cabeceras de las columnas F, G y H, mediante la función =TEXTO(valor;formato) para cada agrupación de segundo orden; esta función convierte en texto cualquier valor numérico, en nuestro ejemplo
=TEXTO(1;"#") convertimos el valor 1 en un texto con un formato de un caracter,
=TEXTO(2;"#") convertimos el valor 2 en un texto con un formato de un caracter,
=TEXTO(3;"#") convertimos el valor 3 en un texto con un formato de un caracter;
Una vez realizada esta conversión podremos comenzar a Asignar nombres a cada agrupación de valores, ya sean de primer o segundo nivel; recordemos cómo lo hacíamos viendo la entrada Asignar nombres a rangos; en concreto, para nuestro ejemplo, los nombres asignados son:
Opción1=Hoja1!$D$2:$D$4
_1=Hoja1!$F$2:$F$3
_2=Hoja1!$G$2:$G$4
_3=Hoja1!$H$2:$H$4
Nos fijamos en la forma particular en que Excel a dado los nombres a las agrupaciones de segundo nivel, y es que a pesar de la conversión en texto, Excel no puede entender un Nombre como un valor numérico genérico; sin embargo esto podremos salvarlo.
Llegamos al último paso, la Validación. Para la celda A2 configuramos la siguiente validación:
y para la celda B2:
Fijémonos en la función empleada en este paso:
=INDIRECTO("_"&$A$2)
es aquí donde hemos 'corregido' esa particularidad de Excel, el guión bajo; lo que conseguimos con esta función es que la Validación busque en el rango que sea igual a un guión bajo seguido del valor elegido en la celda A2.
Como se puede ver no he configurado los mensajes de error o títulos de esas celdas validadas, pero podríamos hacerlo igual que en cualquier otro caso, entiendo que no es básico para el desarrollo del ejemplo.
Probamos que todo funcione correctamente desplegando y seleccionando un valor en la celda A2, y vemos que efectivamente la celda B2, al desplegar la lista, sólo nos devuelve los valores correspondientes:
Como puedo asignar una condicional a una formula si se me dice que debo agregar una unidad cada 10 unidades de otras, que tengo en una celda dentro de una hoja de trabajo. Este valor puede oscilar en función de otros datos., es por ello que te dan esa fórmula. Gracias de antemano. se como asignar la primera condicional > = a 10marcar 1 ó 0 pero cada 10 más, por ejemplo 23 no sabría como poner que me reflejase 2. Gracias otra vez.
ResponderEliminarHola Gracyluis,
ResponderEliminarsi he comprendido correctamente tu pregunta, tienes una celda con un valor numérico (celda origen), cualquiera, y lo que se pretende es asignar un otro valor formulado en función de la primera celda origen; de tal forma que si el origen está entre 0 y 10 el resultado sea 1, si el origen está entre 10 y 20 (10 más) el resultado sea 2 (1+1), entre 20 y 30 resultado 3, etc.
En este caso, suponiendo que el valor origen no tiene ningún límite de valor yo no utilizaría la función SI, puesto que esta limita tus condiciones a 7. Creo que lo más sencillo es que encuentres una norma, formulada, que te devuelva aquellos resultados.
Por ejemplo,
=ENTERO(celda origen/10)
esta función te devolverá para cada intervalo de números de diez un resultado incrementado en uno por decena...
Espero haber entendido correctamente tu cuestión.
Un saludo
AMIGO LA VERDAD NO SE COMO EXPLICARTE, PERO ESPERO ME ENTIENDAS, MIRA LO QUE QUIERO HACER ES LO SIGUIENTE:
ResponderEliminarTENGO LA SIGUIENTE INFORMACION
INFRAESTRUCTURA TIPO
VIAS A
COLEGIOS B
CENTROS DE SALUD C
MIRA CUANDO ELIJA LA OPCION VIAS QUIERO QUE EN LA OTRA CELDA ME APARESAC UN MENU DESPEGABLE CON: AUTOPISTA,FERREA,TROCHA CARROZABLE. CUANDO ELIJA LA OPCION COLEGIOS ME APARESCAN LA OPCION INICIAL, PRIMARIO, SECUNDARIO, SUPERIOR. Y CUANDO ELIJA LA OPCION CENTROS DE SALUD ME APRESACAN LAS OPCIONES HOSPITAL, POSTA MEDICA, CLINICA.
ESPERO ME HAYA COMPRENDIO Y OJALA ME PUEDAS AYUDAR. mi correo es ing.mijespab@gmail.com , TE LO AGRADECERIA BASTANTE
Hola,
ResponderEliminarte mando al correo indicado el ejemplo, aunque ya te digo que es igual al expuesto en:
http://excelforo.blogspot.com/2009/10/ejemplo-de-doble-validacion.html
Espero te sea de utilidad.
Slds
Yo deseo que aL elegir un rango de la lista deslizable, en la otra columna me aparezca el valor correspondiente, mis datos son:
ResponderEliminardias tiempo
1 - 6
2 - 10
3 - 15
4 - 22
.....
osea que cuando elija en la lista deslisable el dia 4, en la otra columna me aparezca en automatico el 22, si elijo 1 me aparezca el 6 y asi sucesivamente x q mis datos llegan hasta el dia 50.... GRACIAS X AYUDARME!!!
Hola,
ResponderEliminarlo que debes hacer es asignar nombre al rango de 'días' e incluirlo en un desplegable, por ejemplo una celda validada tipo lista, por ejemplo la D4; a continuación incluye el la celda E4 una función de búsqueda vertical
=BUSCARV(D4;A1:B50;2;0)
con lo que conseguiras obtener el dato de 'tiempo'.
Slds
Hola, esoty iniciando en esto, y mi duda es similar a la anterior preguntada, pero no consigo hacerlo
ResponderEliminarHe creado una lista validada quedando asi:
Orientacion:
Norte
Sur
Este
Oeste
Y lo que quisiera ahora, es que en la celda contigua, al elegir la orientacion automaticamente me cogiese un coeficiente asignado a esa orientacion
Gracias y un saludo
Hola,
ResponderEliminara pregunta similar respuesta similar ;-)
En una celda, por ejem, A1 tienes una celda validada con tipo Lista (desplegando los valores Norte, Sur, este y Oeste), en la celda contigüa, B1 incluirías la función
=BUSCARV(A1;Hoja2!A:B;2,0)
Siendo en la hoja2 donte tienes tu correspondencia de valores, en la columna A la orientación y en la columna B el coeficiente asignado.
Espero te sirva de ayuda.
Slds
Me encanta tu blog :)
ResponderEliminarSinceramente la guía es muy poco clara, podría ser más corto y concreto. Sin embargo, les agradezco porque pude entenderla con ayuda de otras guías y aplicarla.
ResponderEliminarHola Ramiro,
ResponderEliminarel agradecido soy yo por tus comentarios y aportes, así como por tu crítica constructiva.
Un cordial saludo
Hola! Soy principiante en excel y tengo una duda: puedo hacer que me cambie un valor numérico por un texto? Me explico: he creado una hoja para poner las notas de mis alumnos y quiero establecer que si la nota de un alumno está entre 100% y 95%, me salga en otra casilla "Excelente"; si la nota está entre 94% y 90%, que salga "Notable"; etc... Eso se puede hacer???? muchas gracias
ResponderEliminarHola...
ResponderEliminarmira estoy haciendo la doble validacion con numero me salio bien, pero al colocar palabras no me sale la validacion .....
lo que quiero hacer es.
columna perro carro
perro a c
carro b g
espero que me ayudes gracias!!
Hola,
ResponderEliminarNecesito ayuda en la columna A2 tengo la cantidad de $1,400.00 y en la columnas siguientes B2,C2... las fechas en que se hicieron los pagos quiero que la fecha adopte el valor de A2 para luego sumar el total.
A B C D E
1 CUOTA JULIO AGOSTO SEPT TOTAL
2 1,400 31/7/12
3 TOTAL TOTAL...
Hola,¿podrías explicarlo de otra manera?.
EliminarMe cuesta entender qué necesitas?.
Un saludo
De antemano, muchas gracias por responder. Necesito que el texto (fecha columnas B2,C2...) coja el valor de la cuota $1,400 (Columna A2) para luego hacer la sumar total y saber cuanto han pagado durante los meses. (B2+C2+D2+....)
EliminarEnvíame un fichero con un ejemplo (aunque sea con valores fijos) a
Eliminarexcelforo@gmail.com
Slds
Hola otra vez, te mande por email la ficha, espero me ayudes si es posible, esta muy complicado. GRACIAS
Eliminarnecesito ejemplos de doble validacion
ResponderEliminarHola, qué tal, buenos días!!
Eliminartienes varios ejemplos de doble validación en
http://excelforo.blogspot.com.es/search/label/Validacion
Un cordial saludo
Hago una consulta, necesito colocar en una misma columna dos reglas de validación, como se hace?
ResponderEliminarEjemplo, necesito que en la columna A se introduzca un numero con un largo determinado de caracteres y que a su vez no se repita ningún dato.
ej necesito poner 00001, 00002 y que no pueda poner nuevamente 00002 nuevamente ni tampoco 002.
muchas gracias
Hola Javier,
Eliminarel problema que veo en tu planteamiento, es que si exiges un número determinado de caracteres, como pones en el ejemplo 00001, 00002 etc (exiges entonces que el número de caracteres sea 5) y no se puedan repetir valores ya dados en la columna A, si quieres que admita ese formato '00001' deberás tratar los datos como texto.
Si admitimos esa condición de datos tipo texto, para asignar dos reglas (o más) de validación tienes que irte a permitir personalizado.
Puedes echar un vistazo a
http://excelforo.blogspot.com.es/2010/03/validacion-de-datos-personalizada.html
o
http://excelforo.blogspot.com.es/2011/10/validacion-de-datos-personalizada.html
En tu caso la validación personalizada sería:
=Y(LARGO(A1)=5;CONTAR.SI(A:A;A1)=1)
creando la validación con la columna A seleccionada, y la celda A1 activa.
Espero te sirva
Slds
Muchisimas gracias!
Eliminarlo único que tuve que cambiar fue que en vez de colocar ";" tuve que usar "," pero sacando ese detalle la formula que me pasaste funciono a la perfección.
Nuevamente Gracias!!
Gracias a ti Javier,
Eliminarlo del ; o , depende de la configuración de sistema que utilices... cada persona lo tiene de una manera, yo utilizo la más extendida.
Me alegro te sirviera.
Slds
Buenas! Lo primero decirte que me aclaraste muchísimo y que me ha servido de gran ayuda! GRACIAS.
ResponderEliminarSin embargo mi problema es el siguiente: ¿cómo puedo arrastrar esa validacion de datos para que me la ajuste a las filas siguientes? Pongamos de ejemplo que la casilla B2 está condicionada a la A2, y ya funciona perfectamente, pero si arrastro la celda, la casilla B3 me aparece condicionada a la A2, y no a la A3.
Gracias de antemano por tu respuesta
Un cordial saludo
Hola Esther!!
Eliminarpara que te aparezca relacionado como indicas,tendrías que arrastrar sin más, pero ojo, la fórmula, esto es, el origen en la configuración de la validación debe estar sin fijar; en tu caso: A2 y no $A$2...
En el fondo opera igual que una función o fórmula en la hoja de cálculo.
Otra manera es seleccionar primero el rango donde vayan las validaciones, e insertar después la Validación de datos, pero igual que antes sin fijar filas.
Espero haberme explicado.
Slds
hola
ResponderEliminarHola amigos de excel foro, les quiero comentar que cree una hoja excel en la cual utilice la validacion de datos, con una lista, segui toods los pasos, trabaje con ingreso de los datos de la lista y guarde el archivo, mas al otro dia abro el archivo pasa seguir ingresando los datos validados, sorpresa que no se ha guardo la validaciomn y tengo que comenzar de nuevo a validar, alguien me puede explicar como fijar bien esta validacion de datos gracias
ResponderEliminaroscar
ogomezcabrera@yahoo.es
Hola Oscar,
Eliminarno tiene nada de particular trabajar con validación de datos; es suficiente Guardar antes de cerrar.
Quizá te falló el sistema o por error presionaste no guardar cambios.
Slds
Antes que nada excelente foro me encanta y me ha sacado de muchos apuros. En esta ocasión tengo un par de dudas: 1) como le hago para sacar de una "tabla de docentes" los nombre que empiecen con "M" y que además contengan la letra "R". ejemplo: que incluya a: María pero que excluya a: Moises y 2) en la misma "tabla de docentes" quiero sacar los datos de de maestros "activos" pero que den materias de química y matemáticas.
ResponderEliminarmi tabla esta constituida por
A1 B1 C1
"nombre activo/inactivo materias"
Gracias y Saludos.
Arturo V.
Hola Arturo,
Eliminaryo emplearía un Autofiltro personalizado sobre el campo 'Nombre', con el operador igual a: M*r*
los asteríscos son uno de los comodines de Excel, e implican varios caracteres. Con M*r* decimos que muestre los elementos del campo que comiencen con 'M' y tengan una 'r' en algún sitio.
Slds
hola quisiera saber si puedo auto completar en una celda con datos de otra hoja, es decir si en la celda a1 escribo s , automaticamente busque coincidencias de palabras con esa inicial, desde un rango que este en la hoja 2. agradesco ya de por si tu respuesta,
ResponderEliminarsaludos
Hola,
Eliminaren principio, y hasta donde yo sé, no es posible.
Puedes leer algo que escribí al respecto en
http://excelforo.blogspot.com.es/2012/06/simulando-un-texto-predictivo-en-una.html
y en
http://excelforo.blogspot.com.es/2012/06/vba-la-propiedad-matchentry-en-un.html
Espero te sirva alguna de las aternativas.
Slds
Hola, quería saber si es posible que, al agregar un número en una celda, en otra, me aparezca automáticamente una lista desplegable. En este ejemplo, ambas son listas, pero lo que necesito es que, al colocar un numero o una edad, en la celda continua me aparezca una lista desplegable. Es algo parecido a una funcion SI pero con listas desplegables. Espero tu rpta. Slds,
ResponderEliminarHola,
Eliminarno es posible usando simplemente la Validación de celdas, sin embargo, usando alguna macro que haga visible un Control(ActiveX) tipo ComboBox condicionado al valor de una celda resultaría. Algo de este estilo:
If Range("E2").Value > 10 Then
ComboBox1.Visible = True
Else
ComboBox1.Visible = False
End If
También, empleando macros, y asignando a una celda una Validación de datos determinada (tipo Lista) en función de un valor de otra celda, o bien sin Validación según otros valores...
En cuallquier caso siempre empleando macros.
Slds
Hola, Muchas gracias por los ejemplos y de antemano por tu atención. Lo que yo necesito es que al poner la opción en la opción 2 solo me permita meter valores ligados a lo que lo que puse en la opción 1. Tal cual esta en el ejemplo, pero sin la lista despegable. Yo tengo demasiados datos por opción y la lista no es practica. Prefiero tener que tipear la opción 2, pero que no me permita meter un valor que no corresponde a la lista de lo que ingrese en la opción 1. No se si me explique bien.
ResponderEliminarHola Eduardo,
Eliminarbueno, el mecanismo será exactamente igual, ya que se trata de la misma herramienta 'Validación de datos'.
Realiza los mismos pasos pero en la celdas que no quieras te aparezca el desplegable, simplemente en la ventana de configuración desmarca la opción 'Celda con desplegable' (opción que se activa sólo al permitir tipo Lista.
Lo que se consigue con esto es la misma funcionalidad que lo explicado en el post, pero sin que en la celda aparezca la flechita de desplegable. Pero en ambos casos (con o sin flecha) la posibilidad de escribir o tipear los valores permitidos en la celda están habilitados.
Espero haber explicado.
Un cordial saludo
Muchismas gracias Ismael por tu pronta respuesta. Excelente funciono de maravilla
ResponderEliminar;-)
EliminarSlds
Me ha servido la información aunque no he terminado lo que deseo.
ResponderEliminarComo ejemplo pongo una paletería donde se venden 2 tipos de paletas,
hielo
maciza
Si escojo la paleta de hielo entonces puedo escoger otras dos opciones. Leche, agua.
Hasta aquí no tengo problemas, puedo hacerlo con las validaciones, el asunto es que de acuerdo a la especificación "leche, agua" también tengo otro desplegado, que serian los distintos sabores, diferentes para ambos.
Cómo puedo hacer esto?
Hola Erick,
Eliminarla idea es la misma, daría igual un segundo que un tercer nivel.
Sobre el nivel I (Hielo, Maciza), aplicamos el segundo nivel (Leche, Agua) empleando los nombres definidos con la función INDIRECTO; el tercer nivel que propones (Sabores) en función al segundo, se construiría con nuevos nombres definidos =INDIRECTO(Leche) o =INDIRECTO(Agua).
La clave es la creación de Nombres definidos.
Slds
Cómo poder hacer lo siguiente:
ResponderEliminar1. Si en la celda A1 introduzco el valor 1, entonces que en la celda B1 solo pueda permitir los numeros 1, 2 o 3. (esto es similar al post)
2. Pero si en la celda A1 introduzco el valor 2, entonces en la celda B1 pueda introducir cualquier valor.
Gracias de antemano
Hola, no es sencillo el tema.
EliminarPero si las condiciones son tan cerradas como las que planteas, entonces selecciona la celda B1, entra en validación de datos personalizada y en el campo fórmula introduce:
=O(Y($A$1=1;O($B$1=1;$B$1=2;$B$1=3));$A$1=2)
Te funcionará como indicas.
Slds cordiales
Hola a todos y muchas gracias por todas las ayudas, ¡son magníficas!
Eliminar¿Y si en un caso como este necesitas que, si en A1 figura el valor 2, en B1 se pueda escribir, no cualquier valor, sino cualquier número entero? ¿cómo habría que modificar la fórmula?
Muchas gracias de antemano por vuestra ayuda y un saludo.
Hola,
Eliminarsituado en B1, configuras la validación personalizada:
=Y(A1=2;B1=ENTERO(B1))
Saludos
¡¡¡Fantástico!!!
EliminarMuchas gracias y un saludo
;-)
EliminarHola Ismael,
ResponderEliminarGracias por la pronta respuesta, si embargo las condiciones no son tan cerradas como las que te he planteado. Igualmente voy a probar a partir de tu gran aporte.
Slds
Hola!!
Eliminarta te había comentado que no era sencillo el planteamiento... son muchas las variables que hay que cerrar para el planteamiento 'sencillo' inicial, por lo que a más parámetros más complicado el tema...
Suerte y comentas.
Hola Ismael,
ResponderEliminarOpté por la opción más sencilla, terminé utilizando la opción de validar con listas (similar la post con la función Indirecto), solo que seleccioné en el mensaje de salida la opción Información y no mostrar el mensaje (de esta manera permitiría colocar cualquier valor en la celda B1). Solo tengo que informar muy bien a los usuarios que si en la celda B1 se desplega una lista, que elijan valores de la misma. Se que quedo expuesto a que ingresen cualquier valor, pero tendré que monitorear de cerca los primeros tiempos.
Nuevamente muchas gracias por tu ayuda.
Slds
Bueno,
Eliminara veces no queda más remedio que quedar en manos del usuario...
Quizá con macros si se podría configurar, comprobando a posteriorí los datos introducidos...
Slds
Hola Silvia,
ResponderEliminarprueba con esta entrada, aunque presupone que tienes listas separadas para cada 'filtro' aplicado
http://excelforo.blogspot.com.es/2010/04/validacion-de-celdas-anidadas-y.html
Creo que cualquier otra solución pasaría por macros bastantes complejas. Con fórmulas aplicadas quizá se podría conseguir alguna cosa, pero posiblemente los listados aparecieran con espacios en blanco... es decir, es como si del listado completo sólo aparecieran con valor los que cumplan los criterios y en blanco los demás...
Slds
Buenos días
ResponderEliminarNo sé si lo que yo quiero se podrá hacer...
Tengo un archivo de Excel donde guardo presupuestos y con fórmulas para que me calcule, el iva, la comisión... etc
Mi pregunta es, cómo puedo apuntar para el mismo cliente varios presupuestos sin que esto me contabilice todos los trabajos, cuando finalmente sólo nos quedaríamos con el más barato (quiero apuntarlo porque en ese archivo es donde llevamos todo el control...)
Gracias
Hola!,
Eliminarla verdad no comprendo bien tu planteamiento... hasta donde entiendo comentas que tienes un fichero con diferentes registros, y varios presupuestos para un mismo cliente (me imagino en diferentes filas/registros)... y quiers trabajar con el más baráto.
La idea, si es así como lo planteo, sería tener una columna para los diferentes columnas y sus columnas adyacentes con los datos formulados IVA, Comisión, Total.
Para quedarse con el más barato, supongo a determinar en algún otro lugar del libro de trabajo, para encontrar el presupuesto de un cliente en particular (el ppto más bajo), asociaríamos la siguiente fórmula matricial (validar presionando Ctrl+Mayusc+Enter):
=MIN(SI(A1:A5=E5;B1:B5))
suponiendo en A1:A5 esté el listado con todos los clientes y en B1:B5 el valor de los presupuestos (de todos), y en E5 el nombre o código de cliente (el mismo que encontraremos en A1:A5).
Espero te sirva
Slds
Aprovecho la oportunidad para agradecerte el incontable numero de veces que me has salvado, la verdad tengo tu blogg entre mis favoritos. La claridad con la que explicas la forma de dar solución a las multiples necesidades de muchos, que debemos usar excel como mano derecha.
ResponderEliminarTu blogg me ha permitido crear algunas cosas que hace un par de años me tomaban días realizar, realmente muy, muy agradecido.
Muchisimas gracias por tus palabras, Miguel...
Eliminaresta es la motivación para continuar con mi pequeño trabajo.
Un cordial saludo
Hola buenas tardes,
ResponderEliminarte escribo para realizarte una consulta
como puedo validar en excel si la primera o segunda
cifra son ceros, estoy intentando validar que sean
cuatro números, pero si pongo primero ceros
no lo coge, solo lo hace bien si los números
son distintos de cero
saludos
Hola Manuel,
Eliminarsuponiendo que el número de dígitos máximo sea de cuatro, en la validación de datos personalizada insertaría la fórmula:
=IZQUIERDA(TEXTO(A1;"0000");2)="00"
par la celda A1.
Con esa fórmula nos aseguramos que sólo los números de máximo cuatro dígitos y con los dos primeros cero se permitan en esa celda.
Si trabajas con más dígitos debes cambiar el formato "0000" por tantos ceros como necesites.
Saludos
Hola buena noches. Estoy haciendo un formulario con listas dependientes, todo iba bien hasta que los nombres empezaron a ser ldemasiado largos y parece que excel tiene algun tipo de limite (37caracteres) al marcar los nombres y claro ya no se me desplieda la sigiente lista cuando uso la funcion INDIRECTO ¿habria alguna solucion?lo de acortar el nombre, no es posible pues se necesita como está.
ResponderEliminarGracias de antemano.
un saludo
Hola Luis,
Eliminarse me ocurre aplicar un condicional SI con el que recortes los nombres existentes, esto es, crear unos segundos Nombres definidos más cortos (menos de 22 caracteres.. yo diría que ese es el límite), y luego aplicar un condicional dentro del INDIRECTO para que te lo detecte....
De todas formas no entiendo el por qué de esos Nombres definidos tan largos...
Espero te oriente
Saludos
Hola Ismael, son listas que vienen nombres de la administracion describiendo subdirecciones generales de las que cuelgan secretarias y otros organismos, no se si habra posibilidad de establecer un codigo = al nombre para poder sustituirlo, asi podria seguir. El limite que yo he contado (excel 2010) es el que indicaba 37 caracteres y tengo nombres que se me van a los 52 caracteres, de los que cuelgan otros ya dentro del limite.
ResponderEliminarUn saludo
Hola,
Eliminarcreo que podrías emplear una macro que cambie los nombres definidos 'largos' por otros nuevos, más cortos, y que respondan a alguna regla en cuanto al nombre.
Puedes echas un vistazo a
http://excelforo.blogspot.com.es/2012/04/cambiar-el-ambito-de-un-nombre-definido.html
Es bastante parecido en cuanto a la estructura de la macro.
El trabajo consistiría en ir borrando los nombres definidos existentes y creando unos nuevos con los rangos de los viejos, y de paso cambiar el Nombre.
Un saludo
Estimado Ismael, como sería el caso si quisiera un filtro avanzado solo para las fechas de los meses de agosto (por ejemplo) de cualquier año. Gracias por tu respuesta, un abrazo desde Lima. Andrés
ResponderEliminarHola Andrés,
Eliminardeberás crear un rango de criterio en dos columnas sobre el mismo campo.
Por ejemplo, supongamos que en tu base de datos el campo se llama 'FechaReg'...
en el rango de criterios añadimos como cabecera en H1 y I1 dos veces 'FechaReg' y 'FechaReg', en H2 añadimos:
>=01/08/2014
y en I2
<=31/08/2014
puedes ver otros ejemplos en
http://excelforo.blogspot.com.es/2009/10/un-ejemplo-de-filtro-avanzado-en-excel.html
Espero te oriente.
Un cordial saludo
Gracias por tu respuesta tan rápida estimado Ismael y buena la aclaración pero en mi caso hay más de 10 años y tengo que filtrar solo un mes (agosto por ejemplo) de todos los años.
EliminarAnticipadamente, gracias por tu respuesta y por el tiempo que das para servir a otros, Dios te bendiga.
Hola!
Eliminarpodrías optar por filtrar con la condición O (en 10 filas) una por año de manera similar a como te indicaba.. aunque sería algo pesado.
Otra opción es añadir una columna auxiliar a tu origen de datos con la fórmula
=MES(fecha)
y luego aplicar sobre ese campo el filtro (=8)
Saludos cordiales
Si, creo que lo mejor es añadir una columna auxiliar. Muchas gracias Ismael!!
Eliminar;-)
EliminarSlds
Buen día...
ResponderEliminarEstoy realizando una validación de datos, tengo la columna A en donde tengo que ingresar algún número del 1 al 5, y en la columna B si en la columna A seleccione 2 debe aparecer 20 ó 21 pero si es algún otro valor debe aparecer en blanco, en la columna C si selecciona en la B 20, debe aparecer 30 ó 31 de lo contrario en blanco, el detalle que tengo es que si en la columna A selecciono 1 o 3,4 y 5 previo a que en la celda coloque el número 2 las celdas de la columna B y C no se ponen en blanco automáticamente.
Recibe un cordial saludo y en espera de un comentario...
Hola Benjamín,
Eliminares normal que valores introducidos no cambien al variar la primera celda de la columna A.
Ten presente que esto es una regla de validación de datos al introducir valores en una celda... otra cosa es que nos aprovechemos y explotemos sus posibilidades.. pero esta funcionalidad no lleva asociada ninguna fórmula en la celda, por lo que es normal que no actualice.
Lo que pretendes, en todo caso, se podría conseguir programando un evento _Change en la hoja que limpiara los valores de esas celdas antes cualquier cambio en ellas...
Saludos cordiales
Hola disculpen sé que esto ya tiene sus años, pero busco de su valiosa experiencia y gurú en estos temas, es por ello que les pido de favor me pudieran ayudar, pues tengo un archivo que tiene 2 columnas con lista desplegables la columna A es la principal y lo que se coloque en ella, la segunda columna valida lo que se coloque en la primera y otorga una lista desplegable, pero busco que si en la columna A cambian lo que pudieron elegir de la lista desplegable a otra opción de la misma lista, que borré la celda de la columna B, para que el usuario vuelva a seleccionar dentro de la columna B lo que se eligió en la columna A. Ojalá y pudieran con su vasta experiencia una gran ayuda me serviria muchísimo.
EliminarHola,
Eliminaracciones del tipo que comentas solo se podrían realizar con programación...
Yo aplicaría un evento hoja _Change para que detecte el cambio en esa columna A y borre la celda correspondiente de la columna B
Espero haberte orientado
Sdls
Hola, espero me puedan ayudar.
ResponderEliminarQuiero hacer una formula para textos en excel, de manera tal que si la celda A2 tiene una lista de tres opciones al escoger la primera el resto de las celdas de esa columna cambien con los textos correspondientes y así con la elección de cada opcion en A2.
Ejemplo A2: Posee perro y las opciones que se desplequen en cada cela sean la razas de perros. Saludos
Hola Cris,
Eliminarno me queda claro si hablas de una Validación de datos en celdas de un rango o de fórmulas para cambiar el resultado...
Podrías aclarar un poco el planteamiento??
Un saludo!
amigo, necesito saber si se puede con el 0
ResponderEliminarque en a1 puedan seleccionar 0 y 1 y segun ello en b1 aparezca 0a9 y 0a2
a1= 0
b1= 0 1 2 3 4 5 6 7 8 o 9
o
A1= 1
B1= 0 1 o 2.
Hola Patricio,
Eliminarel mecanismo es exactamente el mismo que el descrito...
El problema, por eso del detalle expuesto y el uso de un guión bajo (cualquier otro caracter valdría), es que un número sólo no lo admitiría como nombre definido..
Por eso en A1 pondrías la validación de datos tipo Lista con valores: 0 y1
y en B1 la validación con la fórmula indicada..
Por otro lado debes tener tus dos listas en dos rangos, por ejemplo
D1:D10 con el nombre definido '_0'
y
E1:E3 con '_1'
Saludos
Este comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarFavor ayudeme a personalizar con validacion de datos una celda en la cual debe constar asi H- #### una H permanente y cuatro caracteres como numeros
ResponderEliminarLe agradecere mucho
Hola!
Eliminaraplica una Validación de datos personalizada con la siguiente en la celda D5:
=Y(IZQUIERDA(D5;2)="H-";LARGO(DERECHA(D5;LARGO(D5)-2))=4;ESNUMERO(VALOR(DERECHA(D5;4))))
Saludos
Este comentario ha sido eliminado por el autor.
ResponderEliminarnecesito encontrar la forma de hacer lo siguiente, tengo las columnas A,B,C , si en la columna A coloco la letra "X" en la columna b y c no me debe permitir colocar ninguna letra;
ResponderEliminaro si es en la columna B donde coloco la letra , las columnas a y c no me deben permitir colocar la letra X y si es en la columna C donde coloco la letra, las columnas a y b no deben permitirme colocar nada
Hola Diego,
Eliminarselecciona las tres columnas A:C (el rango que necesites), y suponiendo tu celda activa esté en la fila 1, accede a la Validación de datos > Personalizada e incluye la siguiente fórmula:
=CONTARA($A1:$C1)=1
Saludos
Favor su ayuda..
ResponderEliminarBunos Dìas Ismael que tal, necesito saber como hago para colocar en una celda dos valores distinto y que cada uno este condicionado con distinta formulas, para trabajar con la misma celda dentro de cada formula. Tengo la función “=SI(J=10;(A2+B2)*10/100+E2;SI(J=29(C2>D2);D2/2+C2;C2/2+D2)+E2)”, me esta mostrando error de funciòn.
ResponderEliminarExplicación: Son dos datos distintos 10% y 15% validado dentro la misma celda, la formula de 10% es (A2+B2)*10/100+E2; y la formula de 15% cada celda tiene un porcentaje distinto, es decir; C2=5% y D=7%, luego de sacar cada porcentaje, se procede a la formula (C2>D2);D2/2+C2;C2/2+D2)+E2).
Muchas Gracias por tu colaboración
Hola Juan Carlos,
Eliminardiscúlpame pero no comprendo... ¿quieres que aparezca al mismo tiempo en una sola celda dos valores distintos??..
si es esto lo que necesitas, en principio, no es posible tal cosa.
Si puedes explicar algo mejor lo que pretendes...
;-)
Slds
Muchachos, como están? si quisiera hacer esto con una macro? se podría?
ResponderEliminarHola Jefferson,
Eliminarsí, claro.. se podría, empleando ComboBox o ListBox...
pero el trabajo sería más laborioso.
Tendrías que emplear el evento _Change (por ejemplo) en el primer ComboBox para realizar la carga del segundo ComboBox dependiente, en función del .Value desplegado en el primero...
Slds
Hola, me gustaría hacer esta pregunta. Tengo una hoja con tres columnas, Columna A: Paises; Columna B: Emisiones; y, Columna C: Número. Como puedo aplicar en la columna C, una regla de validación, para que no se dupliquen los registros, pero en función de las 3 columnas. Es decir, que en la columna C, que normalmente son números, me permita duplicarlos, pero que siempre que no sea el mismo país y la misma emisión.
ResponderEliminarHola Antonio,
Eliminarimagina tus datos en el rango A1:C9, con los datos distribuidos por los campos que indicas:
Paises - Emisiones - Número
Selecciona el conjunto de datos desde A2 a C9, asegúrate que la celda activa es la A2... y entra en la validación de datos > tipo Personalizada e introduce la siguiente fórmula
=CONTAR.SI.CONJUNTO($A$2:$A$9;$A2;$B$2:$B$9;$B2)=1
Saludos
Hola Ismael, muchas gracias, por tu contestación. He probado la formula que indicas, pero en el momento que un registro se repita Países y Emisiones, ya no me permite cambiar el campo Número. Y sí debería permitirlo. Lo que no puede permitir es repetir el duplicado en los 3 campos, pero sí en dos. A ver si me ayudas a conseguirlo, porque estoy harto de pensarlo y no lo consigo. Gracias.
EliminarHola Antonio,
Eliminaren el primer comentario indicabas:
que en la columna C, que normalmente son números, me permita duplicarlos, pero que siempre que no sea el mismo país y la misma emisión.
Por eso la solución.
Si no quieres que se repita el duplicado en los 3 campos, pero sí en dos
Añade la tercera condición dentro de la función
CONTAR.SI.CONJUNTO
que te indicaba
Un cordial saludo
Muchas gracias, ahora lo he conseguido. No sabe la de vueltas que le he dado a esto. Por fin. Muchísimas gracias.
EliminarHola,
ResponderEliminarAnte la previsión de que mis rangos cambien y se tengan que introducir más referencias a los rangos, los definí con valores vacíos y me serví de laS funciones DESREF y CONTARA para que la lista de validación mostrase únicamente los valores no vacíos de dichos rangos. La fórmula que introduje en la celda es la siguiente:
=SI(F2=M1;DESREF(XEL1046752;1;;CONTARA(CONN2));SI(F2=N1;DESREF(XEO1046752;1;;CONTARA(GALX2));SI(F2=O1;DESREF(XER1046752;1;;CONTARA(MOND2));SI(F2=P1;DESREF(XEU1046752;1;;CONTARA(SMAX2));""))))
Mi problema es que con esta fórmula, la validación de datos no me impide introducir cualquier valor, incluso si no está en ninguno de estos rangos, con lo cual todo mi trabajo carece de resultado. ¿Alguien puede ayudarme para completar mi fórmula?
Muchas gracias.
Hola Carlos,
Eliminarlo ideal es que conviertas tus rangos en Tablas y luego le asignes un nombre definido a ese lsitado... posteriormente podrás emplear en tu validación de datos tipo lista el nombre definido.
Si revisas la categoría del blog 'Asignar nombres definidos' verás diferentes ejemplos de esta práctica.. más simples que la que intentas
;-)
Saludos
Muchas gracias por la respuesta Ismael,
EliminarSiguiendo tu consejo lo he hecho mediante tablas, pero me surgen dos problemas:
1 - Al tener tablas de Excel, no puedo Compartir el libro. Sería lo deseable ya que quisiera que dos o más usuarios pudieran acceder a él, no es imprescindible pero sería perfecto. ¿Hay alguna forma de compartirlo pese a que existan tablas de Excel?
2 - Este es un problema aparte, con el resto del código. Básicamente lo que hace el código de este archivo es cortar la fila de la tabla cuya celda final tenga un determinado valor, para luego pegarla en otra hoja, bloquear y ocultar esta última, y volver a la primera. El objetivo es tener un histórico de los registros que se van eliminando pero que los distintos usuarios no puedan acceder a esa hoja, ya que se pueden confundir, y solo yo tengo la contraseña. Mi problema es que al añadir estas dobles validaciones, tuve que añadir una columna más a la tabla, para seleccionar primero el modelo, y luego la otra que según el modelo indica unas características u otras. En medio del código para hacer todo esto, antes de hacer la doble validación tenía:
ActiveSheet.Range("$A:$J").AutoFilter Field:=10, Criterial:="=CERRADO"
Mientras que ahora, al haber añadido una columna, y estar el campo que quiero filtrar más a la derecha puse:
ActiveSheet.Range("$A:$K").AutoFilter Field:=11, Criterial:="=CERRADO"
Además de este cambio, he realizado otros para que las acciones que realizo abarquen toda la tabla en su nueva extensión. Sin embargo, al ejecutar, aparece el error 1004 en tiempo de ejecución: Error en el método AutoFilter de la clase Range, señalando a esta línea de código en concreto que acabo de detallar. En la tabla antigua no tuve ningún problema ¿Qué puedo estar haciendo mal?
¡Muchas gracias de nuevo!
Hola,
Eliminara la primera pregunta: No hay forma de 'Compartir libro' con tablas... tendrías que emplear otras herramientas como One Drive de MS
Segunda cuestión:
probaría a quitar primero el filtro y luego a aplicarlo... no se me ocurre que otra cosa puede estar mal ??
Saludos
HOLA COMO PUEDO PONER DOS VALIDACIONES PARA UNA MISMA CELDA COMO POR EJEMPLO Q SOLO TENGA 9 DIGITOS Y QUE A SU VEZ NO SE REPITA EN OTRA CELDA
ResponderEliminarHola,
Eliminarpuedes añadir una validación personalizada con una fórmula de este estilo:
=Y(largo(celda)=9;contar.si(rango; celda)=1)
Esa es la idea
Saludos
Buena tarde
ResponderEliminarquiero dos validaciones para una misma celda una que no me permita ingresar duplicados y otra que me permita ingresar solo los datos que esten dentro de un listado
Hola
Eliminarrevisa comentarios anteriores por que la pregunta está ya casi contestada.. aplica una validación personalizada con una función Y que verifique las dos condiciones:
1- duplicados (ver Comentario previo -justo encima)
2-valores de una lista... OJO sin que aparezca el desplegable - quizá con un ESRROR y BUSCARV que localice el valor introducido en la celda en la lista
Espero te oriente
Saludos
Hola!
ResponderEliminarTengo una lista de nombres de archivos y dependiendo el nombre de dicho archivo, debo asignarle un código con letras y números por ej: P_002.
Intenté hacerlo siguiendo el ejemplo que muestras más arriba pero no está funcionando. Por favor podrías guiarme?
Gracias!
la lista es bastante extensa y el nro. de código depende puntualmente de si en la fila que contiene los nombres hay un texto u otro.
EliminarClaro! te envié un correo. Muchas gracias!!
Eliminar