23.04.2018, 14:32 | #1 |
Участник
|
Вывод формулы в Excel
Нужно вывести в Excel формулу с условиями. Вывод делается через dotnet Microsoft.Dynamics.Nav.OpenXml.Spreadsheet.WorksheetWriter. Простые формулы выводятся без проблем, а с условиями (SUMIF, SUMIFS) - падает с ошибкой xml. После изучения вопроса оказалось, что действительно условные формулы поддерживаются криво, и рекомендуется использовать комбинации SUM(IF...
Вот здесь и заковырка. Т.к. формула по диапазону строк, то в экселе это формула массива, и ели вводить её руками, то в конце нужно нажать ctrl+shift+enter. тогда формула обрамляется фигурными скобками и работает как надо: {=СУММ(ЕСЛИ(M11:M14<>0;Q11:Q14;ЕСЛИ(L11:L14<>0;Q11:Q14;ЕСЛИ(K11:K14<>0;Q11:Q14;0))))} Как заставить так же выводится из NAV ? Метод SetCellFormula, похоже, не понимает фигурные скобки, а без них формула дает ошибку. И в том, и в другом случае имеем системную ошибку "Исключение из HRESULT: 0x800A03EC". |
|
25.04.2018, 12:33 | #2 |
Участник
|
В формуле вместо точки с запятой попробуйте использовать запятую:
'=SUMIF(B1:B2,A1,C1:C2)' |
|
|
За это сообщение автора поблагодарили: BuzCom (1), Sancho (3). |
11.05.2018, 11:33 | #3 |
Участник
|
А ведь точно, заработало! Из-за такой ерунды столько времени потратил...
|
|