답변:
해결책은 아주 간단합니다.
에 다음 공식을 입력하십시오. I2
및 Ctrl- 입력 / 복사 - 붙여 넣기 / 열 채우기 :
=G2*10^3+H2
이 값은 최대 허용 값이 POINT
열은 999입니다.
큰 값의 경우 10^3
수식에서 변경해야합니다. 예를 들어 최대 허용 값이 9999 10^4
필요합니다.
열의 값이 무엇이든 관계없이보다 강력한 공식을 원한다면 H
, 이것을 사용하십시오 :
=G2*10^CEILING(LOG10(MAX($H$2:$H$6)),1)+H2
"실제"순위를 원한다면 불행히도 위의 수식을 사용할 수있는 방법이 없습니다. RANK()
함수는 배열이 아니라 두 번째 인수에 대한 참조 만 허용하므로 완전히 다른 수식이 필요합니다.
에 다음 공식을 입력하십시오. I2
및 Ctrl- 입력 / 복사 - 붙여 넣기 / 열 채우기 :
=1+SUMPRODUCT(($G$2:$G$6>G2)+($G$2:$G$6=G2)*($H$2:$H$6>H2))
동일한 배열이 입력 됨 ( Ctrl + 시프트 + 들어가다 ) 공식은 다음과 같습니다.
{=SUM(1,--($G$2:$G$6>G2),($G$2:$G$6=G2)*($H$2:$H$6>H2))}
물론, 테이블을 정렬하는 것이 요구된다면, 가장 간단한 해결책은 다중 컬럼 정렬을하는 것입니다 :
RANK()
기능. 저는 설명에 "올바른"순위를 매기는 2 개의 새로운 수식을 추가했습니다. 수식이 Google 스프레드 시트에서 작동 할 것으로 생각됩니다. 유일한 문제는 배열에 입력 된 수식을 ARRAYFORMULA()
기능이 올바르게 작동합니다.
RESULT
과 POINT
열 값 ;-) 나는 하나의 수식 솔루션을 생각해 낼 수 있을지 알게 될 것이므로이 두 열은 더 이상 필요하지 않습니다. 나는 이전 질문에 대한 별도의 답으로 해결책을 게시 할 것입니다.
그래서 이전 질문을 보면서 A의 수를 기준으로 순위를 매기고 B의 수를 기준으로 순위를 매기고 점수의 합계를 토대로 해당 순위를 매기기를 원합니다 각 과목마다.
이를 염두에두고 다음을 수행하는 도우미 열 수식은 없습니다.
배열 입력 ( Ctrl + 시프트 + 들어가다 ) 다음 공식을 M5
나머지 열에 복사하여 붙여 넣기 / 채우기를 수행하십시오. {
그리고 }
) :
{=
SUM(
1,
--(
MMULT(($B$5:$L$9="A")*6^2+($B$5:$L$9="B")*6^1+($B$5:$L$9="C")*6^0,--(0<ROW(INDEX(M:M,1):INDEX(M:M,COLUMNS($B$5:$L$9)))))
>INDEX(MMULT(($B$5:$L$9="A")*6^2+($B$5:$L$9="B")*6^1+($B$5:$L$9="C")*6^0,--(0<ROW(INDEX(M:M,1):INDEX(M:M,COLUMNS($B$5:$L$9))))),1+ROW()-ROW($B$5:$L$9))
),
(
MMULT(($B$5:$L$9="A")*6^2+($B$5:$L$9="B")*6^1+($B$5:$L$9="C")*6^0,--(0<ROW(INDEX(M:M,1):INDEX(M:M,COLUMNS($B$5:$L$9)))))
=INDEX(MMULT(($B$5:$L$9="A")*6^2+($B$5:$L$9="B")*6^1+($B$5:$L$9="C")*6^0,--(0<ROW(INDEX(M:M,1):INDEX(M:M,COLUMNS($B$5:$L$9))))),1+ROW()-ROW($B$5:$L$9))
)
*(
MMULT(IFERROR(--$B$5:$L$9,0),--(0<ROW(INDEX(M:M,1):INDEX(M:M,COLUMNS($B$5:$L$9)))))
>INDEX(MMULT(IFERROR(--$B$5:$L$9,0),--(0<ROW(INDEX(M:M,1):INDEX(M:M,COLUMNS($B$5:$L$9))))),1+ROW()-ROW($B$5:$L$9))
)
)}
다음은 위 공식의 동일한 축소 버전입니다. 나는 강력히 조언한다. 아니 그것을 사용하는 , 그러나 prettified 수식 버전을 대신 사용하십시오. 이렇게하면 공식을 많이 만들 것이고, 많은 유지 관리가 더 쉽다.
{=SUM(1,--(MMULT(($B$5:$L$9="A")*6^2+($B$5:$L$9="B")*6^1+($B$5:$L$9="C")*6^0,--(0<ROW(INDEX(M:M,1):INDEX(M:M,COLUMNS($B$5:$L$9)))))>INDEX(MMULT(($B$5:$L$9="A")*6^2+($B$5:$L$9="B")*6^1+($B$5:$L$9="C")*6^0,--(0<ROW(INDEX(M:M,1):INDEX(M:M,COLUMNS($B$5:$L$9))))),1+ROW()-ROW($B$5:$L$9))),(MMULT(($B$5:$L$9="A")*6^2+($B$5:$L$9="B")*6^1+($B$5:$L$9="C")*6^0,--(0<ROW(INDEX(M:M,1):INDEX(M:M,COLUMNS($B$5:$L$9)))))=INDEX(MMULT(($B$5:$L$9="A")*6^2+($B$5:$L$9="B")*6^1+($B$5:$L$9="C")*6^0,--(0<ROW(INDEX(M:M,1):INDEX(M:M,COLUMNS($B$5:$L$9))))),1+ROW()-ROW($B$5:$L$9)))*(MMULT(IFERROR(--$B$5:$L$9,0),--(0<ROW(INDEX(M:M,1):INDEX(M:M,COLUMNS($B$5:$L$9)))))>INDEX(MMULT(IFERROR(--$B$5:$L$9,0),--(0<ROW(INDEX(M:M,1):INDEX(M:M,COLUMNS($B$5:$L$9))))),1+ROW()-ROW($B$5:$L$9))))}
설명:
prettified 수식의 구조를 보면, 그것은 본질적으로 "적절한"랭크 배열 - 이전 수식에서 입력 한 수식과 동일하다는 것이 분명해진다.
{=SUM(1,--($G$2:$G$6>G2),($G$2:$G$6=G2)*($H$2:$H$6>H2))}
와 더불어 RESULT
과 POINT
도우미 열이 MMULT(…)
함수 및 단일 셀 참조를 INDEX(MMULT(…),1+ROW()-ROW($B$5:$L$9))
어떻게하면 MMULT()
함수가 여기에 사용되면 간단한 사용법을 내 대답 다른 질문으로
더 많은 성적을 수식을 조정하는 방법은 상당히 분명해야합니다. 예를 들어, D
, +($B$5:$L$9="D")*6^0
다른 사람들의 끝까지, 그리고 다른 힘을 증가시킨다.
이전 질문에 대한 대답에서 언급했듯이, 표가 더 많은 주제로 확장되면 6
테이블에있는 새로운 수의 피사체보다 적어도 하나 이상 많아야합니다.