eliminar ceros en una matriz [RESUELTO]

Discute sobre la aplicación de hojas de cálculo

eliminar ceros en una matriz [RESUELTO]

Notapor Jesús Tanco » Vie Ene 08, 2021 9:05 pm

Un saludo a todos.

Tras varios días y muchas horas de pruebas, agradeceré enormemente una ayuda, ya que me encuentro en un callejón sin salida.

Tengo una matriz fuente, en la que hay varios valores =0. Quiero obtener una matriz con los mismos valores, pero donde se hayan excluido los ceros.

Lo que intento lograr:
a) Me da igual si los valores de cero salen en la matriz obtenida agrupados todos al final, (matriz obtenida= mismo número de elementos que la matriz fuente), o que la matriz obtenida carezca de valores cero, (matriz obtenida con menor número de elementos que la matriz fuente)
b) Los valores distintos de cero han de aparecer todos, y con tantas repeticiones como estén en la fuente
c) Los valores distintos de cero han de aparecer en el mismo orden que estén en la fuente

Yo he logrado una matriz parecida, pero no respeta las repeticiones. Cada valor aparece solo una vez, independientemente de las veces que esté en la fuente. Y claro, el orden tampoco está muy correcto.

Adjunto un ejemplo
Última edición por Jesús Tanco el Vie Ene 15, 2021 8:30 pm, editado 3 veces en total
OpenOffice 4.1.3 con Windows10
Jesús Tanco
 
Mensajes: 22
Registrado: Lun May 21, 2018 7:36 am

Re: eliminar ceros en una matriz

Notapor FJCC-ES » Sab Ene 09, 2021 4:23 am

Seleccione las celdas F2:F102
Seleccione el menú Datos → Filtro → Filtro Estándar
Nombre del campo: Fuente
Condición: <>
Valor: 0

Más Opciones
Seleccione la casilla Copiar Resultado En y escriba N2 la caja.
Adjuntos
Matriz.ods
(13.84 KiB) 3 veces
FJCC-ES
 
Mensajes: 742
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: eliminar ceros en una matriz

Notapor Jesús Tanco » Sab Ene 09, 2021 10:41 am

Muchas gracias por la atención y por la respuesta.

La primera solución no me vale porque al filtrar las filas con valor cero desaparecen enteras. Hay más datos, operaciones, fórmulas, etc. , en la página, y si no coinciden con las que no desaparecen... pues es un problema.

La segunda solución no la entiendo.

Descargo la matriz, y simplemente aparece una columna nueva con los datos que no sé de donde salen, porque no hay fórmula alguna. Supongo que son un simple corta/pega sobre la MATRIZ DESEADA
OpenOffice 4.1.3 con Windows10
Jesús Tanco
 
Mensajes: 22
Registrado: Lun May 21, 2018 7:36 am

Re: eliminar ceros en una matriz

Notapor FJCC-ES » Sab Ene 09, 2021 8:26 pm

Mi respuesta anterior describe solamente una solución. El texto "Más Opciones" refiere a un botón en el diálogo del filtro.
El archivo adjunto contiene una imagen el diálogo completo.
Adjuntos
MatrizImagen.odt
(43.31 KiB) 4 veces
FJCC-ES
 
Mensajes: 742
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: eliminar ceros en una matriz

Notapor tomymotiymot » Sab Ene 09, 2021 8:46 pm

Una propuesta con fórmulas. A la matriz le pongo nombre para facilitar la fórmula
Adjuntos
pruebasMatricialesTomy.ods
(24.54 KiB) 5 veces
Libreoffice 7.0.4.2 (x64) en Windows 10.
tomymotiymot
 
Mensajes: 11
Registrado: Dom Sep 08, 2013 3:16 pm

Re: eliminar ceros en una matriz

Notapor Jesús Tanco » Dom Ene 10, 2021 12:35 pm

JFCC-ES:

Muchísimas gracias. Solucionado a la perfección.
Le pido disculpas por ser tan "patoso" de haber requerido por una segunda vez su atención.

Tommy...
Igualmente muchas gracias por su atención y amabilidad en proporcionarme una solución. No sé si funciona, puesto que la versión del programa que Vd. ha empleado es posterior a la versión que yo uso, y me pide una actualización para probarlo. Tengo cientos de ficheros que utilizo caso a diario con la versión vieja, y no quiero correr riesgos de que alguna no me funcione igual. Pero, le repito mi agradecimiento
OpenOffice 4.1.3 con Windows10
Jesús Tanco
 
Mensajes: 22
Registrado: Lun May 21, 2018 7:36 am

Re: eliminar ceros en una matriz

Notapor Jesús Tanco » Dom Ene 10, 2021 8:11 pm

Perdón. Creí que estaba resuelto, pero no lo está del todo.

con las instrucciones de FJCC-ES me funciona bien, a condición de que el filtro se haga sobre casillas que tienen valores fijos. Dígitos. Números. Pero cuando los datos a filtrar son el resultado de una fórmula, de una operación... el resultado que me da está filtrado, pero no me da ese resultado, sino que en la casilla correspondiente me da la fórmula, como si la hubiese copiado. Y claro, al copiar la fórmula salen otros resultados. No es un corta/pega
OpenOffice 4.1.3 con Windows10
Jesús Tanco
 
