G 열에 일부 값이있는 스프레드 시트가 있습니다. 일부 셀은 그 사이에 비어 있으며 해당 열의 마지막 값을 다른 셀로 가져와야합니다.
다음과 같은 것 :
=LAST(G2:G9999)
그것은 LAST
기능이 아니라는 것을 제외하고 .
답변
따라서이 솔루션은 문자열을 매개 변수로 사용합니다. 시트에있는 행 수를 찾습니다. 지정된 열의 모든 값을 가져옵니다. 빈 문자열이 아닌 값을 찾을 때까지 끝에서 처음으로 값을 반복합니다. 마지막으로 가치를 되돌립니다.
스크립트:
function lastValue(column) {
var lastRow = SpreadsheetApp.getActiveSheet().getMaxRows();
var values = SpreadsheetApp.getActiveSheet().getRange(column + "1:" + column + lastRow).getValues();
for (; values[lastRow - 1] == "" && lastRow > 0; lastRow--) {}
return values[lastRow - 1];
}
용법:
=lastValue("G")
편집하다:
자동 업데이트 기능을 요청하는 댓글에 대한 응답으로 :
내가 찾을 수있는 가장 좋은 방법은 위의 코드와 함께 사용하는 것입니다.
function onEdit(event) {
SpreadsheetApp.getActiveSheet().getRange("A1").setValue(lastValue("G"));
}
사용 섹션 상태 와 같은 셀에서 더 이상 함수를 사용할 필요가 없습니다 . 대신 업데이트하려는 셀과 추적하려는 열을 하드 코딩합니다. 이것을 구현하는 더 웅변적인 방법 (하드 코딩되지 않은 방법)이있을 수 있지만, 이것이 내가 지금 찾을 수있는 최선의 방법입니다.
앞서 언급 한 것과 같이 셀에서 함수를 사용하면 다시로드 할 때 업데이트됩니다. 아마도 onEdit()
셀 함수에 연결하여 강제로 업데이트 하는 방법이있을 수 있습니다. 문서에서 찾을 수 없습니다.
답변
비슷한 대답 caligari의 대답에 대한 이지만 전체 열 범위를 지정하여 정리할 수 있습니다.
=INDEX(G2:G, COUNT(G2:G))
답변
실제로 여기에서 더 간단한 해결책을 찾았습니다.
http://www.google.com/support/forum/p/Google+Docs/thread?tid=20f1741a2e663bca&hl=ko
다음과 같이 보입니다.
=FILTER( A10:A100 , ROW(A10:A100) =MAX( FILTER( ArrayFormula(ROW(A10:A100)) , NOT(ISBLANK(A10:A100)))))
답변
범위 내에서 마지막 셀을 선택하기 위해 LAST () 함수는 현재 구현되지 않았습니다. 그러나 귀하의 예를 따르십시오.
=LAST(G2:G9999)
다음 과 같은 방법으로 INDEX () 및 COUNT () 함수를 사용하여 마지막 셀을 얻을 수 있습니다 .
=INDEX(G2:G; COUNT(G2:G))
spreedsheet에 동일한 문제 (sheet , cell )를 발견하고 해결 한 실제 예제 가 있습니다 . 문서 내의 다른 시트를 참조해도 완벽하게 작동합니다.Orzamentos
I5
답변
요약:
=INDEX( FILTER( G2:G , NOT(ISBLANK(G2:G))) , COUNTA(G2:G) )
세부:
나는 여러 가지 답변을 검토하고 시도했으며 여기에 내가 찾은 것이 있습니다. 가장 간단한 솔루션 ( Dohmoose의 답변 참조 )은 공백이 없으면 작동합니다.
=INDEX(G2:G; COUNT(G2:G))
공백이 있으면 실패합니다.
에서 COUNT
로 변경하여 하나의 공백을 처리 할 수 있습니다 COUNTA
( user3280071의 답변 참조 ).
=INDEX(G2:G; COUNTA(G2:G))
그러나 일부 공백 조합에서는 실패합니다. ( 1 blank 1 blank 1
나를 위해 실패합니다.)
다음 코드가 작동합니다 ( Nader의 답변 및 jason의 의견 참조 ).
=INDEX( FILTER( G2:G , NOT(ISBLANK(G2:G))) , ROWS( FILTER( G2:G , NOT(ISBLANK(G2:G)) ) ) )
그러나 그것은 당신이 사용할 COLUMNS
것인지 또는 ROWS
주어진 범위에 대해 생각할 필요가 있습니다 .
그러나 COLUMNS
로 대체 되면 COUNT
신뢰할 수 있고 공백이없는 구현을 얻는 것 같습니다 LAST
.
=INDEX( FILTER( G2:G , NOT(ISBLANK(G2:G))) , COUNT( FILTER( G2:G , NOT(ISBLANK(G2:G)) ) ) )
그리고 이후 COUNTA
에 내장 된 필터가, 우리는 사용하여 더욱 단순화 할 수 있습니다
=INDEX( FILTER( G2:G , NOT(ISBLANK(G2:G))) , COUNTA(G2:G) )
이것은 다소 간단하고 정확합니다. 그리고 행 또는 열을 계산할지 여부에 대해 걱정할 필요가 없습니다. 스크립트 솔루션과 달리 스프레드 시트가 변경되면 자동으로 업데이트됩니다.
행의 마지막 값을 얻으려면 데이터 범위를 변경하십시오.
=INDEX( FILTER( A2:2 , NOT(ISBLANK(A2:2))) , COUNTA(A2:2) )
답변
텍스트 값 열에서 마지막 값을 반환하려면 COUNTA를 사용해야하므로 다음 공식이 필요합니다.
=INDEX(G2:G; COUNTA(G2:G))
답변
이 시도:
=INDIRECT("B"&arrayformula(max((B3:B<>"")*row(B3:B))))
마지막 값을 찾고있는 열이 B라고 가정합니다.
그리고 예, 그것은 공백으로 작동합니다.