[RESUELTO]Asignar valor a celda dependiendo de otra

Discute sobre la aplicación de hojas de cálculo
Responder
Avatar de Usuario
benalfe
Mensajes: 47
Registrado: Mié Sep 18, 2013 6:00 pm

[RESUELTO]Asignar valor a celda dependiendo de otra

Mensaje por benalfe »

Hola a todos.
Quisiera pedir vuestra ayuda a ver como debería escribir este código para que funcione.
Resulta que necesito asignar a la celda B1, un valor específico, dependiendo del valor que tenga la celda A1 y para eso, he incluido la función "=SI" en la celda C1 y le he asignado el siguiente código:
=SI(A1="a";B1="1-Alta";SI(A1="m";B1="2-Media";SI(A1="b";B1="3-Baja";0))) y éste no funciona al enviar el resultado a la celda B1.
Podría haber escrito el siguiente código en la celda B1 que sí funciona y lo tendría parcialmente solucionado, ya que devuelve el resultado en la misma celda.
=SI(A1="a";"1-Alta";SI(A1="m";"2-Media";SI(A1="b";"3-Baja";0)))
Pero el problema es que luego cuando quiero ordenar las filas por orden ascendente o descendente, no me deja, ya que las celdas con códigos permanecen protegidas y es esencial poder ordenarlas una vez tenga la lista hecha.
Espero haberme explicado claramente.
¿Alguna idea de cómo lo podría solucionar?
Muchas gracias de antemano.
Última edición por benalfe el Mar Mar 01, 2022 9:41 pm, editado 1 vez en total.
OpenOffice
Windows 10 Pro 64 bits
FJCC-ES
Mensajes: 873
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Asignar valor a celda dependiendo de otra

Mensaje por FJCC-ES »

Una función en la celda C1 no puede cambiar el valor de otra celda.
¿Cuales son las celdas que quiere ordenar? ¿Solamente la columna B o las columnas A y B? Si quiere ordenar la columna B pero que en la celda que era B1 la referencia a A1 se mantenga, escriba la fórmula con referencias absolutas.

Código: Seleccionar todo

=SI($A$1="a";"1-Alta";SI($A$1="m";"2-Media";SI($A$1="b";"3-Baja";0)))
Avatar de Usuario
benalfe
Mensajes: 47
Registrado: Mié Sep 18, 2013 6:00 pm

Re: Asignar valor a celda dependiendo de otra

Mensaje por benalfe »

Hola y gracias por responder.
En realidad lo que necesito ordenar es la fila entera que contenga datos, en este ejemplo las columnas A y B, desplazándolas hacia arriba o abajo según corresponda.
De todos modos he probado el código que me envías y causa el mismo efecto que el que aporté anteriormente, pero aún así, sigue bloqueado al proteger la página.

Código: Seleccionar todo

=SI($A$1="a";"1-Alta";SI($A$1="m";"2-Media";SI($A$1="b";"3-Baja";0)))
OpenOffice
Windows 10 Pro 64 bits
FJCC-ES
Mensajes: 873
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Asignar valor a celda dependiendo de otra

Mensaje por FJCC-ES »

¿Puede subir un archivo que muestra el problema?
Avatar de Usuario
benalfe
Mensajes: 47
Registrado: Mié Sep 18, 2013 6:00 pm

Re: Asignar valor a celda dependiendo de otra

Mensaje por benalfe »

Hola de nuevo, aquí subo el archivo.
Palabras clave.ods
(12.71 KiB) Descargado 101 veces
Aclaración: Esta es parte de una tabla para calcular el SEO con palabras clave y seleccionar las mejores según sus calificaciones.

La zona de cálculos comprende desde A3 hasta D12.
La columna A comprende Palabra clave
La columna B comprende Puntuación (con datos numéricos para ordenar)
La columna C comprende Búsquedas (con datos numéricos para ordenar)
La columna D comprende Competencia (ésta sólo contiene letras que se identifican con "a" de alta, "m" de media y "b" de baja), la idea es otorgarle valores numéricos para poder ordenarlas igual que las columnas B y C, ejemplo ("1-Alta", "2-Media" y "3-Baja"), el problema es que al proteger la página, las celdas de la columna D se protegen por el código que contienen para hacer la conversión.
Esta es la razón de utilizar una columna suplementaria para hacer los cálculos y enviar la conversión a las celdas de la columna D.
Por otro lado, los datos los ingreso desde un archivo de texto con información que voy recopilando y separados por tabulador, para que luego al pegarlos en la tabla, éstos se sitúen en las celdas correspondientes y así poderlos clasificar, situando las filas completas donde proceda.
Espero no haber liado demasiado la explicación.
OpenOffice
Windows 10 Pro 64 bits
FJCC-ES
Mensajes: 873
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Asignar valor a celda dependiendo de otra

Mensaje por FJCC-ES »

¿No sirve poner fórmulas como

Código: Seleccionar todo

=SI(D3="a";"1-Alta";SI(D3="m";"2-Media";SI(D3="b";"3-Baja";0)))
en la columna E y ordenar A1:E7 usando la columna E como clave?

Otra solución es definir una Lista Ordenada. Seleccione el menú Herramientas → Opciones. En el lado izquierdo, abra la lista OpenOffice Calc y seleccione Listas Ordenada. Pulse el botón Nuevo y en la caja Entradas escriba a,m,b. Pulse los botones Añadir y Aceptar. Después de definir la lista, permanecerá en OpenOffice. Ahora puede ordenar los datos usando el menú Datos → Ordenar. En la pestaña Ordenar Por Criterios, seleccione la columna Competencias. En la pestaña Opciones, seleccione la caja Orden De Clasificación Definida Por El Usuario y en la lista desplegable elija a,m,b.
Avatar de Usuario
benalfe
Mensajes: 47
Registrado: Mié Sep 18, 2013 6:00 pm

Re: Asignar valor a celda dependiendo de otra

Mensaje por benalfe »

Sí ya funciona, al final he visto lo que era, aunque no entiendo por qué pasa eso, pero pasa.
Resulta que al seleccionar la celda inicial para ordenar y al darle al icono de ordenar, la selección hacia abajo, se salta una fila más y esa fila está protegida, entonces me salta el error de bloqueo.
La solución ha sido utilizar este código:

Código: Seleccionar todo

=SI(D3="a";"1-Alta";SI(D3="m";"2-Media";SI(D3="b";"3-Baja";0)))
y luego cuando llego al final de la lista, dejar la última fila sin aplicarle el código, así no sobrepasa hasta la siguiente fila que ya está protegida.
De todos modos, también voy a probar a definir una nueva lista ordenada y comprobar cual resulta más cómodo.
Un saludo y gracias a FJCC-ES por la valiosa ayuda prestada.
OpenOffice
Windows 10 Pro 64 bits
Responder