가장 최근 가격을 표시하는 스프레드시트 공식

가장 최근 가격을 표시하는 스프레드시트 공식

AC 열이 포함된 LibreOffice Calc 스프레드시트를 만들었습니다. A열에는 구입한 부품 목록이 있습니다(시간순으로 오름차순). B열에는 해당 가격 목록이 있습니다. C열에는 다음을 표시하고 싶습니다.마지막 구매 가격현재 부분에 대해서는.

이것이 내가 그것을 하기 위해 생각해낸 것입니다:

=INDIRECT(CONCATENATE("B",TEXT(MATCH(A8,A1:A7,1),"#")))

기본적으로 작동하지만 두 가지 문제가 있습니다.

  1. 매우 복잡합니다. 이를 수행하는 더 간단한 방법이 있습니까?
  2. 부품을 이전에 구매한 적이 없는 경우 위 행에 있는 부품의 가격이 표시됩니다.

업데이트: 추가 테스트를 통해 확실히 예상대로 작동하지 않습니다. MATCH 함수의 버그인지, 아니면 해당 직무에 적합한 함수가 아닌 것인지 알 수 없습니다. MATCH 함수는 "작거나 같음"을 찾는데, "더 작음" 조건이 문제를 일으키는 것 같습니다.

답변1

이것은 다음과 꽤 유사한 문제입니다.VLOOKUP을 통해 반환하는 방법마지막성냥?. ㅏ해결책Excelllll이 귀하의 요구 사항에 거의 맞습니다.

=INDEX(IF($A$1:$A$1000=A1,$B$1:$B$1000),MAX(IF($A$1:$A$1000=A1,ROW($A$1:$A$1000))))

조회 범위를 임의로 크게 만들었습니다. 넓은 범위를 사용할 수 있으므로 더 많은 데이터를 추가할 때 수식을 조정할 필요가 없습니다. 내 테스트 예제에는 항목이 6개뿐이었습니다. 사용되지 않은 행은 어떤 것과도 일치하지 않으므로 무시됩니다.

이는 C1에 들어가는 수식이므로 조회 대상은 A1(2개 위치)입니다.

MAX 함수는 행과 일치하는 가장 높은 숫자를 찾습니다(연대순이므로 가장 최근이 됩니다).

배열 수식이므로 Ctrl-Shift-Enter로 입력해야 합니다. C1을 입력하면 Ctrl-C를 사용하여 셀을 복사하고 필요에 따라 셀 범위를 선택한 다음 Ctrl-V를 사용하여 붙여넣을 수 있습니다. 데이터를 더 추가하려면 다른 셀 블록을 복사하여 붙여넣으세요.

또는 이를 빈 셀 테스트로 포장하고 필요한 것보다 더 많은 셀을 미리 채웁니다.

=IF(ISBLANK(A1),"",formula_above)

이 접근 방식을 사용하면 행에 데이터를 추가할 때까지 미리 채워진 셀이 공백으로 유지됩니다.

관련 정보