Czy w programie Excel jest funkcja znajdowania maksymalnej wartości bezwzględnej zakresu?


15

Szukam funkcji w programie Excel, która wygląda mniej więcej tak

= MAX(ABS(A1:A10))

z wyjątkiem, ABS()że nie bierze zakresu liczb.

Najlepsze, co mogę wymyślić, to:

= MAX(ABS(MIN(A1:A10)),ABS(MAX(A1:A10)))

To załatwia sprawę, ale jest niechlujna, ponieważ wszyscy do cholery i nie mogę uwierzyć, że nie ma lepszego sposobu. Jakieś pomysły?

Odpowiedzi:


23

Musisz wprowadzić go jako formułę tablicową. Zrób to, naciskając Ctrl. + Shift+ Enter. Formuła pojawi się tak, {=MAX(ABS(A1:A10))}jakby została wykonana poprawnie.


4
Uwaga dla zdrętwiałych czaszek takich jak ja: wprowadź formułę, a następnie naciśnij Ctrl + Shift + Enter, próbowałem najpierw nacisnąć Ctrl + Shift + Enter, a następnie wprowadź formułę, która tak naprawdę nie działała tak dobrze. : P
— Ben

Excel nie jest przyjazny dla użytkownika, jeśli chodzi o formuły macierzowe. Zachowania są naprawdę denerwujące.
— Pedro77

Użycie formuły tablicowej nie jest obowiązkowe (zobacz to i to . Ponadto może być niewygodne.
— sancho.s Przywróć Monikę

3
Zwraca błąd, jeśli twój zakres zawiera również dane nienumeryczne (np. Błędy tekstu lub formuły)
— CBRF23

22

Nie lubię tablic, więc użyłbym następujących:

=MAX(-MIN(range), MAX(range))

Działa to, ponieważ jedyny moment, w którym wartość bezwzględna liczby minimalnej byłaby wyższa niż wartość maksymalna, jeśli jest to liczba ujemna.


Działa to, jeśli twój zakres zawiera również dane nienumeryczne (np. Błędy tekstu lub formuły)
— CBRF23

Fajnie, jest to brakująca funkcja w programie Excel, dlaczego nie max (abs ()) ??
— Pedro77

@Julie Twoja teraz + 5-letnia odpowiedź wciąż ma odbiorców. :) Proponujesz alternatywę, która pozwala uniknąć korzystania z funkcji tablicowej, co uważasz za plus. Czy nadal nie lubisz funkcji tablicowych? Czy mógłbyś skomentować, dlaczego nie lubisz (lub nie) funkcji tablicowych? Wiedza na temat twoich rozważań może pomóc mi i innym czytelnikom ocenić, które rozwiązanie chcielibyśmy zastosować w jakim kontekście.
— Paul van Leeuwen

Działa to również w OpenOffice
— Wolfgang Fahl,


1

To rozwiązanie VBA również działa.

Public Function absMax(values As Range)
    'returns the largest absolute value in a list of pos and neg numbers

    Dim myArray() As Double, i As Integer, numel As Integer
    numel = values.count
    ReDim myArray(1 To numel)
    For i = 1 To numel
        myArray(i) = Abs(values(i))
    Next i
    absMax = WorksheetFunction.Max(myArray)

End Function
  1. Otwórz swój edytor VBA ( Alt+ F11)
  2. Wstaw nowy moduł w prawym okienku
  3. Skopiuj i wklej kod do modułu
  4. Wróć do Excela i użyj =absMax(A1:A3)

wprowadź opis zdjęcia tutaj


0
=IF(ABS(LARGE(A1:A10,1))>ABS(SMALL(A1:A10,1)),LARGE(A1:A10,1),SMALL(A1:A10,1))

Znajduje to wartość o największej wartości bezwzględnej poza zakresem, ale nadal zwraca wartość rzeczywistą ze swoim pierwotnym znakiem (+/-), a nie wartością bezwzględną.


(1) Jak wiadomo, nie jest to odpowiedź na to pytanie. To odpowiedź na inne pytanie. Wolimy zachować odpowiedzi wraz z pytaniami, które dotyczą. Jeśli naprawdę chcesz opublikować tę odpowiedź, możesz „zadać” odpowiednie pytanie, a następnie odpowiedzieć na nie. ( Możesz to zrobić , ale ponieważ masz niską reputację , być może będziesz musiał poczekać kilka godzin, zanim odpowiesz na własne pytanie.)
— G-Man mówi „Przywróć Monikę”

(2) OP ma już roboczą odpowiedź na pytanie i odrzuca je, ponieważ „jest niechlujny, jak wszyscy do cholery i nie mogę uwierzyć, że nie ma lepszego sposobu”. Po co więc zamieszczać odpowiedź dwa razy dłuższą niż ta, którą już ma? Jeśli o to chodzi, dlaczego nie powiedzieć po prostu =IF(ABS(MAX(A1:A10))>ABS(MIN(A1:A10)),MAX(A1:A10),MIN(A1:A10))?
— G-Man mówi „Przywróć Monikę”

@ G-Man Jest to jedyne dotychczas opublikowane rozwiązanie formuły, które zachowuje oryginalny znak nienaruszony, co nie jest wyraźnie wymagane przez OP, ale było dla mnie pomocne. Z szacunkiem nie zgadzam się z obiema ocenami.
— Portland Runner,

0

= MAKS. (MAKS. (X1: X5), ABS (MIN (X1: X5)))


więc czym różni się od odpowiedzi Julie?
— phuclv

To jest odpowiedź na pytanie (spóźnione, tak). Podobnie jak Julie, tak, może nieco mniej wydajne, ale IMHO jest nieco bardziej oczywiste dla kogoś, kto dziedziczy arkusz kalkulacyjny.
— ksenoid

-1
=IF(MAX(A1:A10)+MIN(A1:A10)>0, MAX(A1:A10), MIN(A1:A10))

2
Wolimy odpowiedzi, które zawierają wyjaśnienie.
— Scott
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.