Excel: 쉼표로 구분된 값을 동적으로 추출하고 별도의 목록에서 추가된 값을 반환합니다.

Excel: 쉼표로 구분된 값을 동적으로 추출하고 별도의 목록에서 추가된 값을 반환합니다.

사용자가 쉼표로 구분된 숫자 집합을 제공하고 별도의 조회 비용 목록을 작성하는 상황이 있습니다. 사용자가 값을 입력하면 별도의 셀이 총 값을 반환하며 아래와 같습니다.

[사용자 입력값][추가비용 반환값]

비용 조회 셀

  1. $100
  2. $200
  3. $300
  4. $400 등

사용자 입력의 예는 다음과 같습니다: [$500]를 반환해야 하는 [1, 4 ]

현재 정의되지 않은 수의 쉼표를 읽는 데 어려움을 겪고 있습니다. $0를 반환해야 하는 쉼표 없이 입력이 없을 수도 있고, 쉼표(또는 위의 예와 같이 쉼표와 공백)로 구분된 200개의 서로 다른 값일 수도 있습니다.

내 생각 과정은 쉼표로 구분된 값을 가져와 각 숫자를 새 셀로 나눈 다음 VLOOKUP을 사용하여 비용 금액을 얻은 다음 모두 더하여 반환 값을 얻는 것이었습니다. 이 모든 것이 작동합니다만약에쉼표로 구분된 정의되지 않은 수의 값을 구분하는 수식을 얻을 수 있습니다. 다음과 같은 것 :

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

수식에서도 이것이 가능합니까? 사용자는 조회 셀을 채우고 필요한 숫자를 입력하는 것 외에는 아무것도 할 필요가 없습니다.

답변1

이 배열 수식은 IF 문자열의 숫자와 함께 작동하므로 수식에서 CO# 를 제거해야 합니다 .--

이것을 D2에 넣으세요:

=IF(LEN($E$1)-LEN(SUBSTITUTE($E$1,",",""))+1>=ROW($A1),INDEX(A:A,MATCH(--TRIM(MID(SUBSTITUTE($E$1,",",REPT( " ",99)),(ROW($A1)-1)*99+1,99)),$A:$A,0)),IF(ROW($A1)=LEN($E$1)-LEN(SUBSTITUTE($E$1,",",""))+2,IF(COLUMN(A$1) = 1, "$",SUM(INDEX($B:$B,MATCH(N(IF(1,--TRIM(MID(SUBSTITUTE($E$1,",",REPT( " ",99)),(ROW(INDEX($AAB:$AAB,1):INDEX($AAB:$AAB,LEN($E$1)-LEN(SUBSTITUTE($E$1,",",""))+1))-1)*99+1,99)))),$A:$A,0)))),""))

Enter 대신 Ctrl-Shift-Enter를 눌러 확인하세요. 그런 다음 필요한 모든 행을 처리할 수 있을 만큼 한 열을 복사하고 아래로 복사합니다.

목록의 위치에 따라 다양한 IF 문은 문자열을 분할하고 MATCH에 대한 부분 또는 모든 부분을 반환하고, 차례로 상대 위치 중 전체 또는 하나를 INDEX에 반환합니다. 그런 다음 모든 부분을 합산하거나 올바른 단일 값을 반환합니다.

필요에 따라 자동으로 크기가 조정됩니다.

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

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

관련 정보