В Excel имеется функция определения минимального значения. Однако, найти минимальное значение по условию проблематично. Справиться с этой задачей может функция из надстройки =МИНСЕСЛИ

(аналогична стандартной функции Excel СУММЕСЛИ).

В Excel версии 2016 и выше появилась встроенная функция МИНЕСЛИ , можете пользоваться ей. Если ваш Excel более ранней версии, то эту функцию можно использовать установив надстройку VBA-Excel .

У функции следующие аргументы =МИНЕСЛИ(ДИАПАЗОН;КРИТЕРИЙ;[ДИАПАЗОН_ПОИСКА ])

    ДИАПАЗОН - Диапазон проверяемых ячеек.

  • КРИТЕРИЙ - Условие в формате числа, выражения или текста, определяющее проверку минимального значения.
  • [ ДИАПАЗОН_ПОИСКА ] - Фактический диапазон для определения минимального значения. Если данный параметр не задан, будет использоваться ячейки, задаваемые параметром ДИАПАЗОН .

Пример 1

В качестве критерия можно указывать значения и логические выражения:

  1. Рассмотрим следующий пример в котором определяется минимальная оценка по литературе. Для этого в параметр КРИТЕРИЙ указано значение «Литература», а в параметр ДИАПАЗОН - список предметов.
  2. Если в качестве критерия указать логическое выражение «<>Русский» , то определится минимальная оценка по всем предметам за исключением русского языка.

Пример 2

В следующем примере параметр ДИАПАЗОН_ПОИСКА не задан, поэтому минимальное значение определяется среди ячеек указанных в параметре ДИАПАЗОН .

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

Как сделать выборку в Excel по условию

Чтобы определить соответствующие значение первому наименьшему числу нужна выборка из таблицы по условию. Допустим мы хотим узнать первый самый дешевый товар на рынке из данного прайса:

Автоматическую выборку реализует нам формула, которая будет обладать следующей структурой:

ИНДЕКС(диапазон_данных_для_выборки;МИН(ЕСЛИ(диапазон=МИН(диапазон);СТРОКА(диапазон)-СТРОКА(заголовок_столбца);””)))

В месте «диапазон_данных_для_выборки» следует указать область значений A6:A18 для выборки из таблицы (например, текстовых), из которых функция ИНДЕКС выберет одно результирующие значение. Аргумент «диапазон» означает область ячеек с числовыми значениями, из которых следует выбрать первое наименьшее число. В аргументе «заголовок_столбца» для второй функции СТРОКА, следует указать ссылку на ячейку с заголовком столбца, который содержит диапазон числовых значений.

Естественно эту формулу следует выполнять в массиве. Поэтому для подтверждения ее ввода следует нажимать не просто клавишу Enter, а целую комбинацию клавиш CTRL+SHIFT+Enter. Если все сделано правильно в строке формул появятся фигурные скобки.

Обратите внимание ниже на рисунок, где в ячейку B3 была введена данная формула в массиве:

Выборка соответственного значения с первым наименьшим числом:


С такой формулой нам удалось выбрать минимальное значение относительно чисел. Далее разберем принцип действия формулы и пошагово проанализируем весь порядок всех вычислений.



Как работает выборка по условию

Ключевую роль здесь играет функция ИНДЕКС. Ее номинальное задание – это выбирать из исходной таблицы (указывается в первом аргументе – A6:A18) значения соответственные определенным числам. ИНДЕКС работает с учетом критериев определённых во втором (номер строки внутри таблицы) и третьем (номер столбца в таблице) аргументах. Так как наша исходная таблица A6:A18 имеет только 1 столбец, то третий аргумент в функции ИНДЕКС мы не указываем.

Чтобы вычислить номер строки таблицы напротив наименьшего числа в смежном диапазоне B6:B18 и использовать его в качестве значения для второго аргумента, применяется несколько вычислительных функций.

Функция ЕСЛИ позволяет выбрать значение из списка по условию. В ее первом аргументе указано где проверяется каждая ячейка в диапазоне B6:B18 на наличие наименьшего числового значения: ЕСЛИB6:B18=МИНB6:B18. Таким способом в памяти программы создается массив из логических значений ИСТИНА и ЛОЖЬ. В нашем случаи 3 элемента массива будут содержат значение ИСТИНА, так как минимальное значение 8 содержит еще 2 дубликата в столбце B6:B18.