Mensajes: 22
Registrado: Lun May 21, 2018 7:36 am

Re: eliminar ceros en una matriz

Notapor FJCC-ES » Dom Ene 10, 2021 10:21 pm

Si quiere mover los valores y no las fórmulas, puede usar el filtro y Copiar/Pegar Especial

Seleccione las celdas F2:F102
Seleccione el menú Datos → Filtro → Filtro Estándar
Nombre del campo: Fuente
Condición: <>
Valor: 0
Pulse el botón Aceptar
Menú: Editar → Copiar
Menú: Datos → Filtro → Eliminar
Seleccione la celda N2
Menú: Editar → Pegado especial. Seleccione Texto, Números y Formatos pero no Fórmulas.
FJCC-ES
 
Mensajes: 742
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: eliminar ceros en una matriz

Notapor Jesús Tanco » Lun Ene 11, 2021 9:25 am

FJCC-ES

Muchas gracias nuevamente por su atención e instrucciones.

Lamentablemente no me sirve la última solución. Conozco el pegado especial y no tengo problemas con él. Con su solución me obligo a tener que hacer esa operación de forma manual todas las veces. Mi problema es que mi trabajo es el siguiente:
1- Tengo una base de datos PRINCIPAL donde diariamente ingreso 370 líneas con 5 datos cada una
2- Tengo 18 bases de datos SECUNDARIAS vinculadas a esa primera base, en grupos de 20 líneas/ base secundaria
3- Tengo 360 bases de datos unitarias, (una por cada línea de la base PRINCIPAL) vinculadas a lasa bases secundarias.
En las bases unitarias se hacen una gran cantidad de operaciones estadísticas.

Introducir cada día los datos, abrir las bases secundarias y actualizar el vínculo, y abrir las bases unitarias y actualizar el vínculo me ocupan cerca de cuatro horas. No puedo además hacer 370 veces la operación de copia y pegado especial. Es por ello que estoy buscando una forma automática de hacer el proceso, que con solo actualizar el vínculo pueda obtener un resultado final
OpenOffice 4.1.3 con Windows10
Jesús Tanco
 
Mensajes: 22
Registrado: Lun May 21, 2018 7:36 am

Re: eliminar ceros en una matriz

Notapor tomymotiymot » Lun Ene 11, 2021 10:22 pm

El problema de actualización era por la gestión de errores. No sé si esta versión la podrás ver.

La única fórmula diferente a las tuyas era "SI.ERROR" .
No sé si hago una buena gestión de errores pues es la primera vez que uso "ESERROR"
Adjuntos
pruebasMatricialesTomy2.ods
(23.86 KiB) 11 veces
Libreoffice 7.0.4.2 (x64) en Windows 10.
tomymotiymot
 
Mensajes: 11
Registrado: Dom Sep 08, 2013 3:16 pm

Re: eliminar ceros en una matriz

Notapor Jesús Tanco » Mar Ene 12, 2021 5:42 pm

Tomy...

EXACTO!!. Esto es lo que necesitaba. Pero aún no me lo resuelve del todo porque mis limitados conocimientos en funciones en operaciones matriciales no me da para estas funciones concretas que empleas. Voy a necesitar un poco más de tu amabilidad.

¿Qué modificaciones he de hacer para cambiar de columna?. En el ejemplo los datos están en la columna "a" pero no veo en la fórmula ninguna referencia a esa columna. Supongo que se indicará de alguna manera en alguna de las funciones, pero no sé donde.

¿Qué modificaciones he de hacer para un número diferente de datos?. En el ejemplo hay 100 datos -> de a2:a101. No veo donde o como se indica esto. ¿Cómo hago si tengo 150 datos?, ó 300, ó 500 ...
OpenOffice 4.1.3 con Windows10
Jesús Tanco
 
Mensajes: 22
Registrado: Lun May 21, 2018 7:36 am

Re: eliminar ceros en una matriz

Notapor tomymotiymot » Mar Ene 12, 2021 7:11 pm

Pues es lo más sencillo. Hay un intervalo con nombre llamado MATRIZ (quizá el nombre hace que parezca una función) que abarca el rango de celdas de la columna que llamabas MATRIZ FUENTE. Pulsando Ctrl + F3 creo que te aparecerá la gestión de nombres.

Todo ese tema está muy bien documentado en la ayuda
Libreoffice 7.0.4.2 (x64) en Windows 10.
tomymotiymot
 
Mensajes: 11
Registrado: Dom Sep 08, 2013 3:16 pm

Re: eliminar ceros en una matriz

Notapor Jesús Tanco » Mié Ene 13, 2021 5:39 pm

Bueno, parece que me voy acercando...

