Próbuję przefiltrować tablicę, aby uwzględnić te wartości, które nie znajdują się w określonej odległości zmiany tej tablicy.

Oto mój przykład:

enter image description here

Tablica wejściowa zwiększa monotonicznie w krokach. Chcę zerować dowolną z wartości wejściowych z Nows powyżej, do NOW poniżej dowolnego punktu, w którym zmienia się wartość. 2 $ B $ 2 posiada to wartość "okno".

Na przykład, komórka A9 (wartość 11) różni się od komórki A8 (wartość 5), więc chcę zerować wartości, które pochodzą z dowolnych komórek z A7 do A11 włącznie. Pochodzi z -N do + N względnie komórki, w której występuje zmiana, gdzie n = 2.

Mogę osiągnąć wymagane wyjście z funkcjami innych niż tablicy, stosując pośrednie kolumny obliczeniowe, ale ponieważ przetwarzam dużą liczbę kolumn, zaoszczędzić znacznie na referatce kalkulacyjnej, jeśli mogłem skonstruować pojedynczą formułę tablicy, która działa w zakresie A4 : A25, i wykorzystuje komórkę B1 dla wielkości N. Używam bieżącego wersji Beta Excel, więc mam dostęp do Lam i Lambda w razie potrzeby.

Próbowałem różnych kombinacji, używając sekwencji, ale wpadam w problem, który pozwala (lub rzeczywiście dowolne funkcje tablicy) wydaje się zawieść, jeśli zawierają dwa stwierdzenia sekwencji.

Kontynuuję nad tym pracując, ale jeśli ktoś chce spróbować, byłbym najbardziej wdzięczny!

Aktualizacja: Ta formuła robi sztuczkę, ale musi zostać skopiowany:

=A4*IF(AVERAGE(OFFSET(A4,-($B$1+1),0,2*($B$1+1),1))<>A4,0,1)
0
DS_London 11 luty 2021, 13:54

1 odpowiedź

Najlepsza odpowiedź

Chociaż sugestia @jvdv nie była dokładnie tym, co byłem po, kapelusz do nich do pomysłu kompensowania całej kolumny w górę iw dół, która doprowadziła do tego:

=LET(input,A4:A25,up,OFFSET(input,-1*(B1+1),0),down,OFFSET(input,B1,0),input*IF(IFERROR(up*down,0)>0,IF(up=down,1,0),1))
1
DS_London 11 luty 2021, 12:05