Следующий шаг – это определение в каких именно строках диапазона находится каждое минимальное значение. Это нам необходимо по причине определения именно первого наименьшего значения. Реализовывается данная задача с помощью функции СТРОКА, она заполняет элементы массива в памяти программы номерами строк листа. Но сначала от всех этих номеров вычитается номер на против первой строки таблицы – B5, то есть число 5. Это делается потому, что функция ИНДЕКС работает с номерами внутри таблицы, а не с номерами рабочего листа Excel. В тоже время функция СТРОКА умеет возвращать только номера строк листа. Чтобы не получилось смещение необходимо сопоставить порядок номеров строк листа и таблицы с помощи вычитанием разницы. Например, если таблица находится на 5-ой строке листа значит каждая строка таблицы будет на 5 меньше чем соответственная строка листа.

После того как будут отобраны все минимальные значения и сопоставлены все номера строк таблицы функция МИН выберет наименьший номер строки. Эта же строка будет содержать первое наименьшее число, которое встречается в столбце B6:B18. На основании этого номера строки функции ИНДЕКС выберет соответствующее значение из таблицы A6:A18. В итоге формула возвращает это значение в ячейку B3 в качестве результата вычисления.

Как выбрать значение с наибольшим числом в Excel

Поняв принцип действия формулы, теперь можно легко ее модифицировать и настраивать под другие условия. Например, формулу можно изменить так, чтобы выбрать первое максимальное значение в Excel:


Если необходимо изменить условия формулы так, чтобы можно было в Excel выбрать первое максимальное, но меньше чем 70:


Как в Excel выбрать первое минимальное значение кроме нуля:


Как легко заметить, эти формулы отличаются между собой только функциями МИН и МАКС и их аргументами.

Теперь Вас ни что не ограничивает. Один раз разобравшись с принципами действия формул в массиве Вы сможете легко модифицировать их под множество условий и быстро решать много вычислительных задач.

В Excel имеется функция определения минимального значения. Однако, найти минимальное значение по условию проблематично. Справиться с этой задачей может функция из надстройки =МИНСЕСЛИ (аналогична стандартной функции Excel СУММЕСЛИ).

В Excel версии 2016 и выше появилась встроенная функция МИНЕСЛИ , можете пользоваться ей. Если ваш Excel более ранней версии, то эту функцию можно использовать установив надстройку VBA-Excel .

У функции следующие аргументы =МИНЕСЛИ(ДИАПАЗОН;КРИТЕРИЙ;[ДИАПАЗОН_ПОИСКА ])

    ДИАПАЗОН - Диапазон проверяемых ячеек.

  • КРИТЕРИЙ - Условие в формате числа, выражения или текста, определяющее проверку минимального значения.
  • [ ДИАПАЗОН_ПОИСКА ] - Фактический диапазон для определения минимального значения. Если данный параметр не задан, будет использоваться ячейки, задаваемые параметром ДИАПАЗОН .

Пример 1

В качестве критерия можно указывать значения и логические выражения:

  1. Рассмотрим следующий пример в котором определяется минимальная оценка по литературе. Для этого в параметр КРИТЕРИЙ указано значение "Литература", а в параметр ДИАПАЗОН - список предметов.
  2. Если в качестве критерия указать логическое выражение "<>Русский" , то определится минимальная оценка по всем предметам за исключением русского языка.

Пример 2

В следующем примере параметр ДИАПАЗОН_ПОИСКА не задан, поэтому минимальное значение определяется среди ячеек указанных в параметре ДИАПАЗОН .

ЧАСТНЫЕ СЛУЧАИ

В частных случаях решение можно получить перебором всех возможных комбинаций.

