Có một hàm trong Excel để tìm giá trị tuyệt đối tối đa của một phạm vi không?


15

Tôi đang tìm kiếm một hàm trong Excel trông giống như

= MAX(ABS(A1:A10))

ngoại trừ ABS()không có một loạt các số.

Điều tốt nhất mà tôi có thể đưa ra là:

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

Nó thực hiện mánh khóe, nhưng nó lộn xộn vì tất cả đều quái và tôi không thể tin rằng không có cách nào tốt hơn. Có ý kiến ​​gì không?

Câu trả lời:


23

Bạn phải nhập nó như là một công thức mảng. Làm như vậy bằng cách nhấn Ctrl. + Shift+ Enter. Công thức sẽ xuất hiện như {=MAX(ABS(A1:A10))}thể được thực hiện chính xác.


4
Lưu ý đối với những người đầu lâu như tôi: Nhập công thức sau đó nhấn Ctrl + Shift + Enter, tôi đã thử nhấn ctrl + shift + enter trước, sau đó nhập công thức, điều đó thực sự không hoạt động tốt. : P
Ben

Excel không thân thiện với người dùng khi nói đến các công thức ma trận. Nó hành xử thực sự gây phiền nhiễu.
Pedro77

Không bắt buộc phải sử dụng một công thức mảng (xem cái nàycái này . Hơn nữa, nó có thể bất tiện.
sancho.s Phục hồi Monica

3
Điều này trả về lỗi nếu phạm vi của bạn cũng chứa dữ liệu không phải là số (ví dụ: lỗi văn bản hoặc công thức)
CBRF23

22

Tôi không thích mảng vì vậy tôi sẽ sử dụng như sau:

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

Điều này hoạt động vì lần duy nhất tuyệt đối của số tối thiểu sẽ cao hơn giá trị tối đa nếu nó là số âm.


Điều này hoạt động nếu phạm vi của bạn cũng chứa dữ liệu không phải là số (ví dụ: lỗi văn bản hoặc công thức)
CBRF23

Rất vui, đây là một tính năng còn thiếu trong excel, tại sao không max (abs ()) ??
Pedro77

@Julie của bạn bây giờ + 5yr câu trả lời cũ vẫn có một đối tượng. :) Bạn đề xuất một giải pháp thay thế tránh sử dụng hàm mảng, mà bạn cho biết bạn xem xét một điểm cộng. Bạn vẫn không thích các hàm mảng? Bạn có thể nhận xét về lý do tại sao bạn không (hoặc không) thích các hàm mảng không? Biết thêm về những cân nhắc của bạn có thể giúp tôi và những người đọc khác đánh giá giải pháp nào chúng tôi muốn sử dụng trong bối cảnh nào.
Paul van Leeuwen

Điều này cũng hoạt động trong OpenOffice
Wolfgang Fahl


1

Giải pháp VBA này cũng hoạt động.

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. Mở trình soạn thảo VBA của bạn ( Alt+ F11)
  2. Chèn một mô-đun mới vào khung bên phải
  3. Sao chép và dán mã vào mô-đun
  4. Quay trở lại Excel và sử dụng =absMax(A1:A3)

nhập mô tả hình ảnh ở đây


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

Điều này sẽ tìm giá trị có giá trị tuyệt đối lớn nhất trong phạm vi nhưng vẫn trả về giá trị thực với dấu ban đầu (+/-) chứ không phải giá trị tuyệt đối.


(1) Như bạn đã biết, đây không phải là câu trả lời cho câu hỏi này . Đó là câu trả lời cho một câu hỏi khác nhau. Chúng tôi muốn giữ câu trả lời với các câu hỏi mà họ đi cùng. Nếu bạn thực sự muốn đăng câu trả lời này, bạn có thể muốn hỏi Hỏi câu hỏi tương ứng và sau đó trả lời nó. ( Bạn được phép làm điều đó , nhưng, vì bạn có uy tín thấp , bạn có thể phải đợi vài giờ trước khi bạn có thể trả lời câu hỏi của chính mình.)
G-Man nói 'Tái lập lại' '

(2) OP đã có câu trả lời hữu ích cho câu hỏi và từ chối nó bởi vì đó là một mớ hỗn độn và tôi không thể tin rằng không có cách nào tốt hơn. Vì vậy, tại sao lại đăng một câu trả lời dài gấp đôi câu trả lời đã có? Đối với vấn đề đó, tại sao không nói chỉ =IF(ABS(MAX(A1:A10))>ABS(MIN(A1:A10)),MAX(A1:A10),MIN(A1:A10))?
G-Man nói 'Phục hồi Monica'

@ G-Man Đây là giải pháp công thức duy nhất, được đăng cho đến nay, giữ nguyên dấu hiệu ban đầu, không được OP yêu cầu rõ ràng nhưng rất hữu ích với tôi. Tôi tôn trọng không đồng ý với cả hai đánh giá của bạn.
Á quân Portland

0

= MAX (MAX (X1: X5), ABS (MIN (X1: X5)))


vậy nó khác với câu trả lời của Julie như thế nào?
phuclv

Đây là một câu trả lời cho câu hỏi (muộn màng, có). Tương tự như Julie, có, hơi kém hiệu quả, có lẽ, nhưng IMHO rõ ràng hơn một chút đối với người thừa kế bảng tính.
xenoid

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

2
Chúng tôi thích câu trả lời bao gồm một lời giải thích.
Scott
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.