Misalkan sel saya A1 dalam lembar kerja Excel menampung angka 3 . Jika saya memasukkan formula
= - A1^2 + A1
dalam A2, maka A2 menunjukkan angka 12, ketika harus menunjukkan -6 (atau -9 + 3)
Mengapa demikian? Bagaimana saya bisa mencegah perilaku menyesatkan ini?
microsoft-excel
worksheet-function
notation
Rodolfo Oviedo
sumber
sumber
Jawaban:
Jawaban singkat
Untuk mengatasi masalah ini, tambahkan saja 0 sebelum tanda sama dengan
atau tambahkan beberapa tanda kurung untuk memaksakan urutan operasi standar
atau ganti tanda minus dengan interpretasi umum dari perkalian dengan -1
Dalam kasus khusus ini, di mana Anda memiliki istilah tambahan + A1, solusi terbaik adalah yang diusulkan oleh @ lioness99a:
Penjelasan detail
Di bawah konvensi Excel,
sama dengan (-3) ^ 2 = 9, sementara
sama dengan 0-9 = -9.
Mengapa menambahkan 0 saja mengubah hasilnya?
Tidak didahului oleh minuend, tanda minus pada -3 ^ 2 dianggap operator negasi , yang merupakan operator unary (dengan hanya satu argumen) yang mengubah tanda nomor (atau ekspresi) yang mengikuti. Namun, tanda minus pada 0-3 ^ 2 adalah operator pengurangan , yang merupakan operator biner yang mengurangi yang mengikuti
-
dari apa yang terjadi sebelumnya-
. Menurut konvensi Excel, operator eksponensial^
dihitung setelah operator negasi dan sebelum operator pengurangan . Lihat "Operator penghitungan dan prioritas di Excel" , bagian "Urutan di mana Excel melakukan operasi dalam rumus".Konvensi matematika standar adalah bahwa eksponensial dihitung sebelum negasi dan pengurangan atau, lebih sederhana dinyatakan,
^
dihitung sebelumnya-
. Dengan memalukan, Excel memilih konvensi yang berbeda dari aturan aljabar, buku teks sekolah, penulisan akademik, kalkulator ilmiah, Lotus 1-2-3, Mathematica, Maple, bahasa berorientasi komputasi seperti Fortran atau Matlab, MS Works, dan ... VBA (the bahasa yang digunakan untuk menulis makro Excel). Sayangnya, Calc dari LibreOffice dan Google Sheets mengikuti konvensi yang sama untuk kompatibilitas dengan Excel. Namun, menempatkan ekspresi di kotak pencarian atau bilah Google memberikan hasil yang sangat baik. Jika Anda menekan enter, urutan perhitungan akan diberikan dengan menggunakan tanda kurung. Sebuah diskusi di mana seorang ahli matematika membunuh argumen "seorang ilmuwan komputer" yang membela didahului negasi atas eksponitasi: http://mathforum.org/library/drmath/view/69058.htmlPenanganan Masalah Umum
Jika Anda ingin menghitung
tambahkan 0 sebelum tanda sama dengan
atau tambahkan beberapa tanda kurung untuk memaksakan urutan operasi standar
atau ganti tanda minus dengan interpretasi umum dari perkalian dengan -1
Dari alternatif di atas, saya lebih suka menambahkan tanda 0 sebelum de minus karena ini adalah yang paling praktis. Jika ekspresi sudah dikelilingi oleh tanda kurung, saya menghindari menambahkan tanda kurung. Penggunaan tanda kurung yang banyak membuat ekspresi lebih sulit untuk dibaca, di-debug dan ditulis.
Jika istilah tambahan ditambahkan (atau dikurangi tanpa masalah daya-rata),
solusi terbaik adalah menempatkan ExtraTerm terlebih dahulu,
Sebuah komentar untuk jawaban lain mengatakan bahwa satu-satunya kasus Anda harus menyadari aturan diutamakan non-standar adalah di mana tanda minus mengikuti tanda sama dengan (= -). Namun, ada contoh lain, seperti = exp (-x ^ 2) atau = (- 2 ^ 2 = 2 ^ 2), di mana tidak ada minuend sebelum tanda minus.
Terima kasih kepada @BruceWayne karena telah mengajukan jawaban singkat, yang saya tulis di awal.
Anda mungkin tertarik dengan Menurut Excel, 4 ^ 3 ^ 2 = (4 ^ 3) ^ 2. Apakah ini benar-benar konvensi matematika standar?
sumber
Sedikit lebih sukses daripada Jawaban Rodolfo, Anda dapat menggunakan:
(Sunting: Saya sama sekali tidak melihat itu adalah pertanyaan / jawaban diri.)
sumber
Seorang pemimpin
-
dianggap bagian dari masa jabatan pertama.=-3^2
diproses sebagai(-3)^2 = 9
Dengan nol di awal itu malah diperlakukan sebagai pengurangan normal.
=0-3^2
diproses sebagai0 - 3^2 = -9
Dan jika Anda memiliki dua operator, maka hal yang sama akan terjadi.
=0--3^2
diproses sebagai0 - (-3)^2 = -9
dan=0+-3^2
diproses sebagai0 + (-3)^2 = 9
sumber
Karena Excel menafsirkan persamaan Anda sebagai:
(-x) ^ 2 + x
Ketika Anda menginginkan:
- (x ^ 2) + x
Untuk mencegah perilaku yang tidak diinginkan ini, saya menemukan praktik terbaik adalah dengan menggunakan tanda kurung untuk mendefinisikan sistem prioritas Anda sendiri, karena negasi tidak sama dengan pengurangan, dan dengan demikian tidak dicakup oleh PEMDAS. Contohnya seperti:
(- (x ^ 2)) + x
Mungkin berlebihan, tetapi ini adalah bagaimana saya menjamin Excel berperilaku seperti yang saya inginkan.
sumber
x - x^2
. Ini memastikan - diartikan sebagai operator pengurangan biner.Ekspresi
= - A1^2 + A1
ini khusus untuk Excel sehingga harus mengikuti aturan Excel. Bertentangan dengan beberapa jawaban lain di sini, tidak ada yang benar urutan prioritas. Hanya ada konvensi yang berbeda yang diadopsi oleh aplikasi yang berbeda. Untuk referensi Anda, urutan prioritas yang digunakan oleh excel adalah:Yang bisa Anda ganti menggunakan tanda kurung.
sumber
-
bisa unary atau binary. Tetapi itu tidak menyiratkan urutan operasi. Bahasa lain benar: dalam Python, Ruby, Oktaf, Awk, dan Haskell (lima bahasa pertama dengan operator eksponensial yang muncul dalam pikiran),-3 ** 2
selalu dievaluasi-9
. Mengapa? Karena itu jawaban yang benar.Anda dapat memilikinya:
akan mengembalikan 12 , tetapi:
akan mengembalikan -6
Jika Anda merasa bahwa mengembalikan 12 melanggar akal sehat; Ketahuilah bahwa Google Sheets melakukan hal yang sama.
sumber
=A1-A1^2
juga mengembalikan -6Atau, Anda bisa melakukannya
= A1 - A1^2
karena
-y + x = x-y
sumber
Orang lain telah menjawab "bagaimana saya bisa menghindari ini?" bagian dari pertanyaan. Saya akan memberi tahu Anda mengapa itu terjadi.
Itu terjadi karena komputer pribadi pada tahun 1979 memiliki memori dan kemampuan pemrosesan yang sangat terbatas.
VisiCalc diperkenalkan untuk Apple II pada 1979, dua tahun sebelum rilis awal IBM PC (yang kebanyakan komputer desktop dan laptop modern melacak keturunan langsung mereka). Apple II dapat memiliki RAM hingga 64 KiB (65.536 bytes), dan VisiCalc membutuhkan setidaknya 32 KiB untuk dijalankan. Sebagai tambahan di sini, VisiCalc agak banyak dianggap sebagai "aplikasi pembunuh" untuk Apple II, dan mungkin memang untuk mikrokomputer pribadi secara umum.
Semakin sedikit kasus khusus dan lebih sedikit rumus yang dibutuhkan, semakin mudah (dan karena itu lebih kecil) kode untuk menguraikan formula spreadsheet dapat dibuat. Oleh karena itu masuk akal untuk meminta pengguna untuk menjadi agak lebih eksplisit dalam kasus sudut, dengan imbalan bisa menangani spreadsheet yang lebih besar. Ingat, bahkan dengan Apple II kelas atas, Anda hanya memiliki beberapa puluh kilobyte untuk dimainkan setelah memori yang diperlukan oleh aplikasi dihitung. Dengan sistem memori rendah (RAM 48 KiB bukan konfigurasi yang tidak biasa untuk mesin "serius"), batasnya bahkan lebih rendah.
Ketika IBM memperkenalkan PC mereka, port VisiCalc untuk arsitektur baru dibuat. Wikipedia menyebut port ini sebagai "bug kompatibel" , jadi Anda akan sangat berharap untuk melihat perilaku parsing rumus yang sama persis, bahkan jika sistem secara teknis mampu melakukan parsing yang lebih kompleks.
Mulai tahun 1982, Microsoft berkompetisi dengan VisiCalc, dan kemudian 1-2-3, dengan spreadsheet lintas-platform Multiplan . Kemudian, Lotus 1-2-3 diperkenalkan pada tahun 1983 khusus untuk PC IBM, dan dengan cepat mengambil alih VisiCalc. Untuk mempermudah transisi, masuk akal bagi keduanya untuk mem-parsing rumus dengan cara yang sama seperti yang dilakukan VisiCalc. Jadi perilaku pandangan ke depan terbatas akan dilakukan ke depan.
Pada tahun 1985, Microsoft memperkenalkan Excel , awalnya untuk Macintosh dan dimulai dengan versi 2 pada tahun 1987 untuk PC. Sekali lagi, untuk membuat transisi lebih mudah, masuk akal untuk meneruskan formula parsing perilaku yang sudah digunakan orang sejak sekarang hampir satu dekade.
Dengan setiap pemutakhiran Excel, peluang untuk mengubah perilaku ada, tetapi tidak hanya akan mengharuskan pengguna mempelajari cara baru untuk mengetik rumus, juga berisiko melanggar kompatibilitas dengan spreadsheet yang digunakan atau dibuat dengan versi sebelumnya. Di pasar yang masih sangat kompetitif dengan beberapa perusahaan komersial bersaing satu sama lain di setiap bidang, keputusan itu kemungkinan dibuat untuk menjaga perilaku yang biasa dilakukan pengguna.
Maju cepat ke 2019, dan kami masih terjebak dengan formula parsing keputusan perilaku yang semula dibuat paling lambat 1978-1979.
sumber
Ekspresi
- A1^2
berisi dua operator, yaitu operator negasi unary-
dan operator eksponensial biner^
. Dengan tidak adanya tanda kurung, mungkin ada dua interpretasi. Antara:atau:
Yang pertama mengatakan pertama lakukan eksponensial dengan operan
A1
dan2
, kemudian lakukan negasi untuk itu.Yang kedua mengatakan pertama lakukan negasi pada operan
A1
, dan kemudian gunakan eksponensial pada hasil itu dan2
.Seperti yang dikatakan dalam komentar untuk pertanyaan, Powers memiliki prioritas lebih tinggi daripada tanda minus di lingkungan waras. Yang berarti, yang terbaik adalah jika sistem mengasumsikan yang pertama.
Namun, Excel lebih memilih yang kedua.
Pelajarannya adalah, jika Anda tidak yakin apakah lingkungan Anda waras atau tidak, sertakan tanda kurung untuk berada di sisi yang aman. Jadi, tulis
-(A1^2)
.sumber
Ini bukan masalah dengan excel tetapi dengan eksponen dan negatif. Ketika Anda mengambil nomor dan menaikkannya ke kekuatan genap, Anda membatalkan tanda negatif.
Anda harus menggunakan tanda kurung dan beberapa dengan
-1
sumber
-x^2
mana x adalah 3 dan dix^2
mana x adalah -3.-x^2+x
tidak akan pernah mencapai 12: wolframalpha.com/input/?i=-x%5E2%2Bx-x ^ 2 + x di mana x = 3 Ini adalah contoh dari persamaan kuadrat Persamaan dapat ditulis seperti ini: -3 * -3 + 3: Perkalian didahulukan dari penambahan sehingga hasilnya akan ditulis sebagai berikut: 9 + 3 : Why = 9 karena angka negatif xa angka negatif memberikan hasil positif. Ini dapat diverifikasi menggunakan kalkulator, slide rule, atau program matematika komputer apa pun. Hasil akhir 9 + 3 = 12
sumber
Ini hanya matematika yang sangat sederhana.
Aturan 1. Bahkan penggandaan angka negatif, akan menghasilkan hasil positif:
Hal ini disebabkan fakta bahwa minus membatalkan satu sama lain secara berpasangan.
Aturan 2. Kekuatan setiap nomor mengidentifikasi bahwa nomor ini akan dikalikan dengan sendirinya beberapa kali.
Dan jika Anda dapat melihat Peraturan nomor 1 ..
Aturan 3. Perkalian dan Divisi memiliki prioritas lebih tinggi, daripada penambahan dan pengurangan.
Dan ada jawaban untuk pertanyaan Anda:
Menggabungkan ketiga aturan dari sebelumnya:
Saran saya kepada Anda adalah meluangkan waktu setiap tahun dan terus menyegarkan aturan dasar matematika.
Ini sebenarnya adalah keterampilan yang Anda dapat mempertahankan dan tetap di atas sebagian besar dunia, hanya dengan mengetahui matematika dasar.
sumber
+-*/
, tetapi bukan operator unary suka-
atau+
. Diutamakan dari operator daya lebih tinggi dari*
dan/
tetapi operator unary memiliki prioritas lebih tinggi