summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2019-09-06 13:53:28 +0200
committerXisco FaulĂ­ <xiscofauli@libreoffice.org>2019-09-17 10:55:50 +0200
commit9b600f1aeb861219bf70a2941e3899ee545eff98 (patch)
treeffd052d21ced193d3a93f5b00ab59a8ed2685ece
parente49eb6c9968f3ccc4e24c3f0444221c20aefb7aa (diff)
Resolves: tdf#98844 calculate as shown with SUM() again
Change-Id: I0032bdb9a8f54baa2e599861e45691a255f45275 Reviewed-on: https://gerrit.libreoffice.org/78708 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 4321d8c8b09fd880a18b4106cdd1f90acc18a861) Reviewed-on: https://gerrit.libreoffice.org/78728 Reviewed-by: Xisco FaulĂ­ <xiscofauli@libreoffice.org>
-rw-r--r--sc/source/core/tool/interpr6.cxx6
1 files changed, 5 insertions, 1 deletions
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 )