Программа (C#):

Public static int FactGen(int n) { int fact = new int; fact = 1; for (int i = 1; i < n + 1; i++) fact[i] = i * fact; return fact; } public static int PermsGenerator(int arr, int num, int fact) { int i, j, f, newind, newnum, newval, size = arr.Length; int result = new int; Array.Copy(arr, result, size); for (i = 0, newnum = num; i < size - 1; i++) { newind = newnum / (f = fact); newnum = newnum - newind * f; newval = result; for (j = i + newind; j > i; j--) result[j] = result; result[i] = newval; } return result; } public static int SumAbs(int arr) { int sum = 0, prev = arr; foreach (int value in arr) { sum += Math.Abs(value - prev); prev = value; } return sum; } public static int MaxArr(int arr, bool detprn) { int i, j, sum, smax = -1, size = arr.Length; int perm, result = new int, fact = FactGen(size), sorted = new int, empire = new int; Array.Copy(arr, sorted, size); Array.Sort(sorted); for (i = 0; i < fact; i++) { if ((sum = SumAbs(perm = PermsGenerator(sorted, i, fact))) > smax) { smax = sum; result = perm; } if (detprn) { Console.Write("\nПерестановка: "); foreach (int value in perm) Console.Write(value + " "); Console.Write(" Сумма: {0} Максимальная сумма: {1}", sum, smax); } } Console.Write("\nИсходная выборка: "); foreach (int value in arr) Console.Write(value + " "); Console.Write("\nОтсортированная выборка: "); foreach (int value in sorted) Console.Write(value + " "); Console.Write("\nЛучшая перестановка: "); foreach (int value in result) Console.Write(value + " "); Console.WriteLine("\nМаксимальная сумма: {0}", smax); empire = sorted; empire = sorted; empire = sorted; for (i = 2, j = 0; i < size - 1; i++, j = (size) - 1 + ((i + 1) & 1) - j) empire[i] = sorted[j]; Console.Write("Эвристический алгоритм: "); foreach (int value in empire) Console.Write(value + " "); Console.WriteLine("\nСумма: {0}", SumAbs(empire)); return result; } static void Main(string args) { bool binc; int i, j, n, nmax = 10; int arr; Random rand = new Random(); MaxArr(new int { 1, 2, 3, 4 }, false); MaxArr(new int { 1, 2, 3, 4, 5 }, false); for (n = 6; n < nmax + 1; n++) { arr = new int[n]; for (i = 0; i < n;) { arr[i] = rand.Next(1, 5 * n); binc = true; for (j = 0; j < i; j++) binc &= (arr[i] != arr[j]); if (binc) i++; } MaxArr(arr, false); } }

Результаты:

Исходная выборка: 1 2 3 4 Отсортированная выборка: 1 2 3 4 Лучшая перестановка: 2 4 1 3 Максимальная сумма: 7 Эвристический алгоритм: 2 4 1 3 Сумма: 7 Исходная выборка: 1 2 3 4 5 Отсортированная выборка: 1 2 3 4 5 Лучшая перестановка: 2 4 1 5 3 Максимальная сумма: 11 Эвристический алгоритм: 2 4 1 5 3 Сумма: 11 Исходная выборка: 26 10 21 4 27 5 Отсортированная выборка: 4 5 10 21 26 27 Лучшая перестановка: 10 26 4 27 5 21 Максимальная сумма: 99 Эвристический алгоритм: 10 26 4 27 5 21 Сумма: 99 Исходная выборка: 34 3 32 16 28 27 26 Отсортированная выборка: 3 16 26 27 28 32 34 Лучшая перестановка: 26 28 3 32 16 34 27 Максимальная сумма: 97 Эвристический алгоритм: 26 28 3 34 16 32 27 Сумма: 97 Исходная выборка: 27 3 34 38 18 29 31 39 Отсортированная выборка: 3 18 27 29 31 34 38 39 Лучшая перестановка: 29 34 3 38 18 39 27 31 Максимальная сумма: 128 Эвристический алгоритм: 29 34 3 39 18 38 27 31 Сумма: 128 Исходная выборка: 40 27 4 9 32 35 41 39 2 Отсортированная выборка: 2 4 9 27 32 35 39 40 41 Лучшая перестановка: 32 2 39 4 40 9 41 27 35 Максимальная сумма: 223 Эвристический алгоритм: 27 35 2 41 4 40 9 39 32 Сумма: 221 Исходная выборка: 41 35 45 27 34 33 18 24 16 25 Отсортированная выборка: 16 18 24 25 27 33 34 35 41 45 Лучшая перестановка: 27 34 16 35 18 41 24 45 25 33 Максимальная сумма: 150 Эвристический алгоритм: 27 34 16 45 18 41 24 35 25 33 Сумма: 150

Таким образом:

  1. Нашлась более удачная комбинация для исходного массива.
  2. Контрпример для эвристического алгоритма нашёлся не сразу.

ОБЩЕЕ РЕШЕНИЕ (10.02.2018)

Пусть
a = {a 0 = M 1 , a 1 = M 2 , …, a n-2 = M n-1 , a n-1 = M n } - исходная последовательность,
b = {b 0 , b 1 , …, b n-2 , b n-1 } -та же последовательность в порядке возрастания,
с = {c 0 , c 1 , …, c n-2 , c n-1 } -требуемая последовательность.

Рассмотрим по отдельности случаи чётного и нечётного n.

Случай n = 2k

S(a) = S ц (a) - |a n-1 - a 0 |, где
S ц a) = |a 0 - a 1 | + |a 1 - a 2 | + … + |a n-3 - a n-2 | + |a n-2 - a n-1 | + |a n-1 - a 0 |.

