Доброго времени суток вопрос по массиву пытался сделать массив по трем параметрам не получилось кто сможет помочь исходя из трех параметров - 1. тип отвердителя 2. давления 3. диаметр
подбиралась толщина стенки приложил эксель там разметил расписал кого не затруднит помогите
Что вы понимаете под словом массив? Нечто разбросанное по кучкам? Чтобы что то пояснить, нужно понять, что у вас на листе что. Или вы будете ожидать специалиста в вашей области?
Gotch, тут ключевое слово не цвета , а массив. При такой структуре хранения данных найти нужные значения в разы сложнее. Не скажу, что это невозможно, ибо для VBA нет преград, но унизительно :-)
БМВ написал: Gotch , тут ключевое слово не цвета , а массив. При такой структуре хранения данных найти нужные значения в разы сложнее. Не скажу, что это невозможно, ибо для VBA нет преград, но унизительно :-)
Лучше, хоть и не совершенство, но где искать давление? И обратите внимание на предыдущий пост. В идеале покажите руками что вбито, и как найдено должно быть.
Тут простая СУММПРОИЗВ =ИНДЕКС(КакНеНадоДелать_2[Тип отвердителя];СУММПРОИЗВ(--(КакНеНадоДелать_2[Столбец1]=I3);--(КакНеНадоДелать_2[v1]=I4);--(КакНеНадоДелать_2[Давление]=I5);--(КакНеНадоДелать_2[Диаметр]=I6);--(КакНеНадоДелать_2[Толщина стенки]=I7);СТРОКА(КакНеНадоДелать_2[Столбец1]))) Подходит для всех параметров (менять диапазон поиска). Для числовых можно ИНДЕКС убрать, вместо СТРОКА ссылка на числовой диапазон При ошибочном параметре будет показана первая строка. Обход ошибки - первую сделать пустой или с ругательствами )
Сложность формулы, Возможно и проще можно, я к слову немного переделал, там два варианта в файле, но в любом случае, вариант №14 Будет на мой взгляд и легче понимаем и стабильее и .... но это просто интереснее для мозголомства =IFERROR(INDEX(F:J;MATCH(D2;D11:D165)+10-1+MATCH(D1;INDEX(E:I;MATCH(D2;D11:D165)+10;MATCH(D3;E9:J9;0)):INDEX(E:I;MATCH(D2;D11:D165)+10+IFERROR(MATCH(1=1;INDEX(D:D;MATCH(D2;D11:D165)+10+1):INDEX(D:D;165)<>"";0);ROW(A165))-1;MATCH(D3;E9:J9;0));0);MATCH(D3;E9:J9;0));"X")
возник еще один вопрос пойдем по вот этой формуле аналогичной посту 14 =ИНДЕКС(ТаблицаСталь[сопротивление];СУММПРОИЗВ(--(ТаблицаСталь[марка]=D15);--(ТаблицаСталь[прочность]=D16);СТРОКА(ТаблицаСталь[марка]))-1)
если в моей таблице встречаются марка прочность сопротивление текучесть 06Х1 К42 410 245 06Х1 К42 412 289
марка и прочность одинаковые а сопротивление разное то формула как то не корректно себя ведет как то это можно поправить? можно ли сделать что бы вывелся список и выбранное значение применить?
и подскажите что значат эти два тире - --(ТаблицаСталь[марка]=D15) для чего они служат
ну а как вы из такой таблицы выбираете глазами ? по третьему параметру,
Цитата
Gotch написал: можно ли сделать что бы вывелся список и выбранное значение применить?
Можно, но это или макросом, или выбирать каждый раз, независимо от того, единственный вариант или нет. При этом максимум что можно это выделить ячейку, если значение не из списка, но не удалить , ни .... формулой нельзя.
-- многие называют это двойным отрицанием, но по сути это просто две операции арифметические которые не меняют значение , но заставляют перевести значение TRUE в 1, а False в 0. 1*( также будет работать, но просто -- набирать быстрее. однако СУММПРОИЗВ(--(ТаблицаСталь[марка]=D15);--(ТаблицаСталь[прочность]=D16);СТРОКА(ТаблицаСталь[марка]) можно заменить на СУММПРОИЗВ((ТаблицаСталь[марка]=D15)*(ТаблицаСталь[прочность]=D16)*СТРОКА(ТаблицаСталь[марка])