너무 깊은 중첩 된 여러 IF의 수식 다시 작성


17

셀의 값을 확인하는 간단한 수식을 작성했습니다. 불행히도 수식이 Excel 2007 버전에 비해 너무 깁니다. 오류는 다음과 같습니다

독일어 : 다국적 기업, 다국적 기업 64 Verschachtelungsebenen verwendet.

영어 : 지정된 수식은 현재 파일 형식에서 허용되는 것보다 더 많은 중첩 수준을 사용하므로 입력 할 수 없습니다.

공식을 짧게 만드는 방법에 대한 아이디어가 있습니까?

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

대박! thx- 수식을 번역하기 위해 de.excel-translator.de/translator 를 사용 했습니다 . 독일어의 모습=WENN(ODER(N7>=100000000;N7<500000);0;100-GANZZAHL(N7/1000000))
evavienna

VBA를 사용하고 사용자 정의 함수를 작성하십시오.
user1750995

이것이 일반적인 질문을 건너 뛰고이 특정 예제에서만 해결된다는 것이 조금 슬 sad습니다.
파이프

공식은 정확 해 보이지만 실제 답변은 테 블린과 같은 조회 테이블 내에서 수행해야한다는 것입니다. 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 (제 생각에)이며 독일어 Excel에서 쉼표를 세미콜론으로 바꿔야합니다. 독일어 Excel에서 "TRUE"가 무엇인지 모르지만 TRUE에는 1을, FALSE에는 0을 사용할 수 있습니다.

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

Hoffentlich klappt 's !!


이치 ​​호프! 이 글을 읽어 보도록하겠습니다. 많은 작업처럼 보입니다.
thx-나는

숫자가 균등하게 간격을두면 숫자 테이블을 채우는 것이 많은 작업이 아닙니다. 처음 두 숫자를 입력하고 선택하고 채우기 핸들을 드래그하십시오.
teylyn

TRUE이다 WAHR하고 FALSE있다 FALSCH.
IQV

왜 다운 보트인가?
teylyn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.