저는 신생 e스포츠 팀의 조직 시트를 작성 중입니다. 여기서 제 목표는 우리 팀 선수들의 게임 내 평균 순위를 계산하는 것입니다.
셀 F2
과 모든다른열의 행에는 F
"S3" 또는 "G1"(실버 3 또는 골드 1 순위)과 같은 순위 식별자가 있습니다.
이러한 순위 식별자(I1은 1, I2는 2 등) 간의 숫자 매핑을 포함하는 다른 시트가 있습니다.
따라서 이 범위( )의 다른 모든 행에 대해 식별자를 가져와 시트에 대한 F2:F100
a를 통해 숫자 형식으로 변환하고 결과를 수행한 다음 해당 숫자를 역순으로 다시 텍스트 형식으로 변환해야 합니다. .VLOOKUP
Lookups
FLOOR(AVERAGE()
VLOOKUP
이미 몇 가지 단계를 완료했지만 이와 같은 이전 수식의 결과를 평균하는 방법을 잘 모르겠습니다.
텍스트 버전에서 순위의 숫자 버전을 얻으려면 공식은 다음과 같습니다.
=VLOOKUP(F2, Lookups!A2:B29,2, FALSE)
내가 모르는 것은:
- 다른 모든 셀을 생략하는 셀 참조를 수행하는 방법
- 대량의 VLOOKUP 결과를 평균화하는 방법
데이터 예시
메인 시트
조회 테이블
두 열의 각 세트는 단일 플레이어를 나타내며 해당 플레이어의 순위는 짝수 열의 F 행에 저장됩니다. 조회 시트에서 S3는 숫자 점수 10을 나타냄을 알 수 있습니다. 다음 플레이어의 G2는 점수 15가 되는 식입니다.
이 숫자의 합을 구한 후 평균을 구하여 팀의 평균 점수를 제공합니다. 조회 테이블로 돌아가면 이전 작업과 반대로 수행되어 시트에 나열된 모든 플레이어의 평균 점수에 해당하는 단일 순위를 제공합니다.
현재 시트에 있는 세 명의 플레이어를 고려하면 S3, G2, NA를 선택하겠습니다. 이것은 나에게 10, 15, 10의 점수를 줍니다. 이들의 평균은 11(내림)이며 조회 테이블을 사용하여 다시 S2 순위에 해당합니다. 이 가상 수식을 포함하는 셀에는 "S2"가 표시됩니다.
답변1
큐:F3, F5, F7 등은 공백으로 유지됩니까?
답: 그럴 것입니다. 아무 것도 입력하면 안 된다는 것을 보여주기 위해 해당 필드를 회색으로 표시했습니다.
가장 쉬운 방법은 이러한 빈 셀을 사용하여 개별 순위에 대한 숫자 값을 보관하는 것입니다. 그런 다음 F2:F101의 평균을 계산하면 실제 숫자만 고려됩니다. 셀 번호 형식을 사용하면 숫자가 표시되지 않도록 숨길 수 있습니다 ;;;
. 이렇게 하면 원시 값을 유지하면서 수식에서 입력되거나 반환된 모든 항목에 대해 빈 셀이 표시됩니다.
50번 복사하여 붙여넣기를 원하지 않으면 첫 번째 코드 줄에서 기본 워크시트의 이름을 조정한 후 이 짧은 하위 프로시저를 실행하세요.
Option Explicit
Sub PopulateLookups()
With Worksheets("sheet1")
With .Range(.Cells(2, "F"), .Cells(.Rows.Count, "F").End(xlUp))
With .SpecialCells(xlCellTypeConstants, xlTextValues) '<~~ see footnote
With .Offset(1, 0)
.FormulaR1C1 = "=vlookup(r[-1]c, lookups!r2c1:r29c2, 2, false)"
.NumberFormat = ";;;"
End With
End With
End With
End With
End Sub
이제 다음 중 하나를 사용하여 조회 값의 평균을 얻을 수 있습니다.
=average(F2:F100)
=average(F:F)
빈 셀의 용도를 변경하고 싶지 않다면 '도우미 열'이 실행 가능한 대안입니다. 도우미 열 방법에 대해 공백 방법을 테스트했는데 결과는 동일했습니다.
¹ 기존 순위가 입력되지 않고 수식으로 반환되는 경우xlCellType상수로 교체해야합니다xlCellType공식.
답변2
결과를 찾을 수 없을 때 빈 텍스트를 반환하는 iferror 수식 안에 vlookup을 배치하여 다른 모든 행에 값이 필요한 첫 번째 조회를 해결하겠습니다.
=IFERROR(VLOOKUP(F2,Lookups!A2:B29,2,0),"")
다음으로 소수점 이하 자릿수를 자르기 위해 반올림 공식 내에서 평균 공식을 사용할 수 있습니다. 평균 수식은 빈 행을 무시합니다.
마지막으로 vlookup 공식은 항상 왼쪽에서 시작하여 오른쪽으로 이동하기 때문에 이 평균에서 "순위"를 가져오는 데 작동하지 않습니다. 여기서는 오른쪽을 보고 왼쪽으로 이동해야 합니다. 이를 위해 Index/Match 콤보를 사용합니다.
=INDEX(Lookups!A2:B29,MATCH(E11,Lookups!B2:B29,1),1)
일치하는 부분에 대해서는 정확히 일치하지 않을 수도 있다는 가정하에 넘어가지 않고 가장 가까운 값을 찾을 수 있도록 "1" 매개변수를 사용했습니다. 자세한 정보와 옵션은 Excel 내부의 색인 및 일치 수식 설명을 확인하세요.
나는 작성된 수식을 보여주는 샘플 시트에 이것을 만들었습니다. 도움이 되었기를 바랍니다:공식 예가 표시된 샘플 솔루션
답변3
짝수 행의 평균을 얻으려면 다음 공식을 사용하십시오.
=IF(ROW()/2 = ROUND(ROW()/2,0),VLOOKUP(A1,H$1:I$5,2,FALSE),"")
그렇지 않으면 다음을 사용하십시오.
=IF(ROW()/2 <> ROUND(ROW()/2,0),VLOOKUP(A1,H$1:I$5,2,FALSE),"")
=AVERAGE(G1:G5)
그런 다음 평균을 구하는 데 사용합니다.