การเขียนสูตรของ IFs ที่ซ้อนกันหลายรายการที่ลึกเกินไป


17

ฉันเขียนสูตรง่าย ๆ เพื่อตรวจสอบค่าของเซลล์ ขออภัยสูตรยาวเกินไปสำหรับรุ่น Excel 2007 ของฉัน ข้อผิดพลาดคือ:

เยอรมัน: Die angegebene Formel kann nicht eingegeben werden, da sie mehr als 64 เวอร์ชันเต็ม

ภาษาอังกฤษ: ไม่สามารถป้อนสูตรที่ระบุได้เนื่องจากใช้การซ้อนในระดับมากกว่าที่อนุญาตในรูปแบบไฟล์ปัจจุบัน

แนวคิดใดที่ทำให้สูตรสั้นลง?

"WENN" หมายถึง "IF" ในภาษาเยอรมัน

   =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
คำถามของคุณจะสามารถอ่านได้มากขึ้นถ้าคุณได้จัดทำสูตร (มีการแก้ไขที่รอดำเนินการเกี่ยวกับเรื่องนี้) - และ IMHO มีความสำคัญมากกว่านี้หากคุณอธิบายด้วยคำที่ต้องการจะทำให้สำเร็จ บางทีเราอาจมีปัญหา xyที่นี่
mpy

1
บรรทัดสุดท้ายทำให้ฉันนึกถึงเรื่องตลก
kmdreko

คำตอบ:


65

ฉันคิดว่าสูตรเทียบเท่ากับ:

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

ตอนนี้เควินได้จัดรูปแบบสูตรใหม่แล้วฉันสามารถเห็นได้อย่างชัดเจนว่าสูตรถูกต้องในทุกกรณี

จากความคิดเห็นของผู้ถามฉันสามารถบอกได้ว่าสูตรเยอรมันเทียบเท่าคือ:

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

ทำงานได้ยอดเยี่ยม !!! ขอบคุณ - ฉันใช้de.excel-translator.de/translatorเพื่อแปลสูตร ในภาษาเยอรมันดูเหมือนว่า=WENN(ODER(N7>=100000000;N7<500000);0;100-GANZZAHL(N7/1000000))
evavienna

ใช้ VBA และสร้างฟังก์ชั่นที่ผู้ใช้กำหนด
user1750995

เศร้าเล็กน้อยที่สิ่งนี้ข้ามคำถามทั่วไปและแก้ไขได้เฉพาะตัวอย่างนี้เท่านั้น
ท่อ

สูตรดูเหมือนจะถูกต้อง แต่คำตอบที่แท้จริงคือสิ่งนี้ควรทำในตารางการค้นหาเช่น tevlyn พูดว่า การพยายามทำสิ่งนี้ด้วยคำสั่ง If เป็นแนวปฏิบัติที่ไม่ดี
WhatEvil

5
@pipe, @WhatEvil - ผู้ถามต้องการลดขนาดIFคำพูดของเขาและเนื่องจากโครงสร้างของข้อมูลของเขาฉันจึงให้คำตอบที่ชัดเจน (กับนักคณิตศาสตร์) และฉันไม่เห็นด้วยอย่างสมบูรณ์ว่าไม่ถูกต้องหรือไม่ถูกต้อง . เห็นได้ชัดว่าตารางการค้นหาจะต้องใช้ฟังก์ชั่นเชิงเส้นที่น้อยกว่า แต่มันเกินความเป็นจริงสำหรับข้อมูลเหล่านี้และถือว่าแทบจะไม่เหมาะสมที่สุด: การคำนวณโดยตรงนั้นดีกว่าการค้นหาเมื่อหลังสามารถหลีกเลี่ยงได้
AFH

21

ใส่ค่าเกณฑ์ทั้งหมดของคุณลงในช่วงบนแผ่นงานและใช้สูตรการค้นหาที่มีการจับคู่โดยประมาณ

เรียงลำดับข้อมูลของคุณจากน้อยไปมากตามค่าของคอลัมน์การค้นหา คอลัมน์การค้นหาต้องเป็นคอลัมน์แรกของตารางการค้นหาถ้าคุณต้องการใช้ VLookup หากคุณมีความสุขที่จะใช้คำสั่งผสมดัชนี / การแข่งขันคอลัมน์การค้นหาสามารถอยู่ที่ใดก็ได้ในตาราง

ภาพหน้าจอด้านล่างมีตารางค้นหาตัวอย่างในเซลล์ A1 ถึง B6 ตารางจะเรียงจากน้อยไปมากโดยค่าในคอลัมน์ A นี้เป็นสิ่งสำคัญ หากตารางไม่เรียงจากน้อยไปมากสูตรต่อไปนี้จะไม่ทำงาน

ค่าในเซลล์ E2 ไม่ตรงกับค่าใด ๆ ในคอลัมน์ A สูตร Vlookup จะค้นหาค่าที่เล็กที่สุดถัดไป (เช่น 50) และจะส่งคืนผลลัพธ์จากคอลัมน์ 2 ของตารางการค้นหาสำหรับการจับคู่โดยประมาณนี้ โปรดทราบว่าสำหรับการจับคู่โดยประมาณพารามิเตอร์ที่สี่ของ VLookup จะต้องเป็น "TRUE" หรือ 1

นี่คือสูตร:

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

และภาพหน้าจอ:

ป้อนคำอธิบายรูปภาพที่นี่

ชื่อภาษาเยอรมันของ Vlookup คือ SVerweis (ฉันคิดว่า) และคุณต้องแทนที่เครื่องหมายจุลภาคด้วยเครื่องหมายอัฒภาคใน German Excel ฉันไม่รู้ว่า "TRUE" ใน German Excel แต่คุณสามารถใช้ 1 สำหรับ TRUE และ 0 เป็น FALSE

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

Hoffentlich klappt's !!


ฉันมีความสุข! ให้ฉันอ่านสิ่งนี้ - ดูเหมือนว่าจะมีงานมากมายสำหรับฉัน ขอบคุณ - ฉันแจ้งให้คุณทราบว่าฉันสามารถทำให้มันทำงานได้หรือไม่ :)
evavienna

การกรอกตารางตัวเลขไม่ได้ผลมากนักหากตัวเลขนั้นเว้นระยะเท่ากัน ป้อนหมายเลขสองตัวแรกเลือกพวกเขาแล้วลากจุดจับเติม
teylyn

TRUEเป็นWAHRและเป็นFALSE FALSCH
IQV

และทำไมต้อง downvote
teylyn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.