
Esta fórmula funciona pero es enorme:
=IF(X3=B2,K2,IF(X3=B3,K3,IF(X3=B4,K4,IF(X3=B5,K5,IF(X3=B6,K6,IF(X3=B7,K7,IF(X3=B8,K8,IF(X3=B9,K9,IF(X3=B10,K10,IF(X3=B11,K11,IF(X3=B12,K12,IF(X3=B13,K13,IF(X3=B14,K14,IF(X3=B15,K15,IF(X3=B16,K16,IF(X3=B17,K17,IF(X3=B18,K18,IF(X3=B19,K19,IF(X3=B20,K20,IF(X3=B21,K21))))))))))))))))))))
Esto es lo que está haciendo:
If X3 is the same as B2, show the contents of cell K2.
If X3 is the same as B3, show the contents of cell K3.
If X3 is the same as B4, show the contents of cell K4.
...etc etc etc all the way to...
If X3 is the same as B21, show the contents of cell K21.
Dado que B2:B21 es simplemente una columna de celdas y K2:K21 también es solo una columna de celdas, ¿hay alguna forma de acortar la fórmula anterior para que no sea enorme?
No sé cómo convertir esto en 2 rangos de células B y células K.
Probar algo como esto no funciona:
=IF(X3=B2:B21,K2:K21)
Porque decirle a Excel que use :
es decirle que sume todo, desde B2 a B21 y K2 a K21. Me preguntaba si hay algún otro separador (no un :
) que le indique a Excel que trate cada celda individualmente en lugar de sumarlas.
Esto no funciona:
=IF(X3=B2-B21,K2-K21)
Eso resulta en:#VALUE!
El problema es que cualquier número de la celda B también debe coincidir con el número correspondiente (horizontalmente) en la celda K.
Gracias de antemano a cualquiera que pueda saber la respuesta, que estoy seguro es realmente simple si la funcionalidad existe en Excel.
Respuesta1
Respuesta2
=VLOOKUP(X3;B2:K21;columns(B2:K2))
- Busque el valor de X3̈́ entre B2:B21, (primera columna del rango)
- cuando lo encuentre, seleccione y muestre el valor B2:K2-columns a la derecha del mismo.
... y Sí BUSCARV requiere un argumento más, que normalmente se revela cuando escribes el nombre de la función, o incluso cuando presionas F1 (Ayuda).
El valor predeterminado de ese argumento es True
, por lo que no es necesario escribirlo en ese caso, pero si necesita una coincidencia exacta en el primer argumento, entonces es necesario decir "Falso" aquí.
Agregue IFERROR(...;"Not found")
alrededor para mostrar su indicación de "no se encontró nada".
--- archivo: ejemplo.csv --- Se usa M4 en lugar del X3 anterior
,,,,,,,,,,,, ,1,,,,,,,,,A,, ,2,,,,,,,,,B,,"=BUSCARV(M4;B2:K21;10;Falso)" ,3 ,,,,,,,,,C,,5 ,4,,,,,,,,,D,, ,5 ,,,,,,,,,E,, ,6,,,,,,,,,F,, ,7 ,,,,,,,,,G,, ,8 ,,,,,,,,,H,, ,9 ,,,,,,,,,yo,, ,10,,,,,,,,,J,, ,11,,,,,,,,K,, ,12,,,,,,,,,L,, ,13,,,,,,,,,M,, ,14,,,,,,,,,N,, ,15,,,,,,,,,O,, ,16,,,,,,,,,P,, ,17,,,,,,,,,Q,, ,18,,,,,,,,,R,, ,19,,,,,,,,,S,, ,20,,,,,,,,,T,, ,21,,,,,,,,U,,
Respuesta3
Como mínimo, podemos deshacernos de los paréntesis adicionales usandoIFS
:
=IFS(X3=B2,K2,X3=B3,K3,X3=B4,K4,X3=B5,K5,X3=B6,K6,X3=B7,K7,X3=B8,K8,X3=B9,K9,X3=B10,K10,X3=B11,K11,X3=B12,K12,X3=B13,K13,X3=B14,K14,X3=B15,K15,X3=B16,K16,X3=B17,K17,X3=B18,K18,X3=B19,K19,X3=B20,K20,X3=B21,K21)
Esta es una simplificación general que funciona siempre que tengas IF
funciones anidadas como esa, incluso si las diferentes condiciones y resultados no tienen nada en común.
Sin embargo, en su caso hayesun patrón simple para las condiciones, y podemos simplificar aún más su expresión, por ejemplo, usandoXLOOKUP
:
=XLOOKUP(X3, B2:B21, K2:K21)
Tenga en cuenta que XLOOKUP
es una característica nueva en Excel 2021 y es posible que no funcione en versiones anteriores de Excel. Para esas versiones, puede lograr el mismo resultado usandoINDEX
yMATCH
, como en:
=INDEX(K2:K21, MATCH(X3, B2:B21, 0))
o usandoVLOOKUP
:
=VLOOKUP(X3, B2:K21, COLUMNS(B2:K2), FALSE)
Sin embargo, donde sea compatible, XLOOKUP
es probablemente la solución más conveniente en este caso, y también admite varios parámetros adicionales que le permiten especificar cómo se realiza la búsqueda y qué hacer en caso de que no se encuentre una coincidencia exacta.
(También tenga en cuenta que será necesario modificar las soluciones INDEX
/ MATCH
y VLOOKUP
, o es posible que no funcionen en absoluto, si desea, por ejemplo, buscar a lo largo de una fila en lugar de una columna o devolver un valor de una columna que está a la izquierda de la búsqueda columna XLOOKUP
debería .solo trabajoen todos los casos, lo cual en mi opinión es una buena razón para preferirlo siempre que sea posible).