Dudas y consultas sobre Excel

laZAr0

No ha pasado mucho tiempo desde que pregunté en el offtopic de este subforo si podía hacer preguntas o consultas de ofimática cuando me surgió una duda en Excel. Entonces me animaron a crear un hilo, porque a los informáticos también se les da bien programar en Excel. Hoy es el día; me ha surgido una duda y he visto la ocasión para hacerlo.

Si tenéis dudas de ofimática, o queréis compartir vuestra sapiencia de forma altruista, éste es vuestro hilo. Animo a todos los que tengan dudas a que las expongan, igualmente pido a los más eruditos en la materia que se animen a colaborar y ayudar. Muchas gracias por todo, empezamos:

Expongo mi caso:

spoiler

En #9 he puesto un ejemplo más claro de lo que pretendo explicar.

Muchas gracias.

Tencru

De donde sale el valor de la tabla 1 y la tabla 2?

Por ejemplo tabla 1 Aa 43224 y en tabla 2 Aa es 145145 a la vez que Aa es 683568

#1laZAr0:

en la celda F2 calcule 343219,00 (valor de NN en la tabla 1)

F2 no corresponde a 43219 tabla 1 y 454315 tabla 2?

1 1 respuesta
laZAr0

#2 Los valores de la tabla 1 son estándares de la empresa, no salen de ningún sitio. Lo que en la tabla 2 da 145145 no es es el Valor de AA, porque el valor de AA es el que aparece en la tabla 1.

145145 simplemente es el código de la operacion número 8, que se añade manualmente y no interviene en el cálculo, podría no existir directamente y no hacía falta ponerlo para la duda.

Digamos que la operación 1 tiene el código 454315, esa operación se lleva a cabo en el mercado NN (Aa, Bb, Cc, Dd, Ee, etc.) y tenemos dos valores de esa operación que son C y K.

Ahora falta calcular el Y de la Op nº1, multiplicando K de la Op nº1 por el valor de J que corresponda con su mercado NN (los valores asociados a cada NN son los J de la tabla 1).

¿Se entiende mejor?.

Voy a modificar las tablas por algo más sencillo.

1 respuesta
Tencru

#1 #3

#1laZAr0:

Necesito que la columna [Val Y] de la tabla 2 arroje en cada celda el valor de la multiplicacion de: K para su fila por J de la tabla 1 en funcion de NN que aparezca en la tabla 2. Es decir, Multiplicar K por el valor de NN de la tabla 1 que se corresponda con el NN que aparece en la fila de ese K.

=si(Y(c2:c11="Ee";hoja1!A2:A11="Ee");k2*hoja1!J6;"nada")

Creo que lo he hecho bien. has uno para cada celda de F

