Çok derin olan birden çok iç içe IF'nin formülünü yeniden yazma


17

Bir hücrenin değerini kontrol etmek için basit bir formül yazdım. Ne yazık ki, formül Excel 2007 sürümüm için çok uzun. Hata:

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

Türkçe: Belirtilen formül, geçerli dosya biçiminde izin verilenden daha fazla iç içe yerleştirme düzeyi kullandığı için girilemiyor

Formülü nasıl kısaltacağınız hakkında bir fikriniz var mı?

"WENN", Almanca "IF" anlamına gelir.

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

13
Formülü yapılandırmış olsaydınız (bununla ilgili bekleyen bir düzenleme varsa) sorunuz çok daha okunaklı olurdu - ve IMHO daha da önemlisi, eğer kelimelerle tarif ederseniz başarmak istiyorsunuz. Belki burada xy problemimiz var.
mpy

1
son satır bana bir şaka
kmdreko

Yanıtlar:


65

Formülün eşdeğer olduğunu düşünüyorum:

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

Şimdi bu Kevin formülü reformasyon var, ben formülü her durumda doğru olduğunu çok net görebiliriz.

Sorucının yorumu sayesinde, eşdeğer Almanca formülünün olduğunu söyleyebilirim:

=WENN(ODER(N7>=100000000;N7<500000);0;100-GANZZAHL(N7/1000000))

Harika çalışıyor !!! thx - formülü çevirmek için de.excel-translator.de/translator kullandım . Almanca'da benziyor=WENN(ODER(N7>=100000000;N7<500000);0;100-GANZZAHL(N7/1000000))
evavienna

VBA kullanın ve kullanıcı tanımlı bir işlev oluşturun.
user1750995

Bunun genel soruyu atlaması ve sadece bu özel örnek için çözmesi biraz üzücü.
boru

Formül doğru görünüyor ama asıl cevap bunun tevlyn'in dediği gibi bir arama tablosunda yapılması gerektiğidir. Bunu bir If ifadesiyle yapmaya çalışmak kötü bir uygulamadır.
WhatEvil

5
@pipe, @WhatEvil - Sorgulayıcı IFifadesinin boyutunu azaltmak istedi ve verilerinin yapısı nedeniyle, (matematikçiye) açık bir cevap verdim ve herhangi bir anlamda yanlış veya kötü uygulama olduğuna tamamen katılmıyorum . Açıkçası, daha az doğrusal bir fonksiyon için bir arama tablosuna ihtiyaç duyulacaktır, ancak bu veriler için aşırı doldurulmalıdır ve bunun optimal olduğu düşünülemez: doğrudan bir hesaplama, ikincisinin önlenebileceği bir aramadan her zaman daha iyidir.
AFH

21

Tüm eşik değerlerinizi bir çalışma sayfasındaki bir aralığa koyun ve yaklaşık eşleşmeli bir arama formülü kullanın.

Verilerinizi arama sütununun değerine göre artan şekilde sıralayın. VLookup kullanmak istiyorsanız, arama sütununun arama tablosunun ilk sütunu olması gerekir. Bir Dizin / Eşleme kombinasyonundan memnunsanız, arama sütunu tablonun herhangi bir yerinde olabilir.

Aşağıdaki ekran görüntüsünde A1 ila B6 hücrelerinde örnek arama tablosu vardır. Tablo, A sütunundaki değerlere göre artan şekilde sıralanır. Bu önemlidir . Tablo artan şekilde sıralanmamışsa, aşağıdaki formül çalışmaz.

E2 hücresindeki değer, A sütunundaki değerlerin hiçbiriyle tam olarak eşleşmez. Vlookup formülü, bir sonraki en küçük değeri (yani 50) bulur ve bu yaklaşık eşleşme için arama tablosunun 2. sütunundan sonucu döndürür. Yaklaşık bir eşleşme için VLookup'un dördüncü parametresinin "TRUE" veya 1 olması gerektiğini unutmayın.

İşte formül:

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

Ve ekran görüntüsü:

resim açıklamasını buraya girin

Vlookup için Almanca adı SVerweis (sanırım) ve Alman Excel'deki virgülleri noktalı virgülle değiştirmeniz gerekiyor. Almanca Excel'de "TRUE" ifadesinin ne olduğunu bilmiyorum, ancak TRUE için 1 ve FALSE için 0 kullanabilirsiniz.

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

Hoffentlich Klappt !!


Ich hoffe auch! Bunu okutayım - benim için çok iş gibi görünüyor. thx - i im bunu yapmak mümkün eğer size bildirin :)
evavienna

Sayılar eşit aralıklarla yerleştirilmişse, sayılar tablosunu doldurmak pek iş değildir. İlk iki sayıyı girin, seçin ve doldurma tutamacını sürükleyin.
teylyn

TRUEolduğunu WAHRve FALSEolduğunu FALSCH.
IQV

Neden bir iniş vekili?
teylyn
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.