
저는 이 믿을 수 없을 만큼 간단한 문제에 대한 해결책을 찾기 위해 정말 애쓰고 있습니다. ChatGPT의 도움도 받았지만 그 어떤 솔루션도 효과가 없었습니다. 어쩌면 당신이 기계보다 더 똑똑하다는 것을 증명할 수 있을까요?
때로는 수만 행이 포함된 인접한 워크시트와 외부 통합 문서를 검색하고 있으므로 LOOKUP
또는 것보다 더 빠른 것이 필요 VLOOKUP
하거나 작업이 중단되는 것을 발견했습니다. 하지만 LibreOffice 7.4를 사용하고 있으므로 동적 배열 수식과 , 및 일부 최신 Excel 함수는 지원 XLOOKUP
되지 않습니다.FILTER
SORT
A 열에는 오름차순 또는 내림차순으로 날짜 목록이 포함됩니다. B열에는 정렬되지 않은 숫자와 빈 셀이 포함되어 있습니다.
ㅏ | 비 |
---|---|
01/05/23 | 1234.10 |
02/05/23 | 134.25 |
05/05/23 | 5123.45 |
08/05/23 | |
10/05/23 | 0.00 |
조회 값이 cell 의 날짜보다 늦지 않은 B 열(0 포함)에서 비어 있지 않은 최신 값을 찾으려면 CPU를 많이 사용하지 않는 수식이 필요합니다 $Z1
. LOOKUP(2,1/
, INDEX MATCH
, 에 대한 변형을 시도했지만 VLOOKUP
날짜를 무시하고 모두 0, 오류 또는 열 B의 첫 번째 또는 마지막 값을 얻습니다.
어떤 아이디어가 있나요? LibreOffice에 문제가 있는지 궁금해지기 시작했습니다. 자체적으로 작동하기 위해 다시 설치해야 하는 것은 처음이 아닙니다.
편집: 지금까지 시도한 수식 목록은 다음과 같습니다.
{=INDEX($B$2:$B$9999,MAX(IF($A$2:$A$9999<=$Z1,ROW($A$2:$A$9999)-MIN(ROW($A$2:$A$9999))+1)))}
값 0을 반환합니다. 비어 있지 않은 마지막 셀인 $B$124가 아니라 $B$9998 셀을 찾는 것 같습니다.
=LOOKUP(2,1/($A$2:$A$9999<=$Z1),$B$2:$B$9999)
빈 문자열을 반환합니다. 이전에 다른 버전을 사용한 적이 있습니다.
=LOOKUP(2,1/($Z1>=$A$2:$A$9999)/$B$2:$B$9999,$B$2:$B$9999)
값이 0인 셀을 지원하지 않는다는 점을 제외하면 작동합니다.
{=MAX(IF($A$2:$A$9999<=$Z1, $B$2:$B$9999, ""))}
어쨌든 이것은 셀 $Z1의 날짜에 관계없이 마지막 값이 아닌 열 B의 세 번째 값을 반환합니다.
{=OFFSET($'Savings chart'.$B$2,MAX(IF($'Savings chart'.$A$2:$A$9999<=$A38,ROW($'Savings chart'.$A$2:$A$9999)-ROW($A$2)+1,0))-1,0)}
이것은 비어 있지 않은 마지막 셀을 보는 대신 $B$9998 셀을 보고 0 값을 반환합니다.
{=INDIRECT("'Sheet 2'.B"&SUMPRODUCT(MAX(('Sheet 2'.A:A<=$Z1)*ROW('Sheet 2'.A:A))))}
이것은 0의 값을 반환합니다.
{=INDEX('Sheet 2'.B:B, MAX(IF('Sheet 2'.A:A<=$Z1, ROW('Sheet 2'.A:A))))}
이것은 0의 값을 반환합니다.
{=INDEX($B$2:$B$9999,MAX(IF($A2:$A$9999<=$Z1,ROW($B$2:$B$9999)-MIN(ROW($B$2:$B$9999))+1)))}
이것은 0의 값을 반환합니다.
{=OFFSET('Savings chart'.$B$1, MAX(IF('Savings chart'.$B$2:$B$9999<>"", ROW('Savings chart'.$B$2:$B$9999)-ROW('Savings chart'.$B$2)+1, 0))-1, 0)}
다소 놀랍게도 이는 B 열의 마지막 값 중 하나를 반환합니다.
{=INDEX($B$2:$B$9999, MAX(IF($B$2:$B$9999<>"", ROW($B$2:$B$9999)-ROW($B$2)+1, 0)))}
이것비어 있지 않은 마지막 셀의 값을 반환합니다.B열에 있지만 $Z1의 날짜를 고려하도록 하는 방법을 알 수 없었습니다. (아시다시피 이 작업을 하는 동안 저는 매우 피곤했습니다.)
=INDEX($B$2:$B$9999, MATCH(2, 1/($A$2:$A$9999<=$Z1), 1))
이것은 $B$9998 셀을 보고 0 값을 반환합니다.
=IF($A5>=$'Savings chart'.$A$2:$A$9999,LOOKUP(9.999999E+306,$'Savings chart'.$B$2:$B$9999),0)
이는 $Z1 셀의 날짜에 관계없이 항상 B열의 비어 있지 않은 마지막 셀을 반환합니다.
=XLOOKUP($'Savings chart'.$A$2:$B$9999,($A2>=$'Savings chart'.$A$2:$A$9999)*($'Savings chart'.$B$2:$B$9999<>""),$'Savings chart'.$B$2:$B$9999)
설치 후goosepirate의 Lox365 확장, 나는 이 공식을 XLOOKUP
. 그것은 생산했다에러 코드 Err:504
. 이 시점에서 나는 포기하고 잠자리에 들었습니다.
다음은 제가 사용한 데이터 샘플입니다.
Date Data
1 Jan 23 490.44
1 Jan 23
1 Jan 23
2 Jan 23
3 Jan 23
4 Jan 23
4 Jan 23
5 Jan 23
6 Jan 23
7 Jan 23
8 Jan 23
9 Jan 23
11 Jan 23
11 Jan 23
11 Jan 23
11 Jan 23
11 Jan 23
12 Jan 23
12 Jan 23
13 Jan 23
14 Jan 23
16 Jan 23
16 Jan 23
17 Jan 23
18 Jan 23
18 Jan 23
19 Jan 23
20 Jan 23 493.44
21 Jan 23
21 Jan 23
22 Jan 23
22 Jan 23
23 Jan 23 499.44
24 Jan 23
24 Jan 23
24 Jan 23
24 Jan 23
25 Jan 23 484.81
25 Jan 23
25 Jan 23
25 Jan 23
25 Jan 23
25 Jan 23
26 Jan 23
26 Jan 23
26 Jan 23
27 Jan 23
27 Jan 23
27 Jan 23
28 Jan 23
29 Jan 23
31 Jan 23
31 Jan 23
1 Feb 23
1 Feb 23
1 Feb 23
3 Feb 23
3 Feb 23
4 Feb 23
5 Feb 23
5 Feb 23
5 Feb 23
6 Feb 23
6 Feb 23
6 Feb 23
6 Feb 23
6 Feb 23
7 Feb 23
7 Feb 23
7 Feb 23
7 Feb 23
8 Feb 23
8 Feb 23
9 Feb 23
9 Feb 23
9 Feb 23
10 Feb 23
10 Feb 23
10 Feb 23
10 Feb 23
10 Feb 23
10 Feb 23
10 Feb 23
10 Feb 23
11 Feb 23
11 Feb 23
11 Feb 23
11 Feb 23
11 Feb 23
12 Feb 23
12 Feb 23
12 Feb 23
13 Feb 23
13 Feb 23
13 Feb 23
13 Feb 23
14 Feb 23
15 Feb 23
15 Feb 23
16 Feb 23
16 Feb 23
17 Feb 23
17 Feb 23
17 Feb 23
17 Feb 23
17 Feb 23
17 Feb 23
17 Feb 23
18 Feb 23
18 Feb 23
19 Feb 23
20 Feb 23 487.81
20 Feb 23
20 Feb 23
20 Feb 23
21 Feb 23
21 Feb 23
22 Feb 23
22 Feb 23
22 Feb 23
22 Feb 23
23 Feb 23 493.81
24 Feb 23 477.81
답변1
내가 시작한 공식은 다음과 같습니다.
=LOOKUP(2,1/($A2>='Sheet 1'.$A$2:$A$10000)/$'Sheet 1'.B$2:B$10000,$'Sheet 1'.B$2:B$10000)
다음과 같이 "공백 아님" 필터를 추가하여 필요한 결과를 얻을 수 있었습니다.
=LOOKUP(2,1/($A2>='Sheet 1'.$A$2:$A$10000)/($'Sheet 1'.B$2:B$10000<>""),$'Sheet 1'.B$2:B$10000)