Patrice T Ответов: 2

Нужна консультация по формуле excel


Всем привет,
Я столкнулся с проблемой с Формулой Excel.
У меня есть рабочая тетрадь Excel, которая играет со стальными балками.
У меня есть набор именованных диапазонов, все с одинаковой структурой: ref_ipe, ref_ipea, ref_hea, ref_heb, ref_upn, ref_upe ...
Пока все хорошо.

У меня есть такая формула, где мне нужно переключать именованные диапазоны в зависимости от пользовательских входов:
=VLOOKUP(B287,IF(A287="IPE",ref_ipe,IF(A287="HEA",ref_hea,IF(A287="UPN",ref_upn,IF(A287="TUBE",ref_tubec,ref_l)))),2,FALSE))

Эта формула работает и работает быстро, но моя проблема заключается в том, что меня просят добавить больше именованных диапазонов, и именно там становится больно добавлять все больше и больше вложенных IFs.
В качестве альтернативы я сделал это:
=VLOOKUP(B23,INDIRECT(VLOOKUP(A23,{"IPE","ref_ipe";"IPEA","ref_ipea";"HEA","ref_hea"},2,FALSE)),2,FALSE)

что очень удобно для расширения с большим количеством диапазонов, но так как косвенный является волатильным, мой лист быстро понижается, так как у меня есть тысячи формул, которые нужно изменить.

Что я уже пробовал:

Я уже пробовал
=VLOOKUP(B23,VLOOKUP(A23,{"IPE",ref_ipe;"IPEA",ref_ipea;"HEA",ref_hea},2,FALSE),2,FALSE)

но excel этого не хочет, потому что VLOOKUP не может вернуть диапазон постоянные сусла с именованными диапазонами не допускаются.

Может быть, вы знаете лучшее решение ?

Примечание: формулы могут содержать ошибки, так как они переведены с французского Excel.

CHill60

Не могли бы вы скопировать соответствующие данные в один именованный диапазон на основе рабочего листа?Изменить событие? Вам нужен @maciej-los для этого :-)

Patrice T

К сожалению, у меня есть некоторые другие ограничения, которые мешают мне сделать это.

CHill60

Я буду продолжать думать. Вот почему я использовал комментарий, а не решение :-)

CHill60

Я думаю о чем-то, использующем индекс, возможно, уходя от нескольких именованных диапазонов ... что-то вроде диапазонов в пределах диапазона. Я видел что-то подобное раньше, но я изо всех сил пытаюсь воспроизвести

2 Ответов

Рейтинг:
4

Patrice T

Кажется, я все понял.

=VLOOKUP(B23,
CHOOSE(MATCH(A23,{"IPE","IPEA","HEA"},0),ref_ipe,ref_ipea,ref_hea),
2,FALSE)

Один MATCH чтобы получить ранг пользовательского ввода и a CHOOSE чтобы выбрать диапазон.


Mehdi Gholam

5ed, хорошо знать

Patrice T

Спасибо.
Действительно, я потратил часы на эту проблему :)

CHill60

Приятно. 5 б

Patrice T

Спасибо

Рейтинг:
19

Mehdi Gholam

Я бы создал колонку для каждого из них IF() и VLOOKUP() тот, у которого есть значение (возможно, с посредником из этих столбцов, соединенных вместе)


Patrice T

Привет Мехди
Я не понимаю, что ты имеешь в виду.

Mehdi Gholam

Модель работы excel заключается в том, что вы создаете больше столбцов, то есть вместо того, чтобы писать большую формулу, разбейте эту формулу на части столбца и "сложите" их вместе в другой столбец.

Patrice T

Спасибо за вашу помощь.
Думаю, я нашел решение.

CPallini

5. да, так было бы проще.

Mehdi Gholam

Спасибо!