Skip to content

Commit 642bcec

Browse files
committed
Fix for issue #2341
1 parent f1cdb05 commit 642bcec

2 files changed

Lines changed: 15 additions & 3 deletions

File tree

src/EPPlus/FormulaParsing/DependencyChain/RpnFormulaExecution.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1198,7 +1198,7 @@ private static FormulaRangeAddress[] ExecuteNextToken(RpnOptimizedDependencyChai
11981198
f.LambdaSettings.LambdaArgsAdded.Push(++nLambdaArgsAdded);
11991199
}
12001200
}
1201-
if (localReturnAddress && returnAddresses && (f._funcStack.Count == 0 || ShouldIgnoreAddress(f._funcStack.Peek()) == false) && IsInRecalculateDirtyCells == false)
1201+
if (localReturnAddress && returnAddresses && (f._funcStack.Count == 0 || ShouldIgnoreAddress(f._funcStack.Peek()) == false))
12021202
{
12031203
if(f._tokenIndex + 1 < f._tokens.Count)
12041204
{
@@ -1226,12 +1226,12 @@ private static FormulaRangeAddress[] ExecuteNextToken(RpnOptimizedDependencyChai
12261226
var nameAddress = ne.GetAddress();
12271227
if (nameAddress == null)
12281228
{
1229-
if (returnAddresses && string.IsNullOrEmpty(ne._name?.Formula) == false && IsInRecalculateDirtyCells == false)
1229+
if (returnAddresses && string.IsNullOrEmpty(ne._name?.Formula) == false)
12301230
{
12311231
return null;
12321232
}
12331233
}
1234-
else if (returnAddresses && (f._funcStack.Count == 0 || ShouldIgnoreAddress(f._funcStack.Peek()) == false) && IsInRecalculateDirtyCells == false)
1234+
else if (returnAddresses && (f._funcStack.Count == 0 || ShouldIgnoreAddress(f._funcStack.Peek()) == false))
12351235
{
12361236
if (IsSingleAddress(f))
12371237
{

src/EPPlusTest/Issues/FormulaCalculationIssues.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1543,6 +1543,18 @@ public void s1029()
15431543
Assert.AreEqual(6D, ws.Cells["A34"].Value);
15441544
SaveAndCleanup(p);
15451545
}
1546+
[TestMethod]
1547+
public void s1042()
1548+
{
1549+
using var p = OpenTemplatePackage("s1042.xlsx");
1550+
var wb = p.Workbook;
1551+
var ws = wb.Worksheets["Aico data"];
1552+
wb.Calculate();
1553+
Assert.AreEqual(2116735.05, ws.Cells["D45"].Value);
1554+
Assert.AreEqual(-27679.13, ws.Cells["D46"].Value);
1555+
Assert.AreEqual(27679.13, ws.Cells["D47"].Value);
1556+
//SaveAndCleanup(p);
1557+
}
15461558
}
15471559
}
15481560

0 commit comments

Comments
 (0)