Формула Excel (Googel Sheets) для нахождения значения в диапазоне до текущей строки - PullRequest
0 голосов
/ 02 октября 2018
  A|B|C|D|E  
------------------------------------  
#|Splr|Payment|Total|Bill|Balance  
------------------------------------  
1|S1|10,000|10,000| 8,000|2,000  
2|S1|12,000|14,000|15,000|-1,000  
3|S2|10,000|10,000| 9,500|500  
4|S1| 9,000| 8,000| 7,500|500  
5|S2| 8,000| 8,500| 6,500|2,000  

B       Current Payment     
C       B + E (of same supplier (last record in previous rows if any))  
D       Current Bill        
E       Total Bill  

Я ищу формулу (часть E формулы в столбце C), чтобы найти последний баланс текущего поставщика до текущей строки


РЕДАКТИРОВАТЬ: после реализации предоставленной формулы (с незначительными изменениями), я сталкиваюсь с проблемами #Ref для каждого нового поставщика.Формула, которую я использовал в строке №2 (то есть в первой строке данных): "= ArrayFormula (IF (ISNUMBER (INDEX ($ F1: F $ 2, MAX) (IF (A2 = $ A1: A $ 2, ROW ($ A1: A)$ 2) -1,0)))), $ F1,0)) "во второй строке и далее" = ArrayFormula (IF (ISNUMBER (INDEX ($ F $ 2: F2, MAX (IF (A3 = $ A)$ 2: A2, ROW ($ A $ 2: A2) -1,0)))), $ F2,0)) "где $ F1 заменяется на $ F $ Row #, а $ A1 заменяется на $ A $ RowNo


enter image description here

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

К счастью, я решил мою проблему с помощью INDIRECT ().Формула, которую я использовал: {= ArrayFormula (IFERROR (LOOKUP (2,1 / (INDIRECT ("A2: A" & ROW () - 1) = A7), INDIRECT ("E2: E" & ROW () - 1)), 0))}

Здесь INDIRECT () используется для принудительного задания диапазона критериев до предыдущей строки текущей ячейки.

0 голосов
/ 02 октября 2018

Следующая формула будет искать поставщика текущей строки, просматривать все предыдущие строки с тем же поставщиком, самую низкую строку (предшествующую текущей строке) с тем же поставщиком, а затем возвращать баланс (значение из столбца).E)

В этом примере формула будет идти в 6-й строке данных или в 7-й строке таблицы после учета заголовков таблицы.

Это также формула массива, то есть вы должны вставить ее в ячейку, а затем нажать ctrl+shift+enter, чтобы отправить формулу.

=INDEX($E$2:E6,MAX(IF(A7=$A$2:A6,ROW($A$2:A6)-1,0)))

Затем вы можете скопировать и вставить эту ячейку в таблицу.

...