Autor Tema: En Excel, especificar fórmulas más rápido.

0 Usuarios y 1 Visitante están viendo este tema.

11 Noviembre, 2024, 08:29 pm
Leído 1226 veces

Tachikomaia

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,297
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
​Mi tabla tiene 2 partes.

La 1era se ve así:


La 2nda:


Explico: Hay ciertas características o condiciones, a la izquierda, y se cuenta cuántas escaleras cumplen cada una. Por ejemplo Fi es cuando el 1er contacto (first) que tuvo el personaje con esa escalera, fue por la izquierda. Si eso es true, se pone 1, y sino 0. A la derecha se suma la cantidad de escaleras que cumplieron esa condición. Los datos para eso están en otra sección que no viene al caso. No le presten atención al No, porque no viene al caso tampoco, lo copié sin darme cuenta.

La diferencia entre ambas partes es que la 2nda se basa en la 1era, es true si alguna de las 2 condiciones en la izquierda se cumple. Por ejemplo SioSd significa que la escalera fue contactadas sólo por la izquierda o sólo por la derecha. Si alguna de esas condiciones se cumple, será 1, y sino 0. El total en la derecha funciona igual, no hay problema con eso.

¿Cómo se hace la 2nda parte? Por ejemplo TsoDxA en la escalera 1 es:
=SI($B$11+B49>0; 1; 0)
en la escalera 2 es: =SI($C$11+C49>0; 1; 0)
en la 3 es: =SI($D$11+D49>0; 1; 0)
etc
En B11 está el dato de Ts para la 1er escalera, en B49 está el correspondiente de DxA.
La variable Ts se mantiene hacia abajo, en tanto en la izquierda de la 1er columna diga Ts, por eso le puse el signo de $, para que al autorellenar o como se llame, la referencia no cambie.
El problema es que cuando aparece algo nuevo en la izquierda, como en el caso de Si, tengo que cambiar esas referencias, o sea, por ejemplo $B$11 lo tengo que cambiar por $B$12, $C$11 por $C$12, y así hasta la H. Sólo 7 cambios, el resto lo autocompleto, parece poca cosa, pero la tabla es grande, las variables en la izquierda cambian muchas veces, así que esos cambios los tengo que hacer muchas veces, a menos que me den una solución mejor...

¿Qué se les ocurre?

Por ejemplo: ¿Es posible poner una referencia basada en el contenido de una celda? No sé si serviría, es una intuición. Si en la derecha, donde no se vea, pongo un número, y a cada referencia se le suma ese número, tendría que modificar 1 número nada más, en vez de 7 cosas que implican tener que presionar F2 y moverse en el contenido de la celda. Bueno, tal vez necesite modificar la referencia 1 vez, el resto lo autorelleno.​

11 Noviembre, 2024, 11:22 pm
Respuesta #1

manooooh

  • $$\Large \color{#9c57a6}\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 4,791
  • País: ar
  • Karma: +1/-0
  • Sexo: Masculino
Hola

Sinceramente no entiendo cuál es el problema.

Sería mejor entender si adjuntas una planilla con lo justo y necesario y en una hoja nueva todo lo que necesites (sin fórmulas, sólo copiando valores y esperando el comportamiento deseado).

Saludos

11 Noviembre, 2024, 11:53 pm
Respuesta #2

Tachikomaia

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,297
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
Yo no entiendo tu sugerencia, pero puedo adjuntar el archivo si a eso te refieres. Acá va. Vichalo y mostrame una imagen o algo, no te digo de modificarlo porque mi Excel es de 2013 así que puede que no pueda abrirlo si lo modificas con una versión newer.

12 Noviembre, 2024, 01:43 am
Respuesta #3

manooooh

  • $$\Large \color{#9c57a6}\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 4,791
  • País: ar
  • Karma: +1/-0
  • Sexo: Masculino
Hola

En la hoja manooooh sol se encuentra una solución.

No sé por qué la fórmula se ve rara. De todas maneras en B51 tienes que escribir:

=SI(BUSCARV(INDICE(DIVIDIRTEXTO($A51;"o";0);;1);$A$7:$H$49;COLUMNA();0)+BUSCARV(INDICE(DIVIDIRTEXTO($A51;"o";0);;2);$A$7:$H$49;COLUMNA();0)>0; 1; 0)

y luego arrastrar hacia el resto de las celdas.

Saludos

P.D. La fórmula funciona siempre y cuando tu primera columna no contenga una segunda letra "o".

12 Noviembre, 2024, 03:16 am
Respuesta #4

Tachikomaia

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,297
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
¿Me la explicas? Lo que me aparece es:
=SI.ERROR(__xludf.DUMMYFUNCTION("IF(VLOOKUP(INDEX(SPLIT($A51,""o"",0),,1),$A$7:$H$49,COLUMN(),0)+

12 Noviembre, 2024, 03:46 am
Respuesta #5

manooooh

  • $$\Large \color{#9c57a6}\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 4,791
  • País: ar
  • Karma: +1/-0
  • Sexo: Masculino
Hola

¿Me la explicas? Lo que me aparece es:
=SI.ERROR(__xludf.DUMMYFUNCTION("IF(VLOOKUP(INDEX(SPLIT($A51,""o"",0),,1),$A$7:$H$49,COLUMN(),0)+

Aquí lo menciono:

No sé por qué la fórmula se ve rara. De todas maneras en B51 tienes que escribir:

=SI(BUSCARV(INDICE(DIVIDIRTEXTO($A51;"o";0);;1);$A$7:$H$49;COLUMNA();0)+BUSCARV(INDICE(DIVIDIRTEXTO($A51;"o";0);;2);$A$7:$H$49;COLUMNA();0)>0; 1; 0)

y luego arrastrar hacia el resto de las celdas.

Se divide la columna A en mitades. Luego se suman las celdas que coinciden con cada mitad en la tabla de los valores y, si el resultado es positivo, devuelve 1. En otro caso 0.

Saludos

14 Noviembre, 2024, 03:16 am
Respuesta #6

Tachikomaia

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,297
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
Cuando pongo esto
=SI(BUSCARV(INDICE(DIVIDIRTEXTO($A51;"o";0);;1);$A$7:$H$49;COLUMNA();0)+BUSCARV(INDICE(DIVIDIRTEXTO($A51;"o";0);;2);$A$7:$H$49;COLUMNA();0)>0; 1; 0)
que lo copié tal cual lo escribiste, me pone #¿NOMBRE?
No sé a qué se refiere.

DIVIDIRTEXTO($A51;"o";0)
Parece que el hecho de poner un sólo signo de $ hace que una parte se mantenga pero la otra no. No sabía eso, me enseñaron que debía presionar F4 para que se mantenga ¿en tu caso pones el signo manualmente o hay una tecla especial para mantener sólo 1?

Le pedí a GPT que me la explique, esto es lo que sigo sin entender:
BUSCARV(INDICE(...);$A$7:$H$49;COLUMNA();0):
BUSCARV busca el valor que se ha obtenido con INDICE dentro del rango $A$7:$H$49.
El tercer argumento COLUMNA() se utiliza para determinar de qué columna se debe devolver el valor. La función COLUMNA() devuelve el número de la columna de la celda donde está escrita la fórmula. Si la fórmula está en la columna C, por ejemplo, devolverá 3.
El cuarto argumento 0 indica que se debe hacer una coincidencia exacta.
Entonces, el primer BUSCARV busca el valor 123 (o lo que sea que haya en la primera parte del texto de $A51)


Busca Fi, por ejemplo, en el rango $A$7:$H$49. Como está en la columna A, podría ser $A$7:$A$49 ¿o no?
Lo hallará en A7. ¿Y luego? No entiendo lo de COLUMNA(). De hecho no entiendo qué devuelve BuscarV ¿la coordenada donde está el valor? A7. Luego, dependiendo de en qué columna esté la fórmula, debería tomar el valor de la fila 7 y esa columna, o sea, si está en 2, la tomaría de B7 ¿pero cómo hace eso? ¿escribir COLUMNA() sustituye la columna que fue el resultado de BuscarV? ¿sustituye A por B?

Edito, a ver si esto ayuda:

Creo que mi versión, 2013, no tiene esa fórmula, porque no me aparece como opción cuando la escribo.

21 Noviembre, 2024, 04:48 am
Respuesta #7

Tachikomaia

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,297
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
Usando reemplazar en el bloc de notas separé lo que tenía escrito, cambié algunos números que sirven de referencia a qué fila mirar y con eso parece que quedó bien...
Elegí una variable random y el resultado fue mejor del que obtuve manualmente, pues me equivoqué al poner un 1 donde debía poner 0. No es una comprobación ideal pero para mí es suficiente como para seguir avanzando.

21 Noviembre, 2024, 10:45 pm
Respuesta #8

manooooh

  • $$\Large \color{#9c57a6}\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 4,791
  • País: ar
  • Karma: +1/-0
  • Sexo: Masculino
Hola

Creo que mi versión, 2013, no tiene esa fórmula, porque no me aparece como opción cuando la escribo.

Según la página oficial de Excel la función TEXTSPLIT aplica para Microsoft 365, así que no está disponible para versiones anteriores.

Parece que el hecho de poner un sólo signo de $ hace que una parte se mantenga pero la otra no. No sabía eso, me enseñaron que debía presionar F4 para que se mantenga ¿en tu caso pones el signo manualmente o hay una tecla especial para mantener sólo 1?

A1 => Pones el cursor entre la letra y el número
A|1 => Pulsas F4
$A$1 (congela la fila y columna) => Pulsas F4
A$1 (congela la fila) => Pulsas F4
$A1 (congela la columna) => Pulsas F4
A1 => Repite.

Si no puedes agregar $ manualmente en vez de apretar F4 sucesivas veces.

Por lo demás, si tus planillas no constan de funciones muy complejas te aconsejo que te pases a Google Sheets (https://docs.google.com/spreadsheets/create?hl=es) que es gratuita, incorpora varias funciones como SPLIT (DIVIDIRTEXTO) como la que usé yo, te permite trabajar en la nube y descargar en formato Excel pero con historial de cambios y es más fácil para resolver dudas.

Saludos