Excel - функция для поиска наибольшей суммы в таблице, используя каждую строку и столбец только один раз - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть таблица в Excel с 10 строками и 10 столбцами.

Таблица содержит 100 различных значений от 1 до 3.

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

Ребята, вы знаете функцию, которая находит наибольшую сумму?- Я пытался сделать это вручную, но есть много комбинаций!Надеюсь, это имеет смысл.Заранее спасибо:)

1 Ответ

0 голосов
/ 17 ноября 2018

enter image description here

Мое решение основано на том, что я написал в комментарии, т.е. сначала вы берете максимальное значение в массиве 10x10, затем максимум в массиве 9x9 (исключая строку / столбец первого максимума) и т. Д. Мое решение пытается не делать все в одной формуле, но я добавляю несколько вспомогательных столбцов и немного больше вспомогательных строк (это быстро и грязно, но работает и легко проверяется / понятно). Вы всегда можете сделать это на отдельном листе, который вы можете скрыть при необходимости.

Скриншот выше идет от ячейки A1 до Y31.

Основные формулы:

  • 3,55 является результатом =MAX(B2:K11)
  • Первая серая ячейка - =IFNA(MATCH($M12;B2:B11;0);""), и вы перетащите эти 9 ячеек влево. Это пытается найти совпадение с максимальным результатом в каждом столбце таблицы;
  • 10 слева от 3,55 =MATCH(TRUE;INDEX(ISNUMBER(P12:Y12);0);0), и дает номер столбца максимального значения.
  • 2 рядом с 10 является =INDEX(P12:Y12;N12) и дает номер строки максимального значения.
  • 1 в ячейке B12 равен =IF(OR(B$1=$N12;$A12=$O12);0;1) и создает матрицу 10x10 со строкой и столбцом с нулями, где было найдено предыдущее максимальное значение.
  • Затем вы умножаете это на предыдущую матрицу и создаете новую матрицу 10x10 ниже (введите {=B2:K11*B12:K21} формула массива (ctrl + shift + enter) в B22-K31
  • Затем вы копируете / вставляете строки с 12 по 31 в 9 раз ниже
  • 23,02 - это общая сумма =SUM($M$12:$M$211) от всех 10 максимальных значений и результат, который вы ищете. 10 это просто проверка с =COUNT($M$12:$M$211)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...