Menulis ulang formula beberapa IF bersarang yang terlalu dalam

17

Saya menulis rumus sederhana untuk memeriksa nilai sel. Sayangnya, rumus ini terlalu panjang untuk versi Excel 2007 saya. Kesalahannya adalah:

Jerman: Die angegebene Formel kann nicht eingegeben werden, da sie mehr als 64 Verschachtelungsebenen verwendet.

Bahasa Inggris: Formula yang ditentukan tidak dapat dimasukkan karena menggunakan lebih banyak tingkat bersarang daripada yang diizinkan dalam format file saat ini

Adakah yang tahu bagaimana cara membuat formula lebih pendek?

"WENN" berarti "JIKA" dalam bahasa Jerman.

   =WENN(N7>=100000000;0;
    WENN(N7>=99000000;1;
    WENN(N7>=98000000;2;
    WENN(N7>=97000000;3;
    WENN(N7>=96000000;4;
    WENN(N7>=95000000;5;
    WENN(N7>=94000000;6;
    WENN(N7>=93000000;7;
    WENN(N7>=92000000;8;
    WENN(N7>=91000000;9;
    WENN(N7>=90000000;10;
    WENN(N7>=89000000;11;
    WENN(N7>=88000000;12;
    WENN(N7>=87000000;13;
    WENN(N7>=86000000;14;
    WENN(N7>=85000000;15;
    WENN(N7>=84000000;16;
    WENN(N7>=83000000;17;
    WENN(N7>=82000000;18;
    WENN(N7>=81000000;19;
    WENN(N7>=80000000;20;
    WENN(N7>=79000000;21;
    WENN(N7>=78000000;22;
    WENN(N7>=77000000;23;
    WENN(N7>=76000000;24;
    WENN(N7>=75000000;25;
    WENN(N7>=74000000;26;
    WENN(N7>=73000000;27;
    WENN(N7>=72000000;28;
    WENN(N7>=71000000;29;
    WENN(N7>=70000000;30;
    WENN(N7>=69000000;31;
    WENN(N7>=68000000;32;
    WENN(N7>=67000000;33;
    WENN(N7>=66000000;34;
    WENN(N7>=65000000;35;
    WENN(N7>=64000000;36;
    WENN(N7>=63000000;37;
    WENN(N7>=62000000;38;
    WENN(N7>=61000000;39;
    WENN(N7>=60000000;40;
    WENN(N7>=59000000;41;
    WENN(N7>=58000000;42;
    WENN(N7>=57000000;43;
    WENN(N7>=56000000;44;
    WENN(N7>=55000000;45;
    WENN(N7>=54000000;46;
    WENN(N7>=53000000;47;
    WENN(N7>=52000000;48;
    WENN(N7>=51000000;49;
    WENN(N7>=50000000;50;
    WENN(N7>=49000000;51;
    WENN(N7>=48000000;52;
    WENN(N7>=47000000;53;
    WENN(N7>=46000000;54;
    WENN(N7>=45000000;55;
    WENN(N7>=44000000;56;
    WENN(N7>=43000000;57;
    WENN(N7>=42000000;58;
    WENN(N7>=41000000;59;
    WENN(N7>=40000000;60;
    WENN(N7>=39000000;61;
    WENN(N7>=38000000;62;
    WENN(N7>=37000000;63;
    WENN(N7>=36000000;64;
    WENN(N7>=35000000;65;
    WENN(N7>=34000000;66;
    WENN(N7>=33000000;67;
    WENN(N7>=32000000;68;
    WENN(N7>=31000000;69;
    WENN(N7>=30000000;70;
    WENN(N7>=29000000;71;
    WENN(N7>=28000000;72;
    WENN(N7>=27000000;73;
    WENN(N7>=26000000;74;
    WENN(N7>=25000000;75;
    WENN(N7>=24000000;76;
    WENN(N7>=23000000;77;
    WENN(N7>=22000000;78;
    WENN(N7>=21000000;79;
    WENN(N7>=20000000;80;
    WENN(N7>=19000000;81;
    WENN(N7>=18000000;82;
    WENN(N7>=17000000;83;
    WENN(N7>=16000000;84;
    WENN(N7>=15000000;85;
    WENN(N7>=14000000;86;
    WENN(N7>=13000000;87;
    WENN(N7>=12000000;88;
    WENN(N7>=11000000;89;
    WENN(N7>=10000000;90;
    WENN(N7>=9000000;91;
    WENN(N7>=8000000;92;
    WENN(N7>=7000000;93;
    WENN(N7>=6000000;94;
    WENN(N7>=5000000;95;
    WENN(N7>=4000000;96;
    WENN(N7>=3000000;97;
    WENN(N7>=2000000;98;
    WENN(N7>=1000000;99;
    WENN(N7>=500000;100;0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
evavienna
sumber
13
Pertanyaan Anda akan jauh lebih mudah dibaca jika Anda telah menyusun formula (ada suntingan yang tertunda mengenai hal ini) - dan, IMHO lebih penting, jika Anda jelaskan dengan kata-kata yang ingin Anda capai. Mungkin kita punya masalah besar di sini.
mpy
1
baris terakhir mengingatkan saya pada sebuah lelucon
kmdreko

Jawaban:

65

Saya pikir rumusnya setara dengan:

=IF(OR(N7>=100000000,N7<500000),0,100-INT(N7/1000000))

Sekarang Kevin telah memformat ulang formula, saya dapat melihat dengan jelas bahwa formula tersebut benar dalam semua kasus.

Berkat komentar si penanya, saya dapat menyatakan bahwa rumus Jerman yang setara adalah:

=WENN(ODER(N7>=100000000;N7<500000);0;100-GANZZAHL(N7/1000000))
AFH
sumber
Bekerja dengan luar biasa !!! thx - saya menggunakan de.excel-translator.de/translator untuk menerjemahkan rumus. Dalam bahasa Jerman sepertinya=WENN(ODER(N7>=100000000;N7<500000);0;100-GANZZAHL(N7/1000000))
evavienna
Gunakan VBA dan buat fungsi yang ditentukan pengguna.
user1750995
Agak menyedihkan bahwa ini melompati pertanyaan umum dan hanya memecahkan untuk contoh khusus ini.
pipa
Formula tampaknya benar tetapi jawaban sebenarnya adalah bahwa ini harus dilakukan dalam tabel pencarian seperti kata tevlyn. Mencoba melakukan ini dengan pernyataan If adalah praktik yang buruk.
WhatEvil
5
@pipe, @WhatEvil - Penanya ingin mengurangi ukuran IFpernyataannya, dan karena struktur datanya, saya memberikan jawaban yang jelas (kepada seorang ahli matematika) dan saya benar-benar tidak setuju bahwa itu adalah praktik yang salah atau buruk . Jelas sekali tabel pencarian diperlukan untuk fungsi yang kurang linier, tetapi terlalu banyak untuk data ini dan itu hampir tidak dapat dianggap optimal: perhitungan langsung selalu lebih baik daripada pencarian ketika yang terakhir dapat dihindari.
AFH
21

Masukkan semua nilai ambang Anda ke dalam rentang pada lembar kerja dan gunakan rumus pencarian dengan perkiraan kecocokan.

Urutkan data Anda naik berdasarkan nilai kolom pencarian. Kolom pencarian harus menjadi kolom pertama dari tabel pencarian jika Anda ingin menggunakan VLookup. Jika Anda senang menggunakan kombo Index / Match, kolom pencarian bisa di mana saja di tabel.

Tangkapan layar di bawah ini memiliki contoh tabel pencarian dalam sel A1 hingga B6. Tabel diurutkan naik dengan nilai-nilai di kolom A. Ini penting . Jika tabel tidak diurutkan naik, maka rumus berikut tidak akan berfungsi.

Nilai dalam sel E2 bukan pencocokan tepat untuk semua nilai di kolom A. Rumus Vlookup akan menemukan nilai terkecil berikutnya (yaitu 50) dan akan mengembalikan hasil dari kolom 2 dari tabel pencarian untuk pencocokan perkiraan ini. Perhatikan bahwa untuk pencocokan perkiraan parameter keempat VLookup harus "BENAR" atau 1.

Berikut ini rumusnya:

=VLOOKUP(E2,$A$1:$B$6,2,TRUE)

Dan tangkapan layar:

masukkan deskripsi gambar di sini

Nama Jerman untuk Vlookup adalah SVerweis (saya pikir), dan Anda harus mengganti koma dengan titik koma di German Excel. Saya tidak tahu apa "TRUE" dalam German Excel, tetapi Anda dapat menggunakan 1 untuk TRUE dan 0 untuk FALSE.

=SVerweis(E2;$A$1:$B$6;2;1)

Hoffentlich klappt !!

teylyn
sumber
Ich hoffe auch! Biarkan saya membaca ini - sepertinya banyak pekerjaan untuk saya. thx - saya beri tahu Anda jika saya dapat membuatnya bekerja :)
evavienna
Mengisi tabel angka tidak banyak pekerjaan jika angka-angka tersebut ditempatkan secara merata. Masukkan dua angka pertama, pilih dan seret gagang isian.
teylyn
TRUEadalah WAHRdan FALSEsekarang FALSCH.
IQV
Dan mengapa downvote?
teylyn