From 9b600f1aeb861219bf70a2941e3899ee545eff98 Mon Sep 17 00:00:00 2001 From: Eike Rathke Date: Fri, 6 Sep 2019 13:53:28 +0200 Subject: Resolves: tdf#98844 calculate as shown with SUM() again MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I0032bdb9a8f54baa2e599861e45691a255f45275 Reviewed-on: https://gerrit.libreoffice.org/78708 Reviewed-by: Eike Rathke Tested-by: Jenkins (cherry picked from commit 4321d8c8b09fd880a18b4106cdd1f90acc18a861) Reviewed-on: https://gerrit.libreoffice.org/78728 Reviewed-by: Xisco FaulĂ­ --- sc/source/core/tool/interpr6.cxx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'sc/source/core') diff --git a/sc/source/core/tool/interpr6.cxx b/sc/source/core/tool/interpr6.cxx index 466cbb307f12..8fab8eaabacd 100644 --- a/sc/source/core/tool/interpr6.cxx +++ b/sc/source/core/tool/interpr6.cxx @@ -817,8 +817,12 @@ void ScInterpreter::IterateParameters( ScIterFunc eFunc, bool bTextAsZero ) if ( nGlobalError != FormulaError::NONE ) nGlobalError = FormulaError::NONE; } - else if ( ( eFunc == ifSUM || eFunc == ifCOUNT ) && mnSubTotalFlags == SubtotalFlags::NONE ) + else if (((eFunc == ifSUM && !bCalcAsShown) || eFunc == ifCOUNT ) + && mnSubTotalFlags == SubtotalFlags::NONE) { + // Use fast span set array method. + // ifSUM with bCalcAsShown has to use the slow bells and + // whistles ScValueIterator below. sc::RangeColumnSpanSet aSet( aRange ); if ( eFunc == ifSUM ) -- cgit v1.2.3