Соответствие и условное форматирование из таблицы Matrix - PullRequest
1 голос
/ 12 марта 2020

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

Это изображение представляет мою матричную таблицу (Рисунок 1):

enter image description here

Как вы можете видеть, есть много примеров, но по горизонтали и вертикали они получили одинаковое количество «заголовков». Эти "1`s" представляют не совместимость в моем случае, но давайте назовем это просто "match" . Это на одном листе, который время от времени будет заполняться новыми значениями.

На другом листе, который фактически является листом для отображения данных и возможностей их совместимости, имеется раскрывающийся список. Там вы получили "Группы (Group1, Group2 ...)" в смысле основных частей и "зависимые группы (AA1, BB2 ..)" как небольшие компоненты, которые являются частью основных частей. Чтобы избежать недоразумений, здесь у вас есть объяснения, я использовал для этого примера вымышленные значения:

Groups aka. Основные части

Зависимые группы ака. компоненты

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

Я ПРЕДСТАВЛЯЮ ОБЪЯСНЕНИЕ В ФОТОГРАФИИ 2, ТАК ЧТО ВЫ МОЖЕТЕ СЛЕДОВАТЬ ЗА ВСЕМ И ТОЛЬКО ВИДЕТЬ ГДЕ / ЧТО Я СДЕЛАЛ! (A3) и один для горизонтального (B4). Эта логическая строка выполняется с использованием = или (index) , но с привязкой к позициям совпадения, как вы можете видеть. И оттуда я должен использовать true / false для окраски групповых блоков в случае, если совместимость возможна - вот и вся наука.

Итак, мой вопрос: есть ли другой подход к этой проблеме? Как вы можете видеть, у меня есть 3 разных ряда функций в одном месте, или представьте, если у меня будет больше «групп», которые могут расти во многих строках и вычислениях.

Изображение 2

enter image description here

РЕДАКТИРОВАНИЕ:

Это Это скриншот исходного листа, я просто спрятал несколько строк, которые были с информацией, поэтому число не соответствует. Как вы можете видеть, это почти то же самое, что и фиктивный пример, который я привел выше. Под каждой «коробкой» у вас есть три ряда вычислений, как я упоминал ранее. Число «2», которое вы видите здесь, является положением некоторого значения, которое я нашел с помощью = функция соответствия , одно для горизонтального, а другое для вертикального поиска. В данном случае это тип модели, 070FX - это позиция 2, 100FX - это 3, а 200FX - это 4-я позиция в матричной таблице и т. Д. Для всех остальных групп. И эти группы (Модель, Конечная точка, Датчик газа ...) определяются отдельно на другом листе, где я должен был составить уникальный список и зависимый список, чтобы я мог ссылаться на них в своем раскрывающемся списке.

enter image description here

РЕДАКТИРОВАТЬ № 4! Итак, эту формулу я использовал для true/false:

 =SUMPRODUCT(('0359-matrix'!$A$2:$A$101=F10)*(('0359-matrix'!$B$1:$CW$1=$B$10)+('0359-matrix'!$B$1:$CW$1=$C$10)+('0359-matrix'!$B$1:$CW$1=$D$10)+('0359-matrix'!$B$1:$CW$1=$E$10)+('0359-matrix'!$B$1:$CW$1=$F$10)+('0359-matrix'!$B$1:$CW$1=$G$10)+('0359-matrix'!$B$1:$CW$1=$H$10)+('0359-matrix'!$B$1:$CW$1=$I$10)+('0359-matrix'!$B$1:$CW$1=$J$10)+('0359-matrix'!$B$1:$CW$1=$K$10)+('0359-matrix'!$B$1:$CW$1=$L$10)+('0359-matrix'!$B$1:$CW$1=$M$10)+('0359-matrix'!$B$1:$CW$1=$N$10)+('0359-matrix'!$B$1:$CW$1=$O$10)+('0359-matrix'!$B$1:$CW$1=$P$10)+('0359-matrix'!$B$1:$CW$1=$Q$10)+('0359-matrix'!$B$1:$CW$1=F13)+('0359-matrix'!$B$1:$CW$1=G13)+('0359-matrix'!$B$1:$CW$1=H13)+('0359-matrix'!$B$1:$CW$1=I13)+('0359-matrix'!$B$1:$CW$1=J13))*'0359-matrix'!$B$2:$CW$101)>0

Я скопировал только последнюю часть, или когда она начинается со второй строки .. Потому что слишком длинная запись всей функции - она ​​автоматически обрезается.

('0359-matrix'!$B$1:$CW$1=$Q$10)+('0359-matrix'!$B$1:$CW$1=$B$13)+('0359-matrix'!$B$1:$CW$1=$C$13)+('0359-matrix'!$B$1:$CW$1=$D$13)+('0359-matrix'!$B$1:$CW$1=$E$13)+('0359-matrix'!$B$1:$CW$1=$F$13))*'0359-matrix'!$B$2:$CW$101)>0

Но на отмеченных ячейках я Я получаю те же результаты: B22 - F22 имеет то же самое, что B21 - F21 (булево), что не должно быть так, но чтобы следовать цвету, зеленый - Ложь, это должно быть что-то со ссылкой на массив. enter image description here

1 Ответ

1 голос
/ 16 марта 2020

Оформить заказ следующее. От A1 до E5 - это матрица, которая показывает, какие части несовместимы (= 1). Остальные должны быть пустыми или 0.

enter image description here

В ячейке I8 я использовал следующую формулу (и скопировал ее до I11):

=SUMPRODUCT(($A$2:$A$5=H8)*(($B$1:$E$1=$H$8)+($B$1:$E$1=$H$9)+($B$1:$E$1=$H$10)+($B$1:$E$1=$H$11))*$B$2:$E$5)

Результат формулы показывает количество несовместимостей, которые есть у части. Например, AA1 имеет одну несовместимость с BB2, но BB2 несовместим с 2 AA1 и CC3.

. Чтобы получить TRUE / FALSE, используйте ту же формулу и добавьте >0: как =SUMPRODUCT(…)>0

Для любой дополнительной «группы» (Модель, Конечная точка,…) вам необходимо добавить еще +($B$1:$E$1=$H$12), где $B$1:$E$1 указывает на ваши данные матрицы и $H$12 на выбранные вами. групповое значение.

Обзор диапазонов формул: enter image description here

Обратите внимание, что этот вид вычислений может указывать только количество несовместимых элементов, которые есть у части, но не имена несовместимых частей.


Отредактированная горизонтальная версия

enter image description here

Формула в выбранной ячейке:

=SUMPRODUCT(($A$2:$A$5=G8)*(($B$1:$E$1=$G$8)+($B$1:$E$1=$H$8)+($B$1:$E$1=$I$8)+($B$1:$E$1=$J$8))*$B$2:$E$5)

Вы можете потянуть его вправо.

...