Как создать функцию «argmax» в libreoffice

#libreoffice-calc

#libreoffice-calc

Вопрос:

Интересно, как я могу построить то, что делается в argmax функции в libreoffice. Я думаю, должен быть способ без использования basic.

Позвольте мне показать вам, что я имею в виду, на примере. Если у меня есть таблица со следующими данными за январь — апрель. Как я могу вычислить столбец, отображаемый как максимальный, чтобы я получал значения для фруктов и общего количества, которые находятся в столбце, в котором общее количество достигает максимального значения (здесь 16), поэтому все, что отображается ниже максимального, должно быть вычислено этой функцией.

                             maximum
        Jan Feb Mar Apr     Mar
apples  -5  3   7   1       7
oranges 2   5   2   5       2
bananas 17  2   7   9       7
total   14  10  16  15      16
  

Я пытался использовать MAX , чтобы получить максимальное значение total, а затем использовать a VLOOKUP , но, похоже, это работает, только если данные выровнены по вертикали, а мои реальные данные не являются целочисленными данными, поэтому я не уверен, гарантированно ли я получу результат из-за проблем с округлением и т. Д.

Ответ №1:

Первый шаг — действительно найти функцию MAX() для строки итогов.

Затем, используя функцию MATCH (), определите, как далеко от первого столбца с именами находится найденный максимум.

И в самом конце, используя функцию OFFSET(), получите весь столбец из нужного места — переместитесь из столбца заголовка в найденную максимальную позицию.

 {=OFFSET($A$2:$A$6;0;MATCH(MAX($A$6:$E$6);$A$6:$E$6;0)-1)}
  

Смещение формулы массива ()

Комментарии:

1. Спасибо, это то, что я искал.