S ц (a) - это алгебраическая сумма, которая содержит каждый исходный элемент a i дважды, и её максимальное значение равно

S ц_max = 2∑ i = 0, …, k-1 (h i - b i), где h i = b i+k , i = 0…k-1.

Это значение достигается в двух вариантах перестановок:
1) c 2i ∈ h (все наибольшие элементы имеют чётные индексы);
2) c 2i + 1 ∈ h (все наибольшие элементы имеют нечётные индексы).

В то же время, минимум |a n-1 - a 0 | = b k - b k-1 достигается при размещении пары медианных элементов на краях последовательности c.

Максимум суммы S равен S max = 2∑ i = 0, …, k-2 (b i+k - b i) + b k-1 - b k , или

S max = 2∑ i = 0, …, k-2 (b n-1-i - b i) + b n-k - b k-1 ,

и достигается в тех случаях, когда последовательность с содержит наибольшие элементы в шахматном порядке, причём медианные элементы b k-1 и b k находятся на краях последовательности.
Количество таких перестановок при попарно различных a i составляет 2(k-1)! 2 .

Случай n = 2k+1

Аналогичное рассмотрение показывает, что максимум S равен

S max = 2∑ i=0…k-2 (b k+2+i - b k) + b k+1 - b k-1 + max (b k+1 - b k , b k - b k-1), или

S max = 2∑ i=0…k-2 (b n-1-i - b i) + b n-k - b k-1 + max (b k+1 - b k , b k - b k-1),

и достигается в тех случаях, когда элементы с индексами больше k идут в шахматном порядке, а на краях последовательности оказываются медианный и ближайший к нему элемент.
Количество таких перестановок при попарно различных a i не меньше, чем (k-1)!k! (если медиана отличается от ближайших по значению соседей на одинаковую величину, то перестановок вдвое больше).

ПРОГРАММА (C#):

Public static void T(string text, Stopwatch timer) { TimeSpan ts = timer.Elapsed; string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10); Console.Write(text + elapsedTime); } public static int FactGen(int n) { int fact = new int; fact = 1; for (int i = 1; i < n + 1; i++) fact[i] = i * fact; return fact; } public static int PermsGenerator(int arr, int num, int fact) { int i, j, f, newind, newnum, newval, size = arr.Length; int result = new int; Array.Copy(arr, result, size); for (i = 0, newnum = num; i < size - 1; i++) { f = fact; newind = i; while (newnum >= f) { newind++; newnum -= f; } newval = result; for (j = newind; j > i; j--) result[j] = result; result[i] = newval; } return result; } public static int SumAbs(int arr) { int sum = 0, prev = arr; foreach (int value in arr) { sum += Math.Abs(value - prev); prev = value; } return sum; } public static int CalcOptQuant (int n) { int k = (n - 1) / 2, k2 = Math.Max(k-2, 0); int fact = FactGen(k + 2); return 2*fact[k] * ((n - k - k < 2) ? fact : fact[k]); } public static int CalcMaxSum(int brr) { int i, size = brr.Length, k = size / 2, sum = 0; for (i = 0; i < k - 1; i++) sum += brr - brr[i]; sum = 2 * sum + brr - brr; if (size - 2 * k > 0) sum += Math.Max(brr - brr[k], brr[k] - brr); return sum; } public static int MaxArr(int arr, bool detprn) { int i, j, sum, smax = -1, size = arr.Length; int perm, result = new int, fact = FactGen(size), sorted = new int, empire = new int; Stopwatch sw = new Stopwatch(); Console.WriteLine("\nИсходная выборка: "); foreach (int value in arr) Console.Write(value + " "); sw.Restart(); for (i = 0; i < fact; i++) { perm = PermsGenerator(arr, i, fact); sum = SumAbs(perm); if (sum > smax) { smax = sum; result = perm; } } if (detprn) Console.Write("\nЛучшие перестановки"); for (i = 0, j = 0; i < fact; i++) { perm = PermsGenerator(arr, i, fact); sum = SumAbs(perm); if (sum == smax) { j++; if (detprn) { Console.Write("\n#{0}: ", j); foreach (int value in perm) Console.Write(value + " "); } } } Array.Copy(arr, sorted, size); Array.Sort(sorted); Console.WriteLine("\nОтсортированная выборка: "); foreach (int value in sorted) Console.Write(value + " "); Console.Write("\nФакт Наибольшая сумма: {0} Лучших перестановок: {1}" + "\nРасчёт Наибольшая сумма: {2} Лучших перестановок, не менее: {3}", smax, j, CalcMaxSum(sorted), CalcOptQuant(size)); T("\nRuntime = ", sw); sw.Reset(); return result; } static void Main(string args) { bool binc; int i, j, n, nmax = 12; int arr = new int; Random rand = new Random(); MaxArr(new int { 0, 1, 2, 3, 4, 5 }, true); MaxArr(new int { 5, 1, 3, 5, 7, 9 }, true); MaxArr(new int { 0, 1, 2, 3, 4 }, true); MaxArr(new int { 0, 1, 2, 3 }, true); MaxArr(new int { 0, 1, 2 }, true); for (n = 3; n <= nmax; n++) { Array.Resize(ref arr, n); for (i = 0; i < n;) { arr[i] = rand.Next(10, 99); binc = true; for (j = 0; j < i; j++) binc &= (arr[i] != arr[j]); if (binc) i++; } MaxArr(arr, false); } }

