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?

Ben
źródło

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.

Excellll
źródło
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.

Julie
źródło
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,
2

Wypróbuj tę formułę ( stąd )

=MAX(INDEX(ABS(A1:A10),0,1))

Łączy:

  • Korzyści z formuły innej niż macierz, jak w powyższej odpowiedzi (zobacz to, aby zapoznać się z zaletami braku macierzy).
  • Wprowadzanie zakresu docelowego tylko raz, jak w powyższej odpowiedzi (mniej podatne na błędy i łatwiejsze do modyfikacji).
sancho.s Przywróć Monikę
źródło
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

VeryBadAss
źródło
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ą.

Rishi
źródło
(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)))

TAZIOU
źródło
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))
Andrew KIM
źródło
2
Wolimy odpowiedzi, które zawierają wyjaśnienie.
Scott