2016-08-30 5 views
1

Это в продолжение к how to calculate XIRR dynamically in excel and in google sheetsПочему конкретный ARRAYFORMULA не работает в Google листов, но отлично работает в Excel

Предлагаемая формула массива ** решение (упомянутый ниже) отлично работает в первенствует

= ЧИСТВНДОХ (ИНДЕКС (F: G, N (ЕСЛИ (1, малый (ЕСЛИ (В $ 2: B $ 8 = J2, СТРОКА (B $ 2: B $ 8)), СТРОКА (ИНДЕКС (А: А, 1): ИНДЕКС (А: А, СЧЕТЕСЛИ (B $ 2: B $ 8, J2)))))), N (ЕСЛИ (1, {1,2}))), вЫБРАТЬ ({1,2}, ИНДЕКС (А: А, Н (ЕСЛИ (1, малый (ЕСЛИ (В $ 2: B $ 8 = J2, СТРОКА (B $ 2: B $ 8)), СТРОКА (ИНДЕКС (А: А, 1): ИНДЕКС (А: А, СЧЕТЕСЛИ (B $ 2: B $ 8, J2))))))), СЕГОДНЯ()))

но то же самое решение, отказывается работать в Google листах с ошибкой

В оценке XIRR, массив значения должен включать в себя положительные и отрицательные числа.

Любая идея, почему это не работает в листах google и как заставить его работать?

Исходные данные

PurchaseDate Script No.ofunits PurchNAVrate NetAmount   ForXIRR TotalReturn 
    17/11/2014   A 2241   33    75000   -75000   96000 
    8/1/2015   B 53    649    35000   -35000   43000 
    14/1/2015   B 75    658    50000   -50000   61500 
    14/10/2014   C 2319   32    75000   -75000   108000 
    8/1/2015   D 318    109    35000   -35000   40000 
    14/1/2015   D 450    110    50000   -50000   57000 
    8/6/2015   D 175    114    20000   -20000   22000 



Values for Fund A should be around 14% 
Values for Fund B should be around 13% 
Values for Fund C should be around 21% 
Values for Fund D should be around 8% 
+3

конкретный ответ на ваш вопрос, как представляется, «потому что Google листов не выделяются, и наоборот» ;-) –

ответ

-1

Оказывается, что эти конструкции, которые позволяют нам генерировать массив возвращается из INDEX, то есть:

N(IF(1,,,

или

N(INDEX(,,,

действительны в Excel, но не в Google Таблицах, в последнем они разрешаются только одному (т. Е. первый) в массиве.

Например, в Excel, следующее:

=SUM(INDEX(A1:A10,N(IF(1,{1,2,7}))))

или:

=SUM(INDEX(A1:A10,N(INDEX({1,2,7},))))

суммирует значения в A1, A2 и A7, хотя в Google Таблицах и будет суммируйте только значение в A1.

Я не знаю достаточно о Google Таблицах, чтобы узнать, почему это так. Может быть возможно восстановить мою формулу с помощью летучих OFFSET. Я посмотрю и вернусь к тебе.

Update: Оказывается, что даже OFFSET основанное решение, т.е .:

=XIRR(N(OFFSET(F2,SMALL(IF(B$2:B$8=J2,ROW(B$2:B$8)-MIN(ROW(B$2:B$8))),ROW(INDIRECT("1:"&COUNTIF(B$2:B$8,J2)))),{0,1})),CHOOSE({1,2},N(OFFSET(A2,SMALL(IF(B$2:B$8=J2,ROW(B$2:B$8)-MIN(ROW(B$2:B$8))),ROW(INDIRECT("1:"&COUNTIF(B$2:B$8,J2)))),{0,1})),TODAY()))

не представляется возможным. Опять же, он отлично работает в Excel, но не в Google Таблицах, по причинам, аналогичным приведенным выше (массивы, переданные в OFFSET, не разрешаются при необходимости).

Я думаю, что для этого требуется объяснение кем-то, хорошо знакомым в Google Таблицах.

Ссылки:

https://excelxor.com/2014/09/05/index-returning-an-array-of-values/

С уважением

 Смежные вопросы

  • Нет связанных вопросов^_^