중첩된 IF 및 CHOOSE 수식 개선

중첩된 IF 및 CHOOSE 수식 개선

진행 중인 작업 주문에 대한 주간 상태를 CSV 파일로 받습니다. 여기에는 완료 프로세스의 다양한 단계와 관련된 3자리 상태 코드가 포함됩니다.

상태 코드 대신 일반 언어 정의를 넣어야 합니다.

내 스프레드시트는 이 작업을 자동으로 수행하지만 지금 내가 수행하는 방식은 스프레드시트가 정말 비효율적이라고 생각합니다. 이 작업을 수행하는 시트 자체는 75MB가 넘으며 모든 작업을 수렁에 빠뜨립니다.

현재 시트가 작동하는 방식은 [@[SO Codes]에 CSV의 상태 코드가 있고 행 1에 정적 코드 목록이 있는 16열 그리드입니다. 각 행은 다음과 같이 가로 16개입니다.

=IF([@[SO Codes]]=Table3[[#Headers],[AA]],1,0)
=IF([@[SO Codes]]=Table3[[#Headers],[CA]],2,0)
=IF([@[SO Codes]]=Table3[[#Headers],[CAN]],3,0)

따라서 각 상태 코드에는 16x[열린 작업 주문 수] 그리드에 표시되는 1부터 16까지의 숫자가 할당됩니다.

의 마지막 열은 다음과 같습니다.

=SUBTOTAL(9,E2:T2)
=SUBTOTAL(9,E3:T3)
=SUBTOTAL(9,E4:T4)

마지막으로 다음과 같은 줄이 내 추적기에 입력됩니다. =CHOOSE([@Status],IF([@Status]=J2,L2),IF([@Status]=J3,L3),IF([@Status]=J4,L4),IF([@Status]=J5,L5),IF([@Status]=J6,L6),IF([@Status]=J7,L7),IF([@Status]=J8,L8),IF([@Status]=J9,L9),IF([@Status]=J10,L10),IF([@Status]=J11,L11),IF([@Status]=J12,L12),IF([@Status]=J13,L13),IF([@Status]=J14,L14),IF([@Status]=J15,L15),IF([@Status]=J16,L16),IF([@Status]=J17,L17))

여기서 L 열은 일반 텍스트 코드 정의 목록이고 J3는 상태 코드 계산기에서 소계를 제공합니다.

나는 이 작업을 수행하는 데 더 우아하고 효율적인 방법이 있어야 한다는 것을 도울 수 없습니다. 어떤 통찰력이 있습니까? CSV의 코드에 =CHOOSE 함수를 직접 사용해 보았지만 숫자 값에서만 작동합니다. 제가 잘 설명하지 못한 것 같아서 각 단계의 사진을 포함시켰습니다.

CSV 코드 계산기 여기에 이미지 설명을 입력하세요

트래커 여기에 이미지 설명을 입력하세요

답변1

Choose 수식은 다음과 같이 작성할 수 있습니다.

=Vlookup([@Status],$J$2:$L$17,3,False)

나머지 문제가 무엇인지 잘 모르겠습니다.

답변2

코드 계산기:

긴 테이블 대신 다음을 사용할 수 있습니다 MATCH().
=MATCH([@[SO CODES]],TableHelper[code list],0)
여기에 이미지 설명을 입력하세요

트래커

여기서는 원래 공식을 올바르게 이해하고 있는지 잘 모르겠습니다.

=CHOOSE([@Status],IF([@Status]=J2,L2),IF([@Status]=J3,L3)...- 만약 [@Status]<>J2? 아니면 비현실적인 시나리오인가요? 그렇다면 간단한 INDEX()기능을 사용하십시오.
=INDEX($L$2:$L$17,[@Status])

그렇지 않은 경우 수식에서 수행할 작업을 지정하세요.

궁극적인 최적화:

다시 말하지만, 문제를 잘 이해했다면 이중 시트도 필요하지 않고 하나만 필요합니다.

CSV의 코드에 =CHOOSE 함수를 직접 사용해 보았지만 숫자 값에서만 작동합니다.

VLOOKUP()실제로 다음과 같이 코드를 직접 입력할 수 있습니다 .
=VLOOKUP(<code>,$J:$K,2,false)

어디

  • <code>설명을 얻으려는 코드입니다.
  • $J:$K스크린샷에 따른 코드 및 설명 열입니다.

관련 정보