РЕЗУЛЬТАТЫ:

Исходная выборка: 0 1 2 3 4 5 Лучшие перестановки #1: 2 4 0 5 1 3 #2: 2 4 1 5 0 3 #3: 2 5 0 4 1 3 #4: 2 5 1 4 0 3 #5: 3 0 4 1 5 2 #6: 3 0 5 1 4 2 #7: 3 1 4 0 5 2 #8: 3 1 5 0 4 2 Отсортированная выборка: 0 1 2 3 4 5 Факт Наибольшая сумма: 17 Лучших перестановок: 8 Расчёт Наибольшая сумма: 17 Лучших перестановок, не менее: 8 Runtime = 00:00:00.01 Исходная выборка: 5 1 3 5 7 9 Лучшие перестановки #1: 5 1 7 3 9 5 #2: 5 1 9 3 7 5 #3: 5 3 7 1 9 5 #4: 5 3 9 1 7 5 #5: 5 7 1 9 3 5 #6: 5 7 3 9 1 5 #7: 5 9 1 7 3 5 #8: 5 9 3 7 1 5 #9: 5 1 7 3 9 5 #10: 5 1 9 3 7 5 #11: 5 3 7 1 9 5 #12: 5 3 9 1 7 5 #13: 5 7 1 9 3 5 #14: 5 7 3 9 1 5 #15: 5 9 1 7 3 5 #16: 5 9 3 7 1 5 Отсортированная выборка: 1 3 5 5 7 9 Факт Наибольшая сумма: 24 Лучших перестановок: 16 Расчёт Наибольшая сумма: 24 Лучших перестановок, не менее: 8 Runtime = 00:00:00.01 Исходная выборка: 0 1 2 3 4 Лучшие перестановки #1: 1 3 0 4 2 #2: 1 4 0 3 2 #3: 2 0 4 1 3 #4: 2 1 4 0 3 #5: 2 3 0 4 1 #6: 2 4 0 3 1 #7: 3 0 4 1 2 #8: 3 1 4 0 2 Отсортированная выборка: 0 1 2 3 4 Факт Наибольшая сумма: 11 Лучших перестановок: 8 Расчёт Наибольшая сумма: 11 Лучших перестановок, не менее: 4 Runtime = 00:00:00.01 Исходная выборка: 0 1 2 3 Лучшие перестановки #1: 1 3 0 2 #2: 2 0 3 1 Отсортированная выборка: 0 1 2 3 Факт Наибольшая сумма: 7 Лучших перестановок: 2 Расчёт Наибольшая сумма: 7 Лучших перестановок, не менее: 2 Runtime = 00:00:00.00 Исходная выборка: 0 1 2 Лучшие перестановки #1: 0 2 1 #2: 1 0 2 #3: 1 2 0 #4: 2 0 1 Отсортированная выборка: 0 1 2 Факт Наибольшая сумма: 3 Лучших перестановок: 4 Расчёт Наибольшая сумма: 3 Лучших перестановок, не менее: 2 Runtime = 00:00:00.01 Исходная выборка: 25 51 87 Отсортированная выборка: 25 51 87 Факт Наибольшая сумма: 98 Лучших перестановок: 2 Расчёт Наибольшая сумма: 98 Лучших перестановок, не менее: 2 Runtime = 00:00:00.00 Исходная выборка: 78 10 34 64 Отсортированная выборка: 10 34 64 78 Факт Наибольшая сумма: 166 Лучших перестановок: 2 Расчёт Наибольшая сумма: 166 Лучших перестановок, не менее: 2 Runtime = 00:00:00.00 Исходная выборка: 23 26 93 16 45 Отсортированная выборка: 16 23 26 45 93 Факт Наибольшая сумма: 195 Лучших перестановок: 4 Расчёт Наибольшая сумма: 195 Лучших перестановок, не менее: 4 Runtime = 00:00:00.00 Исходная выборка: 85 12 11 13 90 88 Отсортированная выборка: 11 12 13 85 88 90 Факт Наибольшая сумма: 382 Лучших перестановок: 8 Расчёт Наибольшая сумма: 382 Лучших перестановок, не менее: 8 Runtime = 00:00:00.00 Исходная выборка: 82 43 28 55 29 39 18 Отсортированная выборка: 18 28 29 39 43 55 82 Факт Наибольшая сумма: 206 Лучших перестановок: 24 Расчёт Наибольшая сумма: 206 Лучших перестановок, не менее: 24 Runtime = 00:00:00.00 Исходная выборка: 64 20 43 89 47 94 52 71 Отсортированная выборка: 20 43 47 52 64 71 89 94 Факт Наибольшая сумма: 300 Лучших перестановок: 72 Расчёт Наибольшая сумма: 300 Лучших перестановок, не менее: 72 Runtime = 00:00:00.02 Исходная выборка: 45 53 81 17 76 97 26 50 51 Отсортированная выборка: 17 26 45 50 51 53 76 81 97 Факт Наибольшая сумма: 337 Лучших перестановок: 288 Расчёт Наибольшая сумма: 337 Лучших перестановок, не менее: 288 Runtime = 00:00:00.23 Исходная выборка: 55 51 36 12 82 63 89 58 14 22 Отсортированная выборка: 12 14 22 36 51 55 58 63 82 89 Факт Наибольшая сумма: 420 Лучших перестановок: 1152 Расчёт Наибольшая сумма: 420 Лучших перестановок, не менее: 1152 Runtime = 00:00:02.46 Исходная выборка: 96 95 67 49 65 69 53 78 35 55 94 Отсортированная выборка: 35 49 53 55 65 67 69 78 94 95 96 Факт Наибольшая сумма: 348 Лучших перестановок: 11520 Расчёт Наибольшая сумма: 348 Лучших перестановок, не менее: 5760 Runtime = 00:00:29.21 Исходная выборка: 50 43 39 64 59 18 81 16 44 12 15 77 Отсортированная выборка: 12 15 16 18 39 43 44 50 59 64 77 81 Факт Наибольшая сумма: 463 Лучших перестановок: 28800 Расчёт Наибольшая сумма: 463 Лучших перестановок, не менее: 28800 Runtime = 00:06:26.81

АНАЛИЗ РЕЗУЛЬТАТОВ

Во всех рассмотренных случаях тестирование полностью подтвердило предлагаемое общее решение.

Этот табличный процессор справится практически со всеми расчётами. Он идеально подходит для бухгалтерского учёта. Для вычислений существуют специальные инструменты - формулы. Их можно применять к диапазону или к отдельным ячейкам. Чтобы узнать минимальную или максимальную цифру в группе клеток, необязательно искать их самостоятельно. Лучше воспользоваться предназначенными для этого опциями. Также полезно будет разобраться, как посчитать среднее значение в Excel.

Это особенно актуально в таблицах с большим объёмом данных . Если в столбце, например, указаны цены на продукцию торгового центра. И вам надо узнать, какой товар самый дешёвый. Если искать его «вручную», уйдёт очень много времени. Но в Экселе это можно сделать буквально за несколько кликов. Утилита также высчитывает среднее арифметическое. Ведь это две простые операции: сложение и деление.

Максимальное и минимальное

Вот как найти максимальное значение в Excel:

  1. Поставьте курсор-ячейку в любое место.
  2. Перейдите в меню «Формулы».
  3. Нажмите «Вставить функцию».
  4. В списке выберите «МАКС». Или напишите это слово в поле «Поиск» и нажмите «Найти».
  5. В окне «Аргументы» введите адреса диапазона, максимальное значение которого вам нужно узнать. В Excel имена клеток состоят из буквы и цифры («B1», «F15», «W34»). А название диапазона - это первая и последняя ячейки, которые в него входят.
  6. Вместо адреса можно написать несколько чисел. Тогда система покажет самое большее из них.
  7. Нажмите «OK». В клетке, в которой стоял курсор, появится результат.

