ArtkPur Ответов: 0

Помогите с валидатором данных с использованием или совпадает с индексом ВПР/или офсетной или ...


Что у меня есть:
Лист 1 содержит список tank_id (без дубликатов) под названием "детали" (столбцы Tank_id, Tank_Name, Nation, Turret, TArmor_front, TArmor_rear, TView_range..).
Лист 2 содержит список башен и технические характеристики, называемые "башнями". (Столбцы Tank_id, Turret_id, Turret_Name, Armor_front, Armor_rear, View_range.)
Я создал таблицу башенок под названием tblTurrets и назвал диапазон всех башенок под названием allTurrets. Я назвал диапазон Tank_id как sTank_id_turrets и я назвал диапазон Turret_name как sTurrets
есть 633 танка и более 2000 башен .

Чего я надеюсь достичь:
Я хочу, чтобы поиск проверки данных(DV) в $D$3 (столбец Turrets) листа сведений ссылался на tank_id в $A$3 листа сведений, а затем сравнивал его с tank_id в листе Turrets. Там может быть до 4 матчей. Затем заполните DV именами башенок. Затем, когда имя башни будет выбрано в DV, чтобы заполнить ячейки справа от нее.

Другая проблема заключается в том, что существуют также радиоприемники, подвески, двигатели и орудийные листы для заполнения листа "детали" DV.

1. Что мне не хватает, чтобы загрузить полный список по порядку?
2. Есть ли способ загрузить последнее значение в списке по умолчанию?
3. Как заполнить ячейки справа от DV?

Любая помощь в этом будет оценена по достоинству.

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

=INDEX(sTurrets;MATCH(A3;sTank_id_turret;0)) - работает, но получает не все совпадения, а только первое.

=VLOOKUP(A3;tblTurret;sTurrets;FALSE) - именованный диапазон не найден

=VLOOKUP(A3;allTurrets;sTurrets;FALSE) - в данный момент вычисляется ошибка

=VLOOKUP(A3;sTank_id_turret;sTurrets;FALSE)- в данный момент вычисляется ошибка

=Смещение(sTurrets;ПОИСКПОЗ($в$3; sTank_id_turret;0);0;СЧЕТЕСЛИ(sTank_id_turret;$а$3);1) -
получает нужное количество совпадений, но не первое правильное. т. е. если названия башен для tank_id 14913 были 't34 mod, Cruiser Mk1, Cz03 LTvz35, Leopard Prototype A1 и Leopard Prototype A2. Эта формула опускает t34 mod и затем добавляется в Porsche T169, который предназначен для tank_14914.

Я использовал в Формуле 1 дв:

'Turrets
   With Sheet1.Range("M3").Validation
       .Delete
       .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
           Operator:=xlBetween, Formula1:="=OFFSET(sTurrets;MATCH($A$3; sTank_id_turret;0);0;COUNTIF(sTank_id_turret;$A$3);1)"
       .IgnoreBlank = True
       .InCellDropdown = True
       .InputTitle = ""
       .ErrorTitle = ""
       .InputMessage = ""
       .ErrorMessage = ""
       .ShowInput = True
       .ShowError = True
   End With



Любая помощь в этом будет оценена по достоинству.

0 Ответов