2014-07-12 6 views
1

간단한 수식은 아래의 수식을 사용할 수 없습니다. 동일한 액세스가 MS Excel에서 사용될 수 있고 구문 오류가 발생하여 알아낼 수없는 경우 오류.IF 및 OR 수식

일시 중지 날짜 : IIF (또는 (LEFT ([CUSTOMER_SEGMENT], 2) = "IP", LEFT ([CUSTOMER_SEGMENT], 2) = "IT", LEFT ([CUSTOMER_SEGMENT], 2) = "ID") , [BILLDATE] + 55, IIF (또는 왼쪽 ([CUSTOMER_SEGMENT], 2) = "IG", 왼쪽 ([CUSTOMER_SEGMENT], 2) = "IS" [BARRING_SERVICE] = "A", [BARRING_SERVICE] = "B"), [AGE_ON_NETWORK]> = 12), [BILLDATE] +55, IIF (그리고 OR ([BARRING_SERVICE] = "C", [BARRING_SERVICE] = " (BIE_ON_NETWORK) = 5, [AGE_ON_NETWORK] < = 11), [BILLDATE] + 34, [BILLDATE] + 29)))))

답변

5

OR()기능은 Access에서 지원하지 않는 Excel 구문입니다. 액세스는 대신 OR연산자을 사용합니다. 당신이 Access에서

IF(OR(Condition1, Condition2), ValueIfTrue, ValueIfFalse) 

을 사용 곳 Excel에서 그래서 당신이 사용하는 것이

IIf(Condition1 OR Condition2, ValueIfTrue, ValueIfFalse) 
0

중첩 된 IIF의 상당히 괴물입니다.

부터 당신이에 SEGMENT_GROUP를 매핑하는 테이블을 (있는 경우) 당신은 단순히 CUSTOMER_SEGMENT 테이블에 열 SEGMENT_GROUP를 추가해야 CUSTOMER_SEGMENT 관련하여 SUSPENSION_DATES을 계산하면됩니다 만들고 싶은의 furst 부분 SUSPENSION_IN_DAYS, 즉 BILLDATE에 추가 할 일 수.

 

CUSTOMER_SEGMENT SEGMENT_GROUP 
IT_Foo   IT 
IT_Bar   IT 
ID_Else   ID 
... 

SEGMENT_GROUP SUSPENSION_IN_DAYS 
IT    55 
ID    55 
... 

이러한 값이 변하면 더 쉽게 유지할 수 있으며 가입으로 IIF의 첫 번째 부분을 가져올 수 있습니다.