Tomy..., parece que "casi" lo tengo.
Lo primero que veo en la hoja de datos que subiste con tu fórmula, es que si se insertan columnas, la fórmula funciona igual, pero si se insertan filas, se "desbarajusta" (insertar fuera de las matrices, naturalmente). No es un problema, pero hay que tenerlo en cuenta
Adjunto un "extracto" de una hoja de trabajo. Verás que he ingresado tu fórmula pero, ignoro la causa, FILAS($2:$H2) permanece inalterable en todas las filas, cuando es el dígito al lado de la H la única variable a lo largo de todas las casillas de la fórmula que tú hiciste. (2.3.4...)
Supongo que esa es la causa de que todos los resultados sean 179
Pero...¿Por qué a mi no me cambia ese dígito?

Tampoco entiendo por qué de la H. Esa columna está fuera de las casillas de interés,... pero si funciona... Vale, Pero si fuera posible me gustaría entender.

Gracias por tu paciencia.

Ah.! verás que está mi fórmula aplicada a otra columna, pero podría servir igual... si fuera capaz de hacerla funcionar para un número de filas mayor que 100. Pero no me sale bien
Adjuntos
TALLER.ods
(25.61 KiB) 5 veces
OpenOffice 4.1.3 con Windows10
Jesús Tanco
 
Mensajes: 22
Registrado: Lun May 21, 2018 7:36 am

Re: eliminar ceros en una matriz

Notapor tomymotiymot » Jue Ene 14, 2021 12:44 am

Hola, te mando un archivo a ver si lo pongo mejor explicado. Soy bastante nuevo en esto y quizá sea el menos indicado para explicar esto.

El desajuste de filas es por una parte de la fórmula fila(referencia) -fila($c$8)
fila($c$8) es la fila superior al inicio del rango referencia.

la fórmula filas($a$2:a2) es el inicio de un contador, pero perfectamente valdría filas(a$2:a2) y así no se desplaza, aunque el resultado es el mismo.
El problema de que te daba todo 179 es porque al copiar, pegar y modificar debió haber algún fallo pq en mi archivo funcionaba.

Te envío el archivo con 50 registros pero para pasarlo a 50.000 solo hay que modificar el intervalo "referencia".

Espero que te siva de ayuda
Adjuntos
pruebasMatricialesTomy3.ods
(27.68 KiB) 5 veces
Libreoffice 7.0.4.2 (x64) en Windows 10.
tomymotiymot
 
Mensajes: 11
Registrado: Dom Sep 08, 2013 3:16 pm

Re: eliminar ceros en una matriz

Notapor Jesús Tanco » Jue Ene 14, 2021 10:25 pm

Bueno, el pruebasmatriciales2 a medida que lo voy conociendo me está funcionando, PERO...

Tengo varias hojas (o páginas) en el mismo archivo. Y el problema es que para poner la fórmula en todas, no basta copia/pega porque hay que poner un nombre a cada matriz en cada página y ¡sorpresa!, hay un nombre (For) que no tengo idea para que sirve (es una formula condicional), pero es necesario que a cada matriz le asigne su correspondiente For, porque si no, entonces no funciona. Así podría decirse que ya está resuelto, pero me parece muy engorroso tener que meter tantos nombres, dos por página.

He probado a quitar el nombre de MATRIZ y sustituirlo por su valor ($P$2:$P$500) en la fórmula de la página, y funciona, y a los correspondientes nombres For también he sustituido Matriz por su fórmula, y funciona. Pero no encuentro la manera de deshacerme de For como nombre, porque no sé donde está en las formulas o en las hojas. Veo que es una función condicional, pero no sé donde está, a parte de el panel de nombres. Si pudiera eliminar el nombre y sustituirlo por su fórmula en la página, como he hecho con MATRIZ, se podría hacer un corta/pega y sería mucho menos trabajoso. No sé si será posible.

Otra cosa: Aunque seas nuevo en esto, yo creo que lo estás haciendo bastante bien. Quizá el problema esté en mi, y no en ti. O quizá es que el asunto "tiene tela"
OpenOffice 4.1.3 con Windows10
Jesús Tanco
 
Mensajes: 22
Registrado: Lun May 21, 2018 7:36 am

Re: eliminar ceros en una matriz

Notapor tomymotiymot » Vie Ene 15, 2021 4:06 pm

En el archivo2 realmente no se una la fórmula for. En el archivo2 deberías poder borrarla y matriz lo tienes muy sencillo, al poner la fórmula solo tienes que poner el rango de datos $P$2:$P$500 en vez de MATRIZ. Solo lo puse por facilitar la comprensión.
Un saludo
Libreoffice 7.0.4.2 (x64) en Windows 10.
tomymotiymot
 
Mensajes: 11
Registrado: Dom Sep 08, 2013 3:16 pm

Re: eliminar ceros en una matriz [RESUELTO]

Notapor Jesús Tanco » Vie Ene 15, 2021 8:34 pm

Gracias Tomymotiymot. Al fin lo he resuelto satisfactoriamente. No hubiera podido sin tu ayuda. Y gracias por tu paciencia.

Igualmente Gracias FJCC-ES por tu interés y el tiempo que has dedicado a intentar ayudarme.

Muy agradecido a ambos
OpenOffice 4.1.3 con Windows10
Jesús Tanco
 
Mensajes: 22
Registrado: Lun May 21, 2018 7:36 am


Volver a Calc

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados