Ayuda con Excel...

Gorobei

Miembro habitual
Mensajes
2.503
Reacciones
5.279
Hola, buenas

A ver si alguien que domine de Excel me puede echar un cable. Necesito encontrar alguna manera de poder buscar un determinado valor en diferentes columnas de la hoja de trabajo, concretamente 7, y obtener de alguna forma, el número de columnas donde se encuentre ese valor. Por ejemplo:

Valor a buscar: 17H5000

Columnas a buscar: R, V, Z, AG, AK, AO, AS

17H5000 está en las columnas V, Z y AO. Resultado que quiero tener: columnas 2, 3 y 6

17H5000 está en todas las columnas. Resultado que quiero tener: columnas 1, 2, 3, 4, 5, 6 y 7

Y así con cualquier combinación.

Hasta ahora, tenía como máximo 4 columnas en las que buscar valores, y lo solucionaba anidando funciones SI con el comando CONTAR.SI encadenado con Y, del palo: si el valor X está en las comunas 1 y 2 y 3 y 4, dame columnas 1, 2, 3, 4, si no, búscamelo en las columnas 1 y 2 y 3, si no, en las 2 y 3 y 4, si no, en las 1 y 2 y 4, etc, etc. Con 4 columnas, salen 15 combinaciones/funciones anidadas y un chorizo de fórmula de 4 líneas que acaba con 16 paréntesis, pero es que con 7 columnas, salen 127 combinaciones y ya me parece un poco inviable la cosa :sudor

No sé si me he explicado. ¿Alguna idea?
 
si tienes conocimientos de programación podrías "picarte" una macro.

otra opción podría ser pasar de excel a acces y tratar las columnas como tablas por ejemplo.

esto es lo que se me ocurre así a bote pronto

depende mucho también de lo automatizado que lo quieras, porque también podrías pone una casilla por cada columna y que se "activará" si encuentra el valor....
 
Conocimientos de programación, casi cero, así que la macro como que no.

Lo del Access tampoco, debe ir todo sobre Excel ya que se trata de una hoja de trabajo rutinario y que se usará cada día. El proceso debe ser totalmente automatizado: la celda x con el valor a buscar (que se rellena sola a partir de unos condicionantes que ya tengo) y la celda de al lado con el resultado de la búsqueda de columnas.
 
Idea: utilizar 7 fórmulas en 7 casillas en otra hoja. Cada fórmula busca en una columna, y después concatenas el resultado.

Pero todavía no entiendo lo que buscas... si resaltar el resultado, si marcar la columna, si quieres un valor numérico con la cuenta de la búsqueda,...
 
A ver si me explico mejor.

Supongamos que tenemos el valor X y lo escribimos en cualesquiera de las primeras 7 columnas de una hoja de cálculo, en cualquier fila y sin repetir en una misma columna. Por ejemplo:
A2
C6
F9
G1

Lo que me interesa es que en una celda apartada, por ejemplo, Z2, se me devuelva un resultado automático que me indique en qué columnas concretamente está el valor que busco, que en este caso sería algo así como:
ACFG, o 1367, o columnas 1-3-6-7, o algo similar.

Este proceso debe ser automático, de tal manera que si cambio el valor de columna, el resultado se actualice solo, y debe contemplar cualquier posibilidad, desde que el valor sólo esté en una columna a que esté en las 7 (hay 127 combinaciones diferentes, 1 de 7, 7 de 6, 21 de 5, 35 de 4, 35 de 3, 21 de 2 y 7 de 1).

Si creo 7 fórmulas, no sabría así a bote pronto cómo encadenarlas.
 
Si en vez de tener una celda en la que te salga "1367" no tienes 7 celdas en las que salga 1-0-3-0-0-6-7 y después concatenas estas columnas?
 
lo que propone insidius y wrc y una de las opciones que te he dado yo es mas o menos lo mismo.

Es reducir el problema a una sola columna, es decir, en lugar de intentar hacerlo todo en una sola formula (celda) es hacer una formula por cada columna

Resumiendo, tú tienees que buscar en las columnas A,B,C,D,E,F,G,H en lugar de hacer la formula por ejemplo en la celda K5 buscando por todas esas columnas sería utilizar una formula (celda) para cada columna, en K5 tendrías el resultado de la busqueda de A en K6 el resultado de la busqueda de B, y así para cada una de las columnas....

Luego puedes concatenar ese celdas (K5,K6,K7...) en otra (L5) y tendrías el resultado que estas buscando.
 
Otra pregunta... ¿ese resultado se va a utilizar para otro cálculo o sólo es para localizar la columna? ¿Necesitas el valor o que se resalte la columna?

Lo más fácil sería utilizar la búsqueda por columna y el formato condicional para el título de esa columna. Así cuando se encuentre el resultado la casilla cambia de color p.ej.
 
Gracias a todos por las sugerencias, me habéis ayudado mucho :ok

Lo he resuelto así:

El valor a buscar está en I2. Las columnas a buscarlo son A, B, C, D, E, F, G

En J2-J8 he puesto la siguiente fórmula:

Insertar CODE, HTML o PHP:
=SI(CONTAR.SI(A:A;$I$2)<>0;1;"")

Esto me devuelve el número de columna donde está el valor que busco, cambiando el 1 por el respectivo:



En la columna de al lado he puesto una fórmula matricial para copiar los valores omitiendo celdas vacías y errores:

Insertar CODE, HTML o PHP:
=SI(ESERROR(INDICE(J:J;K.ESIMO.MENOR(SI(J$2:J$8<>"";FILA(J$2:J$8));FILAS(K$2:K2))));"";INDICE(J:J;K.ESIMO.MENOR(SI(J$2:J$8<>"";FILA(J$2:J$8));FILAS(K$2:K2))))



Y ya concateno los valores como necesito, y que quede bien, con múltiples funciones SI:



Supongo que las columnas J y K podría juntarlas en una sola, pero ya me va bien así como están.

Saludos
 
Pequeño reflote .

Estoy en Numbers ,

He visto que en Excel hay muchos tutoriales , peor en numbers no hay tantos.

¿Alguna sabe como puedo hacer que una celda haga una formula en caso de que otra celda tenga un valor , pero que si esta vacía no haga nada ?

Condigo hacerlos con los condicionantes , peor no soy capaz de decirle que si la celda original esté vacía no haga nada y la deje en blanco
Captura de pantalla 2023-11-14 a las 20.23.29.png


Donde pone ese D16 es igual a 0 , yo que lo que quiero poner es que sea vacía .

Edito

Captura de pantalla 2023-11-14 a las 20.29.10.png


A ver , ya he caído como ponerle en vacío , pero no se que falla que me hace la segunda condicionante cuando no debería y me da un resultado de -50
 
Buenas.

Tengo un libro en Numbers , o excel me da igual en la que tengo 12 hojas , uno de cada mes y con los distintos destinos que ha realizado mi mujer con el coche en su trabajo.

Los km diarios , media ,totales , porcentajes , eso no tengo problema . Pero si me gustaría hacer una cosa y es ver el numero de veces que ha ido a un destino en el año.

Utilizo la formula Contar Si , donde le meto la columna que quiero que me cuente y el valor que quiero encontrar. Por ejemplo


En enero ha ido cinco veces a Villarejo de Salvanes , tres a Sevilla la nueva y cinco a Villaviciosa de Odon.

Si hago la formula en una hoja resumen con la flambea de destinos de enero y filtro por la casilla Villarejo , por ejemplo , pues no hay problema , me dice que ha ido 5 veces , pero si le añado la de febrero ya me da un error que dice :

"CONTAR.SI requiere 2 argumentos, pero contiene 3."

Vamos que tendría que hacer una formula por mes y oficina y tardo menos contándolo a mano.

¿De verdad no se puede hacer lo que pido ?
 
¿De verdad no se puede hacer lo que pido ?
He hecho copy/paste de tu post a ChatGPT....


Sí, se puede hacer lo que pides sin tener que contar manualmente, utilizando una combinación de fórmulas o consolidando los datos en Excel o Numbers. Aquí tienes varias soluciones:


---

1. Usa una fórmula de CONTAR.SI para múltiples rangos

En Excel, no puedes usar directamente CONTAR.SI para múltiples rangos, pero puedes combinarlo con SUMA para que funcione así:

=SUMA(CONTAR.SI(Hoja1!A:A, "Villarejo de Salvanes"), CONTAR.SI(Hoja2!A:A, "Villarejo de Salvanes"), CONTAR.SI(Hoja3!A:A, "Villarejo de Salvanes"))

Este ejemplo suma las apariciones de "Villarejo de Salvanes" en las columnas de cada hoja del mes (Hoja1, Hoja2, Hoja3, etc.).

2. Consolidar datos en una hoja resumen

Otra opción más eficiente es crear una hoja donde consolides todos los destinos del año en una sola columna. Luego puedes aplicar CONTAR.SI directamente sobre esta hoja. Pasos:

1. Copia y pega todos los datos de los destinos de cada hoja en una sola columna en una nueva hoja (puedes hacerlo manualmente o con VBA/macro si estás en Excel).


2. Usa la fórmula CONTAR.SI en esta hoja consolidada:

=CONTAR.SI(HojaResumen!A:A, "Villarejo de Salvanes")



Esto simplifica mucho el proceso porque tendrás todos los destinos en un solo lugar.


---

3. Usa una tabla dinámica (recomendado)

Las tablas dinámicas son ideales para tu caso, ya que permiten contar elementos por categorías automáticamente. Pasos en Excel:

1. Consolida todos los datos en una sola tabla (puedes tener una columna adicional para el mes si necesitas).


2. Ve a Insertar > Tabla dinámica.


3. Arrastra "Destino" al área de filas y "Destino" nuevamente al área de valores (selecciona "Recuento" en lugar de "Suma").


4. Filtra por destino o visualiza todos los recuentos de destinos automáticamente.



Esto te dará el número de veces que tu mujer ha ido a cada destino durante todo el año, y no tendrás que modificar nada en el futuro.


---

4. Solución en Numbers

En Numbers, puedes lograr algo similar usando una hoja consolidada:

1. Crea una hoja resumen con todos los destinos de los meses.


2. Usa la función CONTAR.SI para contar los destinos en la hoja resumen.



Ejemplo en Numbers:

=CONTAR.SI(HojaResumen::A, "Villarejo de Salvanes")


---

Conclusión

La mejor opción dependerá de tu volumen de datos y nivel de comodidad:

Fórmula manual si tienes pocos datos (opción 1).

Consolidar en una hoja si prefieres simplicidad (opción 2).

Tabla dinámica si trabajas en Excel y quieres algo automático y detallado (opción 3).


¡Dime si necesitas ayuda con alguno de estos pasos!
 
Arriba Pie