Brian에는 240 개의 셀이있는 숫자 행이 있습니다. 이 행에서 숫자는 꾸준히 감소하고 있으며 결국 240 개 셀의 어느 시점에서 0이 될 것입니다. 0은 행의 나머지 셀을 계속 채울 것입니다. Brian은 행에서 0이 아닌 마지막 값을 반환하는 방정식을 작성해야합니다.

원하는 값을 반환 할 수있는 다양한 방법이 있습니다.

(Excel에서는 항상 그런 것 같지 않습니까? 결과를 얻을 수있는 많은 방법을 생각 해낼 수 있습니다.) 일반적으로 정규식이나 배열 수식을 사용할 수 있습니다.

정규식을 사용하려면 다음을 시도해보십시오.

=OFFSET(A6,0,(COUNT(A6:IF6)-COUNTIF(A6:IF6,0))-1)

COUNTIF 함수는 0 값의 수를 계산하고 COUNT 함수는 범위의 셀 수를 결정합니다. 하나를 다른 것에서 빼고 1로 조정하면 마지막 0이 아닌 값이있는 셀의 “배열”에 OFFSET 값이 제공됩니다. 이 수식은 값이 A 열에서 시작한다고 가정합니다. 다른 열에서 시작하는 경우 수식의 COUNT / COUNTIF 부분에서 제공하는 값을 조정하여 첫 번째 열의 오프셋을 나타내야합니다.

다음은 범위의 왼쪽이 아닌 오른쪽에서 오프셋을 수행 한 것에 기반한 수식의 더 짧은 변형입니다.

=OFFSET(IF6,0,-COUNTIF(A6:IF6,0))

이 경우 IF6이 범위의 실제 오른쪽 끝이되는 것이 중요합니다. 이 수식은 범위의 0 값 수 (모두 범위의 오른쪽에 있음)를 계산 한 다음 마지막 셀 (IF6)의 셀 주소에서 0의 수를 뺀 값을 계산하는 방식으로 작동합니다.

대신 INDEX 함수를 사용하는 버전이 있습니다.

=INDEX(A6:IF6,,MATCH(0,A6:IF6,0)-1)

이 버전은 LOOKUP 함수를 사용하여 더 짧습니다.

=LOOKUP(1,1/(6:6>0),6:6)

배열 수식도 사용할 수 있습니다. (배열 수식은 Ctrl + Shift + Enter를 눌러 입력합니다.) 이것은 INDIRECT 함수를 사용합니다 :

=INDIRECT("R6C" & MAX((A6:IF6>0)*COLUMN(A6:IF6)),FALSE)

이 배열 수식은 LOOKUP 함수의 흥미로운 구현을 사용하여 올바른 결과를 찾습니다.

=LOOKUP(9.99999999999999E+307,IF(A6:IF6<>0,A6:IF6))

다음은 사용할 수있는 또 다른 배열 수식입니다. 이번에는 OFFSET 함수를 사용하여 행 6에서 0이 아닌 마지막 값을 찾습니다.

=OFFSET(A6,0,MIN(IF(6:6=0,COLUMN(6:6),300))-2)

더 짧은 변형이 있습니다.

=MIN(IF(A6:IF6>0,A6:IF6))

지금까지 제시된 모든 공식은 행의 숫자가 실제로 감소한다는 사실에 따라 달라집니다. 즉, 시작 숫자가 무엇이든간에 계속 0을 향해 가고 있습니다. 숫자가 감소하지 않으면 다른 유형의 배열 수식을 사용하여 행에서 0이 아닌 마지막 값을 확인할 수 있습니다.

=INDEX(6:6,MAX(IF(A6:IF6<>0,COLUMN(A6:IF6))))

수식은 먼저 값이 0이 아닌 행 (이 경우 행 6)의 최대 열을 결정한 다음 INDEX 함수를 사용하여 해당 행의 해당 열에서 값을 가져옵니다.

아시다시피, 행에서 0이 아닌 마지막 값을 찾는 방법에는 여러 가지가 있습니다. 당신의 마음에 드는 것을 선택하십시오. 이 경우에는 옳고 그름이 없습니다.

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (11250)은 Microsoft Excel 2007, 2010, 2013 및 2016에 적용됩니다.

Excel의 이전 메뉴 인터페이스에 대한이 팁의 버전은`link : / excel-Last_Non-Zero_Value_in_a_Row [Last Non-Zero Value in a Row]`에서 찾을 수 있습니다.