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?

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.


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.


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


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


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.


(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)))


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))

2
Kami lebih suka jawaban yang menyertakan penjelasan.
Scott
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.