Formula untuk delta antara dua angka

9

Saya mencoba menemukan delta di antara dua set angka. Beberapa angka positif, beberapa negatif.

Menggunakan rumus berikut berfungsi sekitar 99% dari waktu:

=IF(I18<0,I18+R18,IF(I18>0,I18-R18))

Namun, kapan I18dan R18angka negatif, saya perlu I18-R18. Saya sudah mencoba banyak IF ANDpernyataan, tetapi sepertinya tidak bisa melakukan ini dengan benar. Semoga seseorang dapat membimbing saya ke arah yang benar.

Dave
sumber
3
Anda lupa mengatakan apa yang harus terjadi jika I18nol.
Blackwood
3
"Kapan I18dan R18angka negatif, saya perlu I18-R18" Apakah Anda yakin maksud Anda ini? Saya pikir Anda ingin delta sebagai perbedaan mutlak. Jika I18ini -2dan R18adalah -1, hasil Anda akan menjadi -1. Tidakkah Anda menginginkan angka positif dalam semua kasus?
JoL
Apakah =ABS(I18)-ABS(R18)menghasilkan output yang diinginkan?
Salman A
3
Pertanyaan Anda benar-benar tidak jelas. Saya hanya bisa mengerti apa yang Anda cari ketika saya melihat jawabannya (dan saya masih tidak yakin itu yang Anda inginkan). Juga, delta antara A dan B hanya bisa A+Bjika A dan B adalah nol.
Dmitry Grigoryev
3
The delta biasanya berarti perbedaan antara dua angka, yang selalu AB , dan kecuali jika Anda ingin untuk menandakan mana dari angka lebih besar, Anda akan mengambil nilai absolut abs (AB) .
Mick

Jawaban:

55

Sepertinya Anda hanya ingin perbedaan (delta) antara I18dan R18, dan Anda ingin selalu menjadi positif?

Formula ini akan melakukan itu:

=ABS(I18-R18)

Ini akan memberikan jawaban yang benar apakah I18positif, negatif atau nol.

Steve Kennedy
sumber
3
Lihatlah betapa rumitnya jawaban lainnya! Tetap sederhana!
Stewart
11
Agar adil, pertanyaan itu bertanya bagaimana membuat sarang IF()berfungsi dengan benar. Jawaban lain menjawab pertanyaan yang diajukan. Tetapi terkadang, mengambil jalan yang berbeda akan membuat Anda ke tempat yang tepat lebih cepat.
Steve Kennedy
@Mulailah Agar lebih adil, tidak jelas apakah OP menginginkan perbedaan absolut. Jawaban ToddCurry dan PeterH terlihat memenuhi persyaratan yang ditetapkan OP yang tidak mengarah pada perbedaan absolut.
JoL
@ Mulailah, sebagian besar jawaban lain pada dasarnya sama dengan yang ini, kecuali bahwa mereka mengembangkan fungsi ABS () di blok bersyarat yang lebih mendasar. Tapi tidak ada yang rumit, sungguh.
cedbeu
1
@cedbeu Rumit, pasti. Kalau saja karena jawaban yang lain lebih sulit dibaca dan diurai, secara mental.
Stewart
6

Alih-alih memeriksa operan untuk negatif, periksa hasilnya.

=IF(I18-R18>0,I18-R18,R18-I18)
JoL
sumber
3
kondisi ini juga dapat digantikan olehI18>R18
Liora Haydont
5

Mari sederhanakan kode asli Anda:

If X < 0:
    Z = X + Y

Else X > 0:
    Z = X - Y

Sekarang Anda mengatakan bahwa ketika X <0 dan Y <0, Anda sebenarnya menginginkan hasilnya X - Y dan bukan X + Y. OKE.

If Y < 0:
   If X < 0:
      Z = X - Y
   Else:
      Z = X + Y
Else:
   If X < 0:
      Z = X - Y
   Else:
      Z = X + Y

Itu tertulis.

=IF(R18<0,IF(I18<0,I18-R18,I18+R18),IF(I18<0,I18-R18,I18+R18))

Seperti disebutkan di atas, Anda tidak memiliki kotak nol. Anda mungkin dapat mengubah salah satu komparator LT / GT ke LE / GE dengan hanya menambahkan tanda sama dengan - tergantung pada data dan logika Anda.

Todd Curry
sumber
Kecuali saya salah membaca sesuatu, dalam kodesemu yang lebih besar yang Anda miliki If Y<0 {A} Else {B}tetapi A dan B identik. Apakah ada kesalahan ketik?
Kamil Drakari
3

Anda dapat menggunakan di bawah ini:

=IF(AND(I18<0,R18<0),I18-R18,IF(I18<0,I18+R18,IF(I18>0,I18-R18)))

Satu-satunya kelemahan saya dapat melihat dengan ini adalah, apa yang Anda lakukan dalam contoh di mana I18 = 0, Anda tidak punya apa-apa untuk ini.

Pokoknya jika Anda ingin menambahkan sesuatu untuk itu, lihat di bawah:

=IF(AND(I18<0,R18<0),I18-R18,IF(I18<0,I18+R18,IF(I18>0,I18-R18,"IF I18 = zero goes here")))
PeterH
sumber
1

Saya tidak tahu tentang ABS. Saya akan menyarankan

= SQRT ((I18-R18) ^ 2)

Jinja
sumber
2
Menimbang bahwa perhitungan akar kuadratnya non-sepele dan rawan kesalahan pembulatan, itu kurang optimal.
David Foerster
0

Ini bekerja untuk saya -> IF (AND (I18 <0, R18 <0), I18-R18, IF (I18 <0, ((R18-I18) * - 1), IF (I18> = 0, I18-R18 )))

Ini mencakup semua skenario: Variabel A | Variabel B + ve | + ve + ve | -ve -ve | + ve -ve | -ve

pengguna1001108
sumber
(1) Tabel empat (2²) kemungkinan kombinasi dari dua variabel biner ( + /  -) adalah sepele, dan menunjukkannya tidak melakukan apa pun untuk memperjelas jawaban Anda. Jika Anda akan memposting jawaban untuk pertanyaan yang tidak jelas seperti ini, ada baiknya menjelaskan pertanyaan apa yang menurut Anda Anda jawab. (2) Apa pun yang Anda lakukan, rumus Anda tampaknya tidak perlu rumit. Menjelaskan apa yang dilakukannya akan sangat membantu. ..... edit  jawaban Anda untuk membuatnya lebih jelas dan lebih lengkap.
Scott
0

Saya hanya mengalami situasi (mengukur pembacaan Lab warna) di mana saya tidak perlu hanya perbedaan antara x & y tetapi gerakan delta positif atau negatif. Jadi biasanya -5 minus -2 = -3 tetapi ingin menunjukkan bahwa delta sebenarnya berada di arah positif -3 bukan yang saya cari jadi:

= JIKA (A1> B1, ABS (A1-B1) * - 1, ABS (A1-B1))

Sederhananya jika bacaan ke-2 (lebih baru) lebih kecil, saya tahu hasilnya adalah gerakan negatif (jadi * -1) dan telah bergerak lebih jauh ke sisi negatif dari sumbu. Lain jika bacaan ke-2 lebih besar, nilai ABS murni berfungsi mengetahui perbedaannya dalam arah positif.

Thomas Muchard
sumber