다른 열의 키를 사용하여 함수로 열을 완성하려면 어떻게 해야 합니까?

다른 열의 키를 사용하여 함수로 열을 완성하려면 어떻게 해야 합니까?

저는 수천 명의 학생에 대한 가중 평균을 계산하려고 합니다.

개별 학습자를 위해 이를 차례로 수행할 수 있습니다(SUM PRODUCTS).

문제는 수천 명의 학생들에게 동시에 이 작업을 수행하는 방법을 모른다는 것입니다.

학생마다 성적의 수가 다르며, 성적마다 가중치도 다릅니다.

내가 찾은 것은 학생 코드에 따라 데이터를 정렬하는 것뿐이었습니다. 그리고 키가 동일한 한 주어진 수식을 계산하려고 하면 반복됩니다.

어떻게 해야 되는지 도와주세요.

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

답변1

이를 수행하는 최소한 두 가지 쉬운 방법이 있습니다. 둘 다 원하는 값을 "필터링"한 다음 산술을 수행합니다.

하나는 간단하고 SUMPRODUCT()만족스러워 보이는 것을 사용하지만 작업할 적절한 항목을 선택하기 위해 값 목록에 대한 필터링을 수행합니다. FILTER()자격을 갖춘 행을 선택한 다음 다시 사용하여 내부 결과 FILTER()에서 열을 선택합니다 .FILTER()

=SUMPRODUCT(  FILTER(  FILTER(B1:D12, B1:B12=I1),  {0,1,0}),  FILTER(  FILTER(B1:D12, B1:B12=I1),  {0,0,1}))

제시된 공식은 학생이 조회할 I1의 조회 입력 셀을 가정합니다. 물론 열의 범위는 12가 아니라 수천이 됩니다.

그러나 "THOUSANDS"로 작업하려면 주소를 범위로 변경하기만 하면 필요한 만큼 열 I을 사용할 수 있습니다. 또는 (아마도) 하나가 "수천"이라고 말할 때 "모두"를 의미하는 경우 "수천"에 있는 각 학생 이름의 단일 인스턴스 목록을 추출하기 위해 UNIQUE()세 번째 매개변수 세트와 함께 사용할 수 있습니다. FALSE그러나 해당 배열을 생성하더라도 I1#전체 결과를 캡처하는 데만 사용할 수는 없는 것 같습니다. 나는 이것이 조회 범위의 길이가 다르고 UNIQUE().

FILTER()실제로 포함된 행에 대한 TRUE/FALSE 결과 목록을 생성합니다. 여기서 "비결"은 해당 목록을 직접 입력하여 원하는 열을 얻는 것입니다(예: 두 번째 열을 선택하려면 {0,1,0}). 하드코딩이 실제로 유용한 시기이지만 수식을 동적으로 만드는 방식으로 이러한 배열을 확실히 만들 수 있습니다. 여기서는 전혀 필요하지 않습니다.

를 사용하여 의 배열 INDEX()에 사용할 열을 선택할 수 있다는 점을 명심하세요 . SUMPRODUCT()개인적으로는 이것이 더 쉽다고 생각하지만 큰 차이는 없습니다.

공상을 위해 너무 많은. 상당히 오래된 버전의 Excel에서 작동하는 좀 더 오래된 방법은 범위 비교를 수행하여 데이터를 "필터링"하고 다음 위치에 표시합니다 SUMPRODUCT().

=SUMPRODUCT(  IF(B1:B12=I1, C1:C12, 0),  IF(B1:B12=I1, D1:D12, 0)  )

함수의 각 배열은 IF()조회 범위를 행의 I 열 셀과 단순히 비교하는 's에 의해 제공됩니다(예, 두 접근 방식 모두 SPILL공식이 아니므로 I 열이 확장되는 한 아래로 복사해야 합니다 UNIQUE()). 두 개의 열 데이터를 함수의 매개변수에 넣습니다.

직접적이고 명확하며 단순하며 이해하기 쉽고 수년에 걸쳐 유지 관리됩니다. 함수가 아닌 간단한 TRUE/FALSE 테스트를 사용하므로 속도가 빨라야 합니다. 두 접근 방식 모두 SPILL해당 SUMPRODUCT()열의 기능을 사용하지 않으므로 이점도 없습니다.

하지만 이것은 당신에게 확실히 익숙한 기능만을 사용하는데 왜 안 되겠습니까?

그리고 실제로 고유한 학생 목록을 작성하는 불쾌한 부분을 사용하면 SPILL작업도 잘 작동합니다.

관련 정보