Следующий шаг – укажите диапазон значений

Теперь будет легче разобраться, как найти минимальное значение в Excel. Алгоритм действий полностью идентичен. Просто вместо «МАКС» выберите «МИН».

Среднее

Среднее арифметическое вычисляется так: сложить все цифры из множества и поделить на их количество. В Экселе можно посчитать суммы, узнать, сколько ячеек в строке и так далее. Но это слишком сложно и долго. Придётся использовать много разных функций. Держать в голове информацию. Или даже что-то записывать на листочек. Но можно упростить алгоритм.

Вот как найти среднее значение в Excel:

  1. Поставьте ячейку курсор в любое свободное место таблицы.
  2. Перейдите на вкладку «Формулы».
  3. Нажмите на «Вставить функцию».
  4. Выберите «СРЗНАЧ».
  5. Если этого пункта нет в списке, откройте его с помощью опции «Найти».
  6. В области «Число1» введите адрес диапазона. Или напишите несколько цифр в разных полях «Число2», «Число3».
  7. Нажмите «OK». В ячейке появится нужное значение.

Так можно проводить расчёты не только с позициями в таблице, но и с произвольными множествами. Excel, по сути, играет роль продвинутого калькулятора.

Другие способы

Максимальное, минимальное и среднее можно узнать и другими способами.

  1. Найдите панель функций с обозначением «Fx». Она над основной рабочей областью таблицы.
  2. Поставьте курсор в любую ячейку.
  3. Введите в поле «Fx» аргумент. Он начинается со знака равенства. Потом идёт формула и адрес диапазона/клетки.
  4. Должно получиться что-то вроде «=МАКС(B8:B11)» (максимальное), «=МИН(F7:V11)» (минимальное), «=СРЗНАЧ(D14:W15)» (среднее).
  5. Кликните на «галочку» рядом с полем функций. Или просто нажмите Enter. В выделенной ячейке появится нужное значение.
  6. Формулу можно скопировать непосредственно в саму клетку. Эффект будет тот же.

Найти и вычислить поможет Excel-инструмент «Автофункции».

  1. Поставьте курсор в ячейку.
  2. Найдите кнопку, название которой начинается на «Авто». Это зависит от выбранной в Excel опции по умолчанию («Автосумма», «Авточисло», «Автосмещ», «Автоиндекс»).
  3. Нажмите на чёрную стрелочку под ней.
  4. Выберите «МИН» (минимальное значение), «МАКС» (максимальное) или «СРЗНАЧ» (среднее).
  5. В отмеченной клетке появится формула. Кликните на любую другую ячейку - она будет добавлена в функцию. «Растяните» рамку вокруг неё, чтобы охватить диапазон. Или щёлкайте по сетке с зажатой клавишей Ctrl, чтобы выделять по одному элементу.
  6. Когда закончите, нажмите Enter. Результат отобразится в клетке.

В Excel вычислить среднее значение достаточно легко. Не нужно складывать, а потом делить сумму. Для этого существует отдельная функция. Также можно найти минимум и максимум в множестве. Это намного легче, чем считать вручную или выискивать цифры в огромной таблице. Поэтому Эксель популярен во многих сферах деятельности, где требуется точность: бизнес, аудит, кадровое делопроизводство, финансы, торговля, математика, физика, астрономия, экономика, наука.