Apakah ada fungsi di Excel untuk menemukan nilai absolut maksimum rentang?

15

Saya mencari fungsi di Excel yang mirip

= MAX(ABS(A1:A10))

kecuali ABS()tidak mengambil rentang angka.

Yang terbaik yang bisa saya dapatkan adalah:

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

Itu memang berhasil, tetapi semuanya berantakan karena semuanya dan saya tidak percaya tidak ada cara yang lebih baik. Ada ide?

Ben
sumber

Jawaban:

23

Anda harus memasukkannya sebagai formula array. Lakukan dengan menekan Ctrl. + Shift+ Enter. Formula akan muncul seolah- {=MAX(ABS(A1:A10))}olah dilakukan dengan benar.

Excellll
sumber
4
Catatan untuk numb-tengkorak seperti saya: Masukkan formula lalu tekan Ctrl + Shift + Enter, saya mencoba untuk menekan ctrl + shift + enter terlebih dahulu, lalu masukkan formula, yang tidak benar-benar berfungsi dengan baik. : P
Ben
Excel tidak ramah pengguna ketika datang ke formula matriks. Perilaku itu sangat menyebalkan.
Pedro77
Ini tidak wajib untuk menggunakan rumus array (lihat ini dan ini . Selain itu, mungkin tidak nyaman.
sancho.s Reinstate Monica
3
Ini mengembalikan kesalahan jika rentang Anda juga berisi data non-numerik (mis. Kesalahan teks atau rumus)
CBRF23
22

Saya tidak suka array jadi saya akan menggunakan yang berikut:

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

Ini berfungsi karena satu-satunya waktu absolut dari angka minimum akan lebih tinggi dari nilai maksimum adalah jika itu adalah angka negatif.

Julie
sumber
Ini berfungsi jika rentang Anda juga berisi data non-numerik (mis. Kesalahan teks atau rumus)
CBRF23
Bagus, ini adalah fitur yang hilang di excel, mengapa tidak maks (abs ()) ??
Pedro77
@Julie Jawaban Anda yang sekarang + 5 tahun masih memiliki audiensi. :) Anda mengusulkan alternatif yang tidak menggunakan fungsi array, yang Anda anggap sebagai nilai tambah. Apakah Anda masih tidak menyukai fungsi array? Bisakah Anda mengomentari mengapa Anda tidak (atau tidak) menyukai fungsi array? Mengetahui lebih banyak tentang pertimbangan Anda dapat membantu saya dan pembaca lain mengevaluasi solusi mana yang ingin kami gunakan dalam konteks mana.
Paul van Leeuwen
Ini juga berfungsi di OpenOffice
Wolfgang Fahl
2

Coba rumus ini (dari sini )

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

Menggabungkan:

  • Manfaat rumus non-array, seperti pada jawaban di atas (lihat ini untuk manfaat non-array).
  • Memasukkan rentang target hanya sekali, seperti pada jawaban di atas (lebih rentan terhadap kesalahan, dan lebih mudah dimodifikasi).
sancho.s Reinstate Monica
sumber
1

Solusi VBA ini juga berfungsi.

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. Buka editor VBA Anda ( Alt+ F11)
  2. Masukkan modul baru di panel kanan
  3. Salin & tempel kode ke modul
  4. Kembali ke Excel dan gunakan =absMax(A1:A3)

masukkan deskripsi gambar di sini

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

Ini akan menemukan nilai dengan nilai absolut terbesar di luar rentang tetapi masih mengembalikan nilai aktual dengan tanda aslinya (+/-) dan bukan nilai absolut.

Rishi
sumber
(1) Seperti yang Anda ketahui, ini bukan jawaban untuk pertanyaan ini . Itu adalah jawaban untuk pertanyaan yang berbeda. Kami lebih suka menyimpan jawaban dengan pertanyaan yang mereka ajukan. Jika Anda benar-benar ingin memposting jawaban ini, Anda mungkin ingin "bertanya" pertanyaan yang sesuai dan kemudian menjawabnya. ( Anda diperbolehkan melakukan itu , tetapi, karena Anda memiliki reputasi rendah , Anda mungkin harus menunggu beberapa jam sebelum Anda dapat menjawab pertanyaan Anda sendiri.)
G-Man Mengatakan 'Reinstate Monica'
(2) OP sudah memiliki jawaban yang berfungsi untuk pertanyaan itu, dan menolaknya karena "semuanya berantakan dan aku tidak percaya tidak ada cara yang lebih baik." Jadi mengapa mengirim jawaban yang dua kali lebih lama dari yang dia sudah punya? Untuk itu, mengapa tidak mengatakan adil =IF(ABS(MAX(A1:A10))>ABS(MIN(A1:A10)),MAX(A1:A10),MIN(A1:A10))?
G-Man Mengatakan 'Reinstate Monica'
@ G-Man Ini adalah satu-satunya solusi formula, yang diposting sejauh ini, yang membuat tanda asli tetap utuh, yang tidak secara eksplisit diminta oleh OP tetapi membantu saya. Dengan hormat saya tidak setuju dengan kedua penilaian Anda.
Portland Runner
0

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

TAZIOU
sumber
jadi apa bedanya dengan jawaban Julie?
phuclv
Ini adalah jawaban untuk pertanyaan (terlambat, ya). Mirip dengan Julie, ya, sedikit kurang efisien, mungkin, tetapi IMHO sedikit lebih jelas bagi seseorang yang mewarisi spreadsheet.
xenoid
-1
=IF(MAX(A1:A10)+MIN(A1:A10)>0, MAX(A1:A10), MIN(A1:A10))
Andrew KIM
sumber
2
Kami lebih suka jawaban yang menyertakan penjelasan.
Scott