Si vas a cambiar los valores de hoja2c2:c11 y hoja1!A2:A11 has de hacer un =si(y( con todos los posibles, luego arrastra para abajo y listo, añade $ ;)
Antes de hacer la formula completa has la primera que te he puesto por si acaso me he equivocado, si te da bien pues terminala:
=si(Y(c2:c11="Ee";hoja1!A2:A11="Ee");k2*hoja1!J6;si(y(sigue tú ;)

=$I19 fija horizontal
=I$19 fija vertical
=$I$19 fija vertical y horizontal

1 1 respuesta
laZAr0

#4 Me arroja "nada", creo que te has confundido y donde pones J6 quieres decir B6 y donde pones K2 quieres decir E2.

De todos modos sigue sin hacer lo que quiero. De esa manera que pones tú sólo vale para cuando en la celda haya Ee. Ahora bien, imaginemos que dentro de un tiempo voy a introducir la operación número 2000, yo no sé si será Ee, será Aa, será Ii o cualquier otra posibilidad que incluso ahora ni exista y se añada después a la tabla.

¿Si en lugar de tener sólo 10 diferentes NN como tengo ahora (de Aa a Ii) tuviese digamos 50.000, cómo voy a añadir todas las posibilidades a mano en la fórmula? :(

2 respuestas
Tencru

#5 Pasa la tabla, te hago el primero y ves lo que he hecho

1 1 respuesta
laZAr0

#6 lee el post de arriba que lo he editado. Creo que no me he expresado bien o puede que no te entienda.

Voy a ir a cenar y luego pongo lo que haga falta que me están esperando, perdoname y gracias.

Tencru
#5laZAr0:

De todos modos sigue sin hacer lo que quiero. De esa manera que pones tú sólo vale para Ee.... ahora bien, yo no sé si la operacion 123, 200 o 25 será Ee, será Aa o será Ii.... Si tengo digamos 300 valores diferentes de NN, ¿Cómo voy a añadir todas las posibilidades a mano?.

Para eso tendrías que hacer lo que te dije

=si(y(hoja2!c2="Aa";hoja1!A$2:A$10="Aa");e2*hoja1!B$2;
si(y(hoja2!c2="Bb";hoja1!A$2:A$10="Bb");e2*hoja1!B$3;
si(y(hoja2!c2="Cc";hoja1!A$2:A$10="Cc");e2*hoja1!B$4;
si(y(

tienes que hacer un si(y( con cada NN de la hoja 1, Aa Bb Cc Dd Ee Ff Gg Hh Ii

Siempre repite si c2 si c2 si c2 con cada NN

1 1 respuesta
laZAr0

#8 Muchas gracias por la respuesta.
https://docs.google.com/spreadsheets/d/1tRbP30CG2_rN1axrGboeTw4hOpnlJ5NIFc2pEyiuaAI/edit?usp=sharing

Aún así, a ver si puedes entrar ahí, porque cuando hay muchas variables o posibilidades hacer esa fórmula no es viable.

Habría que buscar la manera de que coja los datos de la otra tabla sin tener que hacerlo todo a mano. Imagina que en lugar de 289 especies de animales hubiese 300.000 posibilidades y cada una tiene su valor, se pueden ir añadiendo animales cada día a la tabla a razón de los informes que recibas diarimanete en el que se te detallan cuantos animales de cada especie se han introducido. Por ejemplo hoy se han introducido 6 gorilas, 3 zorros y 5 leones, (...) ,etc. Tú pasas los datos a la tabla de la derecha y al lado te aparece el valor.

¿En serio no hay ninguna manera más rápida que hacer todas esas fórmulas así? ¿No hay ninguna manera para decirle a excel que lea directamente los datos de las dos tablas y busque la coincidencia?.

Estoy seguro de que tiene que poderse hacer, y no debe de ser muy difícil, porque es tan sencillo como decirle a excel a la hora de multiplicar que busque en esa columna el valor igual que el de la celda que le indicas.

Lexor

que editen el hilo y lo pongan en plural o que lo pongan mas formal pero yo tambien puede que me pase a hacer alguna pregunta xd

laZAr0

@Tencru he intentado hacer como me dijiste y no me sale. No entiendo la utilidad de la función SI(Y en este caso.

Es decir, la función funciona así: =SI(Y(valor lógico 1 verdadero; valor lógico 2 verdadero); resultado si verdadero; resultado si falso)

En este caso:
Valor lógico 1 verdadero: hoja2!c2="Aa"
Valor lógico 2: hoja1!A$2:A$10="Aa"

¿Qué hace el valor lógico 2 ahí?, ¿cómo sirve para relacionarlo con el valor lógico 1?. Entiendo que para que arrojara el "valor si es verdadero" le estás diciendoa la función que arroje el "valor si verdadero" cuando Aa de C de la hoja 2 y Aa de A:A de la hoja 1 estén en la misma fila, y no le encuentro mucho sentido.

Si no te importa, cuando tengas tiempo, échale un vistazo a https://docs.google.com/spreadsheets/d/1tRbP30CG2_rN1axrGboeTw4hOpnlJ5NIFc2pEyiuaAI/edit?usp=sharing, que lo estoy intentando hacer ahí.

Gracias precioso.

1 respuesta
Tencru

#11 https://support.office.com/es-es/article/usar-si-con-las-funciones-y-o-y-no-d895f58c-b36c-419e-b1f2-5c193a236d97

Y: =SI(Y(Algo es verdadero, Algo diferente es verdadero), Valor si es verdadero, Valor si es falso)

La cosa es que yo no he trabajado con rangos como los tuyos, yo lo hago 1 a 1, se te queda para ese excel una formula de 3 kilómetros y con rangos no estoy consiguiendo que funcione.

1 respuesta
laZAr0

#12 Claro, es que es una liada, para hacerlo como dices tú uno a uno, creo que sería mejor hacerlo directamente con una solo condicion con la funcion =SI a secas, como lo acabo de dejar aquí (columna D hoja 2):

https://docs.google.com/spreadsheets/d/1tRbP30CG2_rN1axrGboeTw4hOpnlJ5NIFc2pEyiuaAI/edit?usp=sharing

Llevo tiempo detrás de conseguir que eso funcione con rangos para que detecte directamente el valor que tiene que coger sin señalarlo manualmente cuando se cumpla la condición, pero no veo cómo hacerlo. :(

2 respuestas
Tencru

#13 Te va a seguir quedando una formula de la hostia, en hoja 1 lista de animales tienes 290 celdas xD

=IF(B3="Abadejo";C3*'Hoja 1'!B$2;
IF(B3="Abalone";C3*'Hoja 1'!B$3;
IF(B3="Canguro";C3*'Hoja 1'!B$71;
IF(B3="Lince";C3*'Hoja 1'!B$176
))))

Ahí llevas 4, te quedan 286 if(

1 respuesta
pezukero

#13 He copiado y pegado las dos hojas que tienes en el docs.

Puedes decir claramente con qué celdas quieres operar para realizar el cálculo? A ver si puedo ayudarte, ya que he leído tu explicación pero no me ha quedado claro.

EDITO: Quieres que la columna VALOR multiplique la columna CANTIDAD de la fila Abadejo por ejemplo y a su vez busque el valor de ABADEJO en la lista de animales de la otra hoja y lo multiplique por su valor correspondiente, no?

2 respuestas
laZAr0

#14 Claro tío, si así más o menos es cómo lo he estado haciendo hasta ahora... por eso digo, imagina que tienes una lista de libros, pueden ser miles, tiene que haber alguna manera de hacerlo xDD

#15 la idea es que en D de la hoja 1, se multiplique el C de su fila por el valor que le corresponda a ese animal en la hoja 2, pero sin tener que decirle a excel el valor que es de forma manual y hacer una ecuación gigante.

edit: Bueno ya te lo ha explicado mejor #17.

1 respuesta
Tencru

#15 si en hoja2 b2 pone abadejo busque en hoja 1 entre a2:a290 abadejo, si lo encuentra que multiplique hoja1 B"X" (correspondiente a Abadejo) * hoja2 C3

hoja2!b2=hoja!1a2:a290;hoja1!b "X" * hoja!2C3

es algo así pero no tira xd

1
pezukero

#16 Utiliza un buscarv. Prueba con esto, ponlo en la columna valor D2 y arrastralo hacia abajo.

=BUSCARV($B2;Hoja1!$A$2:$B$290;2;0)*Hoja2!$C2

1 3 respuestas
Tencru
#18pezukero:

=BUSCARV($B2;Hoja1!$A$2:$B$290;2;0)*Hoja2!$C2

Mmm ahí te fallaría el ;2;0

Porque se encontrarlo te hace un 2*Hoja2!$C2

Debería multiplicar su correspondiente en hoja1B por hoja2c2

1 1 respuesta
pezukero

#19 No falla nada:

1 1 respuesta
laZAr0

#18 Pues no sé cómo pero funciona, no conocía esa función, ¿te importaría editar el dock online que he pasado antes para ver cómo queda ahí?. Es que ahí no funciona.

2 respuestas
Tencru

#20

#21 has de permitirlo, desde ayer que te pedí xD

1 respuesta
pezukero

#21 Dame permisos que no me deja

1 1 respuesta
laZAr0

#22 #23 https://docs.google.com/spreadsheets/d/1tRbP30CG2_rN1axrGboeTw4hOpnlJ5NIFc2pEyiuaAI/edit?usp=sharing

Joder, pensaba que estaba desde el principio con la opción de editar abierta, no me di cuenta que me lo pidieras, xD. Fallo mío. A ver ahora...

B

¿No serviría también con un INDEX y un MATCH? Para buscar los elementos y no tirar de hardcore.

1 respuesta
Tencru

#25 No si ya le funciona con #18 el problema era que yo le dije de rango a2:a290 y era a2:b290 para que si encuentra en a2 tire dentro de b290

1 1 respuesta
laZAr0

#26 Seguimos comentando por aquí si quieres, lo he cerrado para protegerlo antes de que alguien pueda liarla. xD

Duda resuelta, muchas gracias a todos los que han colaborado. Que pase el siguiente (L)

1 respuesta
Tencru

#27 Si me parece perfecto, si necesitas usar desplegables yo estoy usando este addon porque con scripts no conseguía sacarlos:

Te ahorras mucho trabajo ya que te pones las listas en otra hoja aparte, te las ordenadas por categorías y para mi es mucho más cómodo

1 2 respuestas
laZAr0

#28 Voy a echarle un vistazo, parece interesante.

1 respuesta
Tencru

#29 y quizás esto también te ayude:

1

Usuarios habituales

  • laZAr0
  • rayka
  • LeeSinGafas
  • HoRTeL
  • Tencru
  • Eyvindur
  • pezukero