Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Выбрать из массива толщину стенки по трем условиям
 
Доброго времени суток
вопрос по массиву
пытался сделать массив по трем параметрам не получилось
кто сможет помочь
исходя из трех параметров -
1. тип отвердителя
2. давления
3. диаметр

подбиралась толщина стенки
приложил эксель там разметил расписал
кого не затруднит помогите
Изменено: Gotch - 17 Мар 2018 13:50:11
 
расшарил этот файл на яндекс диске
https://yadi.sk/d/junhcz8Q3TU7gQ
Изменено: Gotch - 17 Мар 2018 13:53:19
 
Справочные данные нужно привести к 'плоскому' виду. Тогда с ними можно будет хоть как-то работать
Согласие есть продукт при полном непротивлении сторон.
 
поясните пожалуйста как
 
Цитата
Gotch написал:
поясните пожалуйста как
См. Приемы, редизайнер таблиц. Как вариант... ;)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Доброе время суток
Цитата
Gotch написал:
поясните пожалуйста как
Что вы понимаете под словом массив? Нечто разбросанное по кучкам?
Чтобы что то пояснить, нужно понять, что у вас на листе что. Или вы будете ожидать специалиста в вашей области?
Изменено: Андрей VG - 17 Мар 2018 14:15:07
 
подождите, я же на листе все разным цветом пометил и подписал что значит  красный цвет что значат другие цвета
 
Gotch,  тут ключевое слово не цвета , а массив. При такой структуре хранения данных найти нужные значения в разы сложнее. Не скажу, что это невозможно, ибо для VBA нет преград, но унизительно :-)
 
Цитата
Gotch написал:
поясните пожалуйста как
Как то так. См. Лист2
Хех. 300 Кб, 300 Кб...19 то не влезло
Плоская таблица
Изменено: Sanja - 17 Мар 2018 14:32:24
Согласие есть продукт при полном непротивлении сторон.
 
Цитата
БМВ написал:
Gotch ,  тут ключевое слово не цвета , а массив. При такой структуре хранения данных найти нужные значения в разы сложнее. Не скажу, что это невозможно, ибо для VBA нет преград, но унизительно :-)
спасибо, более или менее понятно
переделал
https://yadi.sk/d/C6ZH19G_3TUCD4
такая таблица подойдет?
 
Цитата
Gotch написал:
такая таблица подойдет?
Лучше, хоть и не совершенство, но где искать давление?  И обратите внимание на  предыдущий пост. В идеале покажите руками что вбито, и как найдено должно быть.
Изменено: БМВ - 17 Мар 2018 15:12:04
 
Цитата
Gotch написал:
такая таблица подойдет?
Нет, она не плоская.  Вам же Sanja, дал ссылку, что бы прочитать, что такое плоская таблица.
БМВ, Михаил, сможете с такой таблицы выкрутить формулами?
Изменено: Андрей VG - 17 Мар 2018 15:11:52
 
Тут простая СУММПРОИЗВ
=ИНДЕКС(КакНеНадоДелать_2[Тип отвердителя];СУММПРОИЗВ(--(КакНеНадоДелать_2[Столбец1]=I3);--(КакНеНадоДелать_2[v1]=I4);--(КакНеНадоДелать_2[Давление]=I5);--(КакНеНадоДелать_2[Диаметр]=I6);--(КакНеНадоДелать_2[Толщина стенки]=I7);СТРОКА(КакНеНадоДелать_2[Столбец1])))
Подходит для всех параметров (менять диапазон поиска). Для числовых можно ИНДЕКС убрать, вместо СТРОКА ссылка на числовой диапазон
При ошибочном параметре будет показана первая строка. Обход ошибки - первую сделать пустой или с ругательствами )
 
Виктор, спасибо. Только вот вопрос - я в формулах, как бы это помягче - чуть больше чем начинающий - что прячется в Столбец1? В моём файле его нет :)
 
Происки форумного барабашки: то файлы прикреплять не дает, то столбцы в таблицы добавляет :)
Вырезаем лишнее, формула не пострадает.
 
Андрей VG, Вы все испортили, из интересной задачи сделали тривиальную :-)

Пока попробуем по сложному пути.
Gotch,  Не понятно как должно искаться с учетом меньше или больше табличных данных?
Изменено: БМВ - 17 Мар 2018 15:47:48
 
Цитата
БМВ написал:
Gotch ,  Не понятно как должно искаться с учетом меньше или больше табличных данных?
если не соответствует табличных значениям то поставить большой Х или просто пробел пустота
 
Если четкое равенство, то тогда так.

Естественно ,это в разы хуже обработки плоской таблицы.
Изменено: БМВ - 17 Мар 2018 17:35:25
 
Скажите в чем выражается "это в разы хуже обработки плоской таблицы."?
 
Сложность формулы, Возможно и проще можно, я к слову немного переделал, там два варианта в файле, но в любом случае, вариант  №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 - 21 Мар 2018 15:04:57
 
Цитата
Gotch написал:
как то не корректно себя ведет
формула расчитана на уникальность при совпадении параметров. собственно результат она выдаст из 2+3-1 и 4ое значение будет 470
Цитата
Gotch написал:
как то это можно поправить?
ну а как вы из такой таблицы выбираете глазами ? по третьему параметру,
Цитата
Gotch написал:
можно ли сделать что бы вывелся список и выбранное значение применить?
Можно, но это или макросом, или выбирать каждый раз, независимо от того, единственный вариант или нет. При этом максимум что можно это выделить ячейку, если значение не из списка, но не удалить , ни .... формулой нельзя.

-- многие называют это двойным отрицанием, но по сути это просто две операции арифметические которые не меняют значение , но заставляют перевести значение TRUE в 1, а False в 0. 1*(  также будет работать, но просто -- набирать быстрее.  однако
СУММПРОИЗВ(--(ТаблицаСталь[марка]=D15);--(ТаблицаСталь[прочность]=D16);СТРОКА(ТаблицаСталь[марка])
можно заменить на
СУММПРОИЗВ((ТаблицаСталь[марка]=D15)*(ТаблицаСталь[прочность]=D16)*СТРОКА(ТаблицаСталь[марка])
Страницы: 1
Читают тему (гостей: 1)
Наверх