@sheetxl/formulas-extended 0.7.23-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +11 -0
- package/README.md +59 -0
- package/browser/cjs/B4JJfKSI4ppwU855.cjs +1 -0
- package/browser/cjs/BWDfauDHqB6U_2ka.cjs +1 -0
- package/browser/cjs/BwLx9ix5Sq7suAYP.cjs +1 -0
- package/browser/cjs/C2uDl8VIJqh58YF_.cjs +1 -0
- package/browser/cjs/CW-b31_-r-_raT8Y.cjs +1 -0
- package/browser/cjs/Clu7XiAsCB48GDXN.cjs +1 -0
- package/browser/cjs/CnZfa45XxA-9Jhmp.cjs +1 -0
- package/browser/cjs/DsFZgtSQpC75d1M0.cjs +1 -0
- package/browser/cjs/JfM6P_qoQQTWakZf.cjs +1 -0
- package/browser/cjs/bM25C5avKgBAJVfk.cjs +1 -0
- package/browser/cjs/fqTQ_p3ehzUvc1tF.cjs +1 -0
- package/browser/cjs/h3dw1jAp2J5Pu4p3.cjs +1 -0
- package/browser/cjs/index.cjs +1 -0
- package/browser/cjs/jev6VGWTdgEgm4Yk.cjs +1 -0
- package/browser/cjs/lEQC21-Sk4lwHy2r.cjs +1 -0
- package/browser/esm/-9SircqlVS-6jMNw.mjs +304 -0
- package/browser/esm/BCWg0NNa-nGjBMYM.mjs +19 -0
- package/browser/esm/BSWSZ6lA8jcSqHmz.mjs +19 -0
- package/browser/esm/BUYVOSf4JEFM5iRs.mjs +45 -0
- package/browser/esm/BWbYcyqeI2q9zobt.mjs +63 -0
- package/browser/esm/BatWJFRiqJI5wALH.mjs +52 -0
- package/browser/esm/CRT-M9ZISwPJluM8.mjs +71 -0
- package/browser/esm/Ck9zOHAyQJLQF_j_.mjs +83 -0
- package/browser/esm/CmXZZdy6rEOCrUnH.mjs +63 -0
- package/browser/esm/DAxAXOJZXvqvlnoT.mjs +28 -0
- package/browser/esm/DHrrLoyQ_KZ3yWWr.mjs +55 -0
- package/browser/esm/DboajdAr6s1IjcXM.mjs +45 -0
- package/browser/esm/Dtof6I8zPa8LIz89.mjs +35 -0
- package/browser/esm/XphbS4usCLMa2WZ2.mjs +20 -0
- package/browser/esm/index.mjs +2978 -0
- package/licenses/dependencies.txt +1 -0
- package/node/esm/-9SircqlVS-6jMNw.mjs +304 -0
- package/node/esm/BBREUOtt4cAHs88k.mjs +45 -0
- package/node/esm/BCWg0NNa-nGjBMYM.mjs +19 -0
- package/node/esm/BSWSZ6lA8jcSqHmz.mjs +19 -0
- package/node/esm/BUYVOSf4JEFM5iRs.mjs +45 -0
- package/node/esm/BWbYcyqeI2q9zobt.mjs +63 -0
- package/node/esm/BatWJFRiqJI5wALH.mjs +52 -0
- package/node/esm/CRT-M9ZISwPJluM8.mjs +71 -0
- package/node/esm/Ck9zOHAyQJLQF_j_.mjs +83 -0
- package/node/esm/CmXZZdy6rEOCrUnH.mjs +63 -0
- package/node/esm/DHrrLoyQ_KZ3yWWr.mjs +55 -0
- package/node/esm/Dp0K0CPOWr5We6lS.mjs +28 -0
- package/node/esm/Dtof6I8zPa8LIz89.mjs +35 -0
- package/node/esm/XphbS4usCLMa2WZ2.mjs +20 -0
- package/node/esm/index.mjs +3047 -0
- package/package.json +43 -0
- package/resources/contents.json +14 -0
- package/resources/locales/contents.json +9 -0
- package/resources/locales/de/functions.json +59 -0
- package/types/index.d.ts +4 -0
- package/types/src/.generated/decl/cube/Cube.decl.d.ts +4 -0
- package/types/src/.generated/decl/cube/Cube.decl.d.ts.map +1 -0
- package/types/src/.generated/decl/financial/ACCRINT.decl.d.ts +4 -0
- package/types/src/.generated/decl/financial/ACCRINT.decl.d.ts.map +1 -0
- package/types/src/.generated/decl/financial/AMORDEGRC.decl.d.ts +4 -0
- package/types/src/.generated/decl/financial/AMORDEGRC.decl.d.ts.map +1 -0
- package/types/src/.generated/decl/financial/Date.decl.d.ts +4 -0
- package/types/src/.generated/decl/financial/Date.decl.d.ts.map +1 -0
- package/types/src/.generated/decl/financial/Financial.decl.d.ts +4 -0
- package/types/src/.generated/decl/financial/Financial.decl.d.ts.map +1 -0
- package/types/src/.generated/decl/financial/Financial2.decl.d.ts +4 -0
- package/types/src/.generated/decl/financial/Financial2.decl.d.ts.map +1 -0
- package/types/src/.generated/decl/financial/Financial3.decl.d.ts +4 -0
- package/types/src/.generated/decl/financial/Financial3.decl.d.ts.map +1 -0
- package/types/src/.generated/decl/financial/Financial4.decl.d.ts +4 -0
- package/types/src/.generated/decl/financial/Financial4.decl.d.ts.map +1 -0
- package/types/src/.generated/decl/financial/ODD.decl.d.ts +4 -0
- package/types/src/.generated/decl/financial/ODD.decl.d.ts.map +1 -0
- package/types/src/.generated/decl/financial/VDB.decl.d.ts +4 -0
- package/types/src/.generated/decl/financial/VDB.decl.d.ts.map +1 -0
- package/types/src/.generated/decl/statistical/ETS.decl.d.ts +4 -0
- package/types/src/.generated/decl/statistical/ETS.decl.d.ts.map +1 -0
- package/types/src/.generated/decl/statistical/Regression.decl.d.ts +4 -0
- package/types/src/.generated/decl/statistical/Regression.decl.d.ts.map +1 -0
- package/types/src/.generated/decl/statistical/TTEST.decl.d.ts +4 -0
- package/types/src/.generated/decl/statistical/TTEST.decl.d.ts.map +1 -0
- package/types/src/.generated/decl/text/RegEx.decl.d.ts +4 -0
- package/types/src/.generated/decl/text/RegEx.decl.d.ts.map +1 -0
- package/types/src/.generated/desc/cube/Cube.desc.d.ts +4 -0
- package/types/src/.generated/desc/cube/Cube.desc.d.ts.map +1 -0
- package/types/src/.generated/desc/financial/ACCRINT.desc.d.ts +4 -0
- package/types/src/.generated/desc/financial/ACCRINT.desc.d.ts.map +1 -0
- package/types/src/.generated/desc/financial/AMORDEGRC.desc.d.ts +4 -0
- package/types/src/.generated/desc/financial/AMORDEGRC.desc.d.ts.map +1 -0
- package/types/src/.generated/desc/financial/Date.desc.d.ts +4 -0
- package/types/src/.generated/desc/financial/Date.desc.d.ts.map +1 -0
- package/types/src/.generated/desc/financial/Financial.desc.d.ts +4 -0
- package/types/src/.generated/desc/financial/Financial.desc.d.ts.map +1 -0
- package/types/src/.generated/desc/financial/Financial2.desc.d.ts +4 -0
- package/types/src/.generated/desc/financial/Financial2.desc.d.ts.map +1 -0
- package/types/src/.generated/desc/financial/Financial3.desc.d.ts +4 -0
- package/types/src/.generated/desc/financial/Financial3.desc.d.ts.map +1 -0
- package/types/src/.generated/desc/financial/Financial4.desc.d.ts +4 -0
- package/types/src/.generated/desc/financial/Financial4.desc.d.ts.map +1 -0
- package/types/src/.generated/desc/financial/ODD.desc.d.ts +4 -0
- package/types/src/.generated/desc/financial/ODD.desc.d.ts.map +1 -0
- package/types/src/.generated/desc/financial/VDB.desc.d.ts +4 -0
- package/types/src/.generated/desc/financial/VDB.desc.d.ts.map +1 -0
- package/types/src/.generated/desc/statistical/ETS.desc.d.ts +4 -0
- package/types/src/.generated/desc/statistical/ETS.desc.d.ts.map +1 -0
- package/types/src/.generated/desc/statistical/Regression.desc.d.ts +4 -0
- package/types/src/.generated/desc/statistical/Regression.desc.d.ts.map +1 -0
- package/types/src/.generated/desc/statistical/TTEST.desc.d.ts +4 -0
- package/types/src/.generated/desc/statistical/TTEST.desc.d.ts.map +1 -0
- package/types/src/.generated/desc/text/RegEx.desc.d.ts +4 -0
- package/types/src/.generated/desc/text/RegEx.desc.d.ts.map +1 -0
- package/types/src/.generated/index.d.ts +7 -0
- package/types/src/.generated/index.d.ts.map +1 -0
- package/types/src/_utils/AnyArgs.d.ts +38 -0
- package/types/src/_utils/AnyArgs.d.ts.map +1 -0
- package/types/src/_utils/Consts.d.ts +14 -0
- package/types/src/_utils/Consts.d.ts.map +1 -0
- package/types/src/_utils/Date.d.ts +33 -0
- package/types/src/_utils/Date.d.ts.map +1 -0
- package/types/src/_utils/FinanaceSolver.d.ts +19 -0
- package/types/src/_utils/FinanaceSolver.d.ts.map +1 -0
- package/types/src/_utils/FinanceCoupon.d.ts +141 -0
- package/types/src/_utils/FinanceCoupon.d.ts.map +1 -0
- package/types/src/_utils/FinanceDate.d.ts +26 -0
- package/types/src/_utils/FinanceDate.d.ts.map +1 -0
- package/types/src/_utils/FinanceDayCount.d.ts +80 -0
- package/types/src/_utils/FinanceDayCount.d.ts.map +1 -0
- package/types/src/_utils/FinanceUtils.d.ts +3 -0
- package/types/src/_utils/FinanceUtils.d.ts.map +1 -0
- package/types/src/_utils/LeastSquares.d.ts +131 -0
- package/types/src/_utils/LeastSquares.d.ts.map +1 -0
- package/types/src/cube/Cube.d.ts +64 -0
- package/types/src/cube/Cube.d.ts.map +1 -0
- package/types/src/financial/ACCRINT.d.ts +19 -0
- package/types/src/financial/ACCRINT.d.ts.map +1 -0
- package/types/src/financial/AMORDEGRC.d.ts +53 -0
- package/types/src/financial/AMORDEGRC.d.ts.map +1 -0
- package/types/src/financial/Date.d.ts +29 -0
- package/types/src/financial/Date.d.ts.map +1 -0
- package/types/src/financial/Financial.d.ts +287 -0
- package/types/src/financial/Financial.d.ts.map +1 -0
- package/types/src/financial/Financial2.d.ts +99 -0
- package/types/src/financial/Financial2.d.ts.map +1 -0
- package/types/src/financial/Financial3.d.ts +95 -0
- package/types/src/financial/Financial3.d.ts.map +1 -0
- package/types/src/financial/Financial4.d.ts +82 -0
- package/types/src/financial/Financial4.d.ts.map +1 -0
- package/types/src/financial/ODD.d.ts +106 -0
- package/types/src/financial/ODD.d.ts.map +1 -0
- package/types/src/financial/VDB.d.ts +27 -0
- package/types/src/financial/VDB.d.ts.map +1 -0
- package/types/src/statistical/ETS.d.ts +45 -0
- package/types/src/statistical/ETS.d.ts.map +1 -0
- package/types/src/statistical/Regression.d.ts +49 -0
- package/types/src/statistical/Regression.d.ts.map +1 -0
- package/types/src/statistical/TTEST.d.ts +27 -0
- package/types/src/statistical/TTEST.d.ts.map +1 -0
- package/types/src/text/RegEx.d.ts +34 -0
- package/types/src/text/RegEx.d.ts.map +1 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Repository Licensing
|
|
2
|
+
|
|
3
|
+
SheetXL contains a mix of open-source and commercially licensed packages. Each package is individually licensed and contains its own license file.
|
|
4
|
+
|
|
5
|
+
For the specific terms and conditions applicable to a package, please see the `LICENSE.md` file located in that package's root directory.
|
|
6
|
+
|
|
7
|
+
Generally, packages intended for public distribution (such as CLIs, adapters, and vanilla wrappers) are licensed under the MIT license. All other core packages are proprietary and require a commercial license for use.
|
|
8
|
+
|
|
9
|
+
For more details on commercial licensing, please visit our website:
|
|
10
|
+
|
|
11
|
+
https://www.sheetxl.com/docs/guides/licensing-pricing
|
package/README.md
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# @sheetxl/formulas-extended
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<a href="https://www.sheetxl.com" target="_blank">
|
|
5
|
+
<img src="https://www.sheetxl.com/logo-text.svg" alt="SheetXL Logo" width="180" />
|
|
6
|
+
</a>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
Advanced spreadsheet functions for demanding, production-grade applications.
|
|
10
|
+
|
|
11
|
+
`@sheetxl/formulas-extended` extends `@sheetxl/formulas` with high-complexity function categories that require deeper domain logic — financial modelling, statistical forecasting, and more.
|
|
12
|
+
|
|
13
|
+
## What's included
|
|
14
|
+
|
|
15
|
+
### Financial
|
|
16
|
+
|
|
17
|
+
Excel-compatible financial functions with full day-count convention support (Actual/360, Actual/365, 30/360, and variants), coupon period handling, and iterative solver for yield calculations.
|
|
18
|
+
|
|
19
|
+
Includes: `ACCRINT`, `ACCRINTM`, `AMORDEGRC`, `AMORLINC`, `COUPDAYBS`, `COUPDAYS`, `COUPDAYSNC`, `COUPNCD`, `COUPNUM`, `COUPPCD`, `DISC`, `DURATION`, `MDURATION`, `ODDFPRICE`, `ODDFYIELD`, `ODDLPRICE`, `ODDLYIELD`, `PRICE`, `PRICEDISC`, `PRICEMAT`, `RECEIVED`, `VDB`, `XIRR`, `XNPV`, `YIELD`, `YIELDDISC`, `YIELDMAT`
|
|
20
|
+
|
|
21
|
+
### Statistical Forecasting
|
|
22
|
+
|
|
23
|
+
`FORECAST.ETS` family with full Hyndman-Khandakar exponential smoothing — additive and multiplicative seasonality, automatic season detection, and confidence interval calculation.
|
|
24
|
+
|
|
25
|
+
Includes: `FORECAST.ETS`, `FORECAST.ETS.CONFINT`, `FORECAST.ETS.SEASONALITY`, `FORECAST.ETS.STAT`
|
|
26
|
+
|
|
27
|
+
### Regression
|
|
28
|
+
|
|
29
|
+
Least-squares regression over multiple predictors, with the full `stats` array — standard errors per coefficient, R², standard error of the estimate, the F statistic and degrees of freedom, and the regression/residual sums of squares. Rank-deficient designs are handled Excel's way: a collinear predictor is dropped rather than failing the fit.
|
|
30
|
+
|
|
31
|
+
Includes: `LINEST`, `LOGEST`, `TREND`, `GROWTH`
|
|
32
|
+
|
|
33
|
+
## Installation
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Using npm
|
|
37
|
+
npm install @sheetxl/formulas-extended @sheetxl/formulas @sheetxl/primitives
|
|
38
|
+
|
|
39
|
+
# Using pnpm
|
|
40
|
+
pnpm add @sheetxl/formulas-extended @sheetxl/formulas @sheetxl/primitives
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## License
|
|
44
|
+
|
|
45
|
+
Commercial license — see [LICENSE](./LICENSE).
|
|
46
|
+
|
|
47
|
+
## 🔗 Learn More
|
|
48
|
+
|
|
49
|
+
Whether you're ready to build, need help, or just want to see more examples, here's where to go next.
|
|
50
|
+
|
|
51
|
+
* 💬 **[Join our Discord Community](https://discord.gg/NTKdwUgK9p)** - Get help and connect with the team.
|
|
52
|
+
* ⭐ **[Star us on GitHub](https://github.com/sheetxl/sheetxl)** - If you like SheetXL give us a star ⭐ and help others find us!
|
|
53
|
+
* 📘 **[Developer Docs](https://www.sheetxl.com/docs)** - Guides and tutorials.
|
|
54
|
+
* 🔌 **[API Reference](https://api.sheetxl.com)** - Detailed documentation for all packages.
|
|
55
|
+
* 👀 **[Live Demo Gallery](https://www.sheetxl.com/demos)** - A showcase of interactive examples.
|
|
56
|
+
* 🖼️ **[Storybook](https://storybook.sheetxl.com)** - Explore and test individual UI components.
|
|
57
|
+
* 🌐 **[Website](https://www.sheetxl.com)** - Our Website.
|
|
58
|
+
|
|
59
|
+
---
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.default={AMORDEGRC:{s:`Returns the depreciation for each accounting period using a`,p:{cost:{d:`is the cost of the asset.`},datePurchased:{d:`is the date the asset is purchased.`},firstPeriod:{d:`is the date of the end of the first period.`},salvage:{d:`is the salvage value at the end of life of the asset.`},period:{d:`is the period.`},rate:{d:`is the depreciation rate.`},basis:{d:`is the type of day count basis to use.`}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.default={VDB:{s:`Returns the depreciation of an asset for any period you specify, including partial periods, using the double-declining balance method or some other method you specify.`,p:{cost:{d:`is the initial cost of the asset.`},salvage:{d:`is the salvage value at the end of the life of the asset.`},life:{d:`is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset).`},startPeriod:{d:`is the first period in the calculation.`},endPeriod:{d:`is the last period in the calculation.`},factor:{d:`is the rate at which the balance declines.`},noSwitch:{d:`switch to straight-line depreciation when depreciation is greater than the declining balance = FALSE; do not switch = TRUE.`}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.default={COUPDAYBS:{s:`Returns the number of days from the beginning of the coupon period to the settlement date.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},frequency:{d:`is the number of coupon payments per year.`},basis:{d:`is the type of day count basis to use.`}}},COUPDAYS:{s:`Returns the number of days in the coupon period containing the settlement date.`,p:{settlement:{d:`Settlement date number number.`},maturity:{d:`Maturity date number number.`},frequency:{d:`Coupons per year: 1, 2, or 4.`},basis:{d:`Day-count basis (0–4). Default 0.`}}},COUPDAYSNC:{s:`Returns the number of days from the settlement date to the next coupon date.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},frequency:{d:`is the number of coupon payments per year.`},basis:{d:`is the type of day count basis to use.`}}},COUPNCD:{s:`Returns the number of days from the beginning of the coupon period to the settlement date.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},frequency:{d:`is the number of coupon payments per year.`},basis:{d:`is the type of day count basis to use.`}}},COUPPCD:{s:`Returns the previous coupon date before the settlement date.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},frequency:{d:`is the number of coupon payments per year.`},basis:{d:`is the type of day count basis to use.`}}},COUPNUM:{s:`Returns the number of coupons payable between the settlement date and maturity date.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},frequency:{d:`is the number of coupon payments per year.`},basis:{d:`is the type of day count basis to use.`}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.default={PRICE:{s:`Returns the price per $100 face value of a security that pays periodic interest.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},rate:{d:`is the interest rate.`},yld:{d:`is the security's annual yield.`},redemption:{d:`is the amount to be received at maturity.`},frequency:{d:`is the number of coupon payments per year.`},basis:{d:`is the type of day count basis to use.`}}},DURATION:{s:`Returns the annual duration of a security with periodic interest payments.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},coupon:{d:`is the security's annual coupon rate.`},yld:{d:`is the security's annual yield.`},frequency:{d:`is the number of coupon payments per year.`},basis:{d:`is the type of day count basis to use.`}}},MDURATION:{s:`Returns the Macauley modified duration for a security with an assumed par value of $100.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},coupon:{d:`is the security's annual coupon rate.`},yld:{d:`is the security's annual yield.`},frequency:{d:`is the number of coupon payments per year.`},basis:{d:`is the type of day count basis to use.`}}},YIELD:{s:`Returns the yield on a security that pays periodic interest.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},rate:{d:`is the security's annual coupon rate.`},pr:{d:`is the security's price per $100 face value.`},redemption:{d:`is the security's redemption value per $100 face value.`},frequency:{d:`is the number of coupon payments per year.`},basis:{d:`is the type of day count basis to use.`}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.default={CUBEKPIMEMBER:{s:`Returns a key performance indicator (KPI) property and displays the KPI name in the cell.`,p:{connection:{d:`is the name of a connection to an OLAP cube.`},kpiName:{d:`is the KPI name.`},kpiProperty:{d:`is the KPI property.`},caption:{d:`is the caption to be displayed in the cell.`}},h:`Unimplemented Cube`},CUBEMEMBER:{s:`Returns a member or tuple from the cube.`,p:{connection:{d:`is the name of a connection to an OLAP cube.`},memberExpression:{d:`is the expression representing the name of a member or tuple in the OLAP cube.`},caption:{d:`is the caption to be displayed in the cell.`}},h:`Unimplemented Cube`},CUBEMEMBERPROPERTY:{s:`Returns the value of a member property from the cube.`,p:{connection:{d:`is the name of a connection to an OLAP cube.`},memberExpression:{d:`is the expression representing the name of a member in the OLAP cube.`},kpiProperty:{d:`is the property name.`}},h:`Unimplemented Cube`},CUBERANKEDMEMBER:{s:`Returns the nth, or ranked, member in a set.`,p:{connection:{d:`is the name of a connection to an OLAP cube.`},setExpression:{d:`is the set from which the element is to be retrieved.`},rank:{d:`is the rank of the element to be retrieved.`},caption:{d:`is the caption to be displayed in the cell.`}},h:`Unimplemented Cube`},CUBESET:{s:`Defines a calculated set of members or tuples by sending a set expression to the cube on the server, which creates the set, and then returns that set to Microsoft Excel.`,p:{connection:{d:`is the name of a connection to an OLAP cube.`},setExpression:{d:`is the expression for the set.`},caption:{d:`is the caption to be displayed in the cell.`},sortOrder:{d:`is the sort order.`},sortBy:{d:`is the sort by.`}},h:`Unimplemented Cube`},CUBESETCOUNT:{s:`Returns the number of items in a set.`,p:{set:{d:`is the set whose elements are to be counted.`}},h:`Unimplemented Cube`},CUBEVALUE:{s:`Returns an aggregated value from the cube.`,p:{connection:{d:`is the name of a connection to an OLAP cube.`},memberExpression:{d:`is a slicer that determines the portion of the OLAP cube for which the aggregation value is to be retrieved.`}},h:`Unimplemented Cube`}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.default={COUPDAYS:{s:`Returns the number of days from the beginning of the coupon period to the settlement date.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},frequency:{d:`is the number of coupon payments per year.`},basis:{d:`is the type of day count basis to use.`}}},CUMIPMT:{s:`Returns the cumulative interest paid between two periods.`,p:{rate:{d:`is the interest rate.`},nper:{d:`is the total number of payment periods.`},pv:{d:`is the present value of the investment.`},startPeriod:{d:`is the first period in the calculation.`},endPeriod:{d:`is the last period in the calculation.`},type:{d:`is the timing of the payment.`}}},CUMPRINC:{s:`Returns the cumulative principal paid on a loan between two periods.`,p:{rate:{d:`is the interest rate.`},nper:{d:`is the total number of payment periods.`},pv:{d:`is the present value of the investment.`},startPeriod:{d:`is the first period in the calculation.`},endPeriod:{d:`is the last period in the calculation.`},type:{d:`is the timing of the payment.`}}},DB:{s:`Returns the depreciation of an asset for a specified period using the fixed-declining balance method.`,p:{cost:{d:`is the initial cost of the asset.`},salvage:{d:`is the salvage value at the end of the life of the asset.`},life:{d:`is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset).`},period:{d:`is the period for which you want to calculate the depreciation. Period must use the same units as Life.`},month:{d:`is the number of months in the first year.`}}},DDB:{s:`Returns the depreciation of an asset for a specified period using the double-declining balance method or some other method you specify.`,p:{cost:{d:`is the initial cost of the asset.`},salvage:{d:`is the salvage value at the end of the life of the asset.`},life:{d:`is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset).`},period:{d:`is the period for which you want to calculate the depreciation. Period must use the same units as Life.`},factor:{d:`is the rate at which the balance declines.`}}},DISC:{s:`Returns the discount rate for a security.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},pr:{d:`is the security's price per $100 face value.`},redemption:{d:`is the security's redemption value per $100 face value.`},basis:{d:`is the type of day count basis to use.`}}},DOLLARDE:{s:`Converts a dollar price, expressed as a fraction, into a dollar price, expressed as a decimal number.`,p:{fractionalDollar:{d:`is a number expressed as a fraction.`},fraction:{d:`is the integer to use in the denominator of the fraction.`}}},DOLLARFR:{s:`Converts a dollar price, expressed as a decimal number, into a dollar price, expressed as a fraction.`,p:{decimalDollar:{d:`is a decimal number.`},fraction:{d:`is the integer to use in the denominator of the fraction.`}}},EFFECT:{s:`Returns the effective annual interest rate.`,p:{nominalRate:{d:`is the nominal interest rate.`},npery:{d:`is the number of compounding periods per year.`}}},FV:{s:`Returns the future value of an investment based on periodic, constant payments and a constant interest rate.`,p:{rate:{d:`is the interest rate.`},nper:{d:`is the total number of payment periods.`},pmt:{d:`is the payment made each period; it cannot change over the life of the investment.`},pv:{d:`is the present value of the investment.`},type:{d:`Indicates when pmts are due.`}}},FVSCHEDULE:{s:`Returns the future value of an initial principal after applying a series of compound interest rates.`,p:{principal:{d:`is the present value.`},schedule:{d:`is an array of interest rates to apply.`}}},IPMT:{s:`Returns the interest payment for a given period for an investment, based on periodic, constant payments and a constant interest rate.`,p:{rate:{d:`is the interest rate.`},per:{d:`is the period for which you want to find the interest and must be in the range 1 to Nper.`},nper:{d:`is the total number of payment periods.`},pv:{d:`is the present value of the investment.`},fv:{d:`is the future value, or a cash balance you want to attain after the last payment is made.`},type:{d:`is a logical value representing the timing of payment: at the end of the period = 0, at the beginning of the period = 1.`}}},IRR:{s:`Returns the internal rate of return for a series of cash flows.`,p:{values:{d:`is an array or a reference to cells that contain numbers for which you want to calculate the internal rate of return.`},guess:{d:`is a number that you guess is close to the result of IRR.`}}},ISPMT:{s:`Returns the interest paid during a specific period of an investment.`,p:{rate:{d:`is the interest rate.`},per:{d:`period for which you want to find the interest.`},nper:{d:`number of payment periods in an investment.`},pv:{d:`lump sum amount that a series of future payments is right now.`}}},MIRR:{s:`Returns the modified internal rate of return for a series of periodic cash flows.`,p:{values:{d:`An array of cash flows; must contain at least one positive and one negative value.`},financeRate:{d:`The interest rate paid on negative cash flows (cost of capital).`},reinvestRate:{d:`The interest rate received on positive cash flows (reinvestment rate).`}}},NOMINAL:{s:`Returns the annual nominal interest rate.`,p:{effectiveRate:{d:`is the effective interest rate.`},npery:{d:`is the number of compounding periods per year.`}}},NPER:{s:`Returns the number of periods for an investment based on periodic, constant payments and a constant interest rate.`,p:{rate:{d:`is the interest rate per period. For example, use 6%/4 for quarterly payments at 6% APR.`},pmt:{d:`is the payment made each period; it cannot change over the life of the investment.`},pv:{d:`is the present value, or the lump-sum amount that a series of future payments is worth now.`},fv:{d:`is the future value, or a cash balance you want to attain after the last payment is made.`},type:{d:`is a logical value: payment at the beginning of the period = 1; payment at the end of the period = 0.`}}},NPV:{s:`Returns the net present value of an investment based on a discount rate and a series of future payments (negative values) and income (positive values).`,p:{rate:{d:`is the rate of discount over the length of one period.`},value:{d:`are 1 to 254 payments and income, equally spaced in time and occurring at the end of each period.`}}},PDURATION:{s:`Returns the number of periods required by an investment to reach a specified value.`,p:{rate:{d:`is the interest rate.`},pv:{d:`is the present value of the investment.`},fv:{d:`is the desired future value of the investment.`}}},PMT:{s:`Calculates the payment for a loan based on constant payments and a constant interest rate.`,p:{rate:{d:`is the interest rate.`},nper:{d:`is the total number of payment periods.`},pv:{d:`is the present value of the investment.`},fv:{d:`is the future value, or a cash balance you want to attain after the last payment is made.`},type:{d:`is a logical value: payment at the beginning of the period = 1; payment at the end of the period = 0.`}}},PPMT:{s:`Returns the payment on the principal for a given investment based on periodic, constant payments and a constant payments and a constant interest rate.`,p:{rate:{d:`is the interest rate per period.`},per:{d:`is the period for which you want to find the principal payment and must be in the range 1 to Nper.`},nper:{d:`is the total number of payment periods in the investment.`},pv:{d:`is the present value of the investment.`},fv:{d:`is the future value, or a cash balance you want to attain after the last payment is made.`},type:{d:`is a logical value: payment at the beginning of the period = 1; payment at the end of the period = 0.`}}},PRICEDISC:{s:`Returns the price per $100 face value of a discounted security.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},discount:{d:`is the security's discount rate.`},redemption:{d:`is the amount to be received at maturity.`},basis:{d:`is the type of day count basis to use.`}}},PV:{s:`Returns the present value of an investment: the total amount that a series of future payments is worth now.`,p:{rate:{d:`is the interest rate.`},nper:{d:`is the total number of payment periods in an investment.`},pmt:{d:`is the payment made each period and cannot change over the life of the investment.`},fv:{d:`is the future value, or a cash balance you want to attain after the last payment is made.`},type:{d:`is a logical value: payment at the beginning of the period = 1; payment at the end of the period = 0.`}}},RATE:{s:`Returns the interest rate per period of a loan or an investment. For example, use 6%/4 for quarterly payments at 6% APR.`,p:{nper:{d:`is the total number of payment periods.`},pmt:{d:`is the payment made each period and cannot change over the life of the loan or investment.`},pv:{d:`is the present value: the total amount that a series of future payments is worth now.`},fv:{d:`is the future value, or a cash balance you want to attain after the last payment is made.`},type:{d:`is a logical value: payment at the beginning of the period = 1; payment at the end of the period = 0.`},guess:{d:`is your guess for what the rate will be.`}}},RRI:{s:`Returns an equivalent interest rate for the growth of an investment.`,p:{nper:{d:`is the total number of payment periods.`},pv:{d:`is the present value of the investment.`},fv:{d:`is the future value of the investment.`}}},SLN:{s:`Returns the straight-line depreciation of an asset for one period.`,p:{cost:{d:`is the initial cost of the asset.`},salvage:{d:`is the salvage value at the end of the life of the asset.`},life:{d:`is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset).`}}},STOCKHISTORY:{s:`Returns an array of historical quote data for a symbol and date range you specify..`,p:{stock:{d:`Symbol of financial instrument to be considered or a Stock data type.`},startDate:{d:`First date to return data from.`},endDate:{d:`Last date to return data from.`},interval:{d:`A number indicating the granularity of the data; 0 - Daily, 1 - Weekly, 2 - Monthly.`},headers:{d:`A logical value to add column header data; 0 - No column header, 1 - Show column header, 2 - Show instrument identifier and column header.`},properties:{d:`A number indicating which column of data to return; 0 through 5.`}},h:`Unimplemented RichData`},SYD:{s:`Returns the sum-of-years' digits depreciation of an asset for a specified period.`,p:{cost:{d:`is the initial cost of the asset.`},salvage:{d:`is the salvage value at the end of the life of the asset.`},life:{d:`is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset).`},per:{d:`is the period and must use the same units as Life.`}}},TBILLEQ:{s:`Returns the bond-equivalent yield for a treasury bill.`,p:{settlement:{d:`is the Treasury bill's settlement date, expressed as a serial date number.`},maturity:{d:`is the Treasury bill's maturity date, expressed as a serial date number.`},discount:{d:`is the Treasury bill's discount rate.`}}},TBILLPRICE:{s:`Returns the price per $100 face value for a treasury bill.`,p:{settlement:{d:`is the Treasury bill's settlement date, expressed as a serial date number.`},maturity:{d:`is the Treasury bill's maturity date, expressed as a serial date number.`},discount:{d:`is the Treasury bill's discount rate.`}}},TBILLYIELD:{s:`Returns the yield for a treasury bill.`,p:{settlement:{d:`is the Treasury bill's settlement date, expressed as a serial date number.`},maturity:{d:`is the Treasury bill's maturity date, expressed as a serial date number.`},pr:{d:`is the Treasury Bill's price per $100 face value.`}}},XIRR:{s:`Returns the internal rate of return for a schedule of cash flows.`,p:{values:{d:`is a series of cash flows that correspond to a schedule of payments in dates.`},dates:{d:`is a schedule of payment dates that corresponds to the cash flow payments.`},guess:{d:`is a number that you guess is close to the result of XIRR.`}}},XNPV:{s:`Returns the net present value for a schedule of cash flows.`,p:{rate:{d:`is the discount rate to apply to the cash flows.`},values:{d:`is a series of cash flows that correspond to a schedule of payments in dates.`},dates:{d:`is a schedule of payment dates that corresponds to the cash flow payments.`}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.default={LINEST:{s:`Returns statistics that describe a linear trend matching known data points, by fitting a straight line using the least squares method.`,p:{knownYs:{d:`is the set of y-values you already know in the relationship y = mx + b.`},knownXs:{d:`is an optional set of x-values that you may already know in the relationship y = mx + b.`},constant:{d:`is a logical value: the constant b is calculated normally if Const = TRUE; b is set equal to 0 if Const = FALSE.`},stats:{d:`is a logical value: return additional regression statistics = TRUE; return m-coefficients and the constant b = FALSE.`}}},LOGEST:{s:`Returns statistics that describe an exponential curve matching known data points.`,p:{knownYs:{d:`is the set of y-values you already know in the relationship y = b*m^x.`},knownXs:{d:`is an optional set of x-values that you may already know in the relationship y = b*m^x.`},constant:{d:`is a logical value: the constant b is calculated normally if Const = TRUE; b is set equal to 1 if Const = FALSE.`},stats:{d:`is a logical value: return additional regression statistics = TRUE; return m-coefficients and the constant b = FALSE.`}}},TREND:{s:`Returns values along a linear trend fitted to known data points.`,p:{knownYs:{d:`The known y-values in the relationship y = mx + b.`},knownXs:{d:`Optional x-values. Defaults to {1,2,3,...,n}.`},newXs:{d:`The x-values for which to predict y. Defaults to knownX.`},useConst:{d:`If FALSE, forces the constant b to zero. Defaults to TRUE.`}}},GROWTH:{s:`Returns numbers in an exponential growth trend matching known data points.`,p:{knownYs:{d:`is the set of y-values you already know in the relationship y = b*m^x, an array or range of positive numbers.`},knownXs:{d:`is an optional set of x-values that you may already know in the relationship y = b*m^x, an array or range the same size as Known_y's.`},newXs:{d:`are new x-values for which you want GROWTH to return corresponding y-values.`},useConst:{d:`is a logical value: the constant b is calculated normally if Const = TRUE; b is set equal to 1 if Const = FALSE.`}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.default={ODDFPRICE:{s:`Returns the price per $100 face value of a security with an odd first period.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},issue:{d:`is the security's issue date, expressed as a serial date number.`},firstCoupon:{d:`is the security's first coupon date, expressed as a serial date number.`},rate:{},yld:{d:`is the security's annual yield.`},redemption:{d:`is the security's redemption value per $100 face value.`},frequency:{d:`is the number of coupon payments per year.`},basis:{d:`is the type of day count basis to use.`}}},ODDFYIELD:{s:`Returns the yield of a security with an odd first period.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},issue:{d:`is the security's issue date, expressed as a serial date number.`},firstCoupon:{d:`is the security's first coupon date, expressed as a serial date number.`},rate:{d:`is the security's interest rate.`},pr:{d:`is the security's price.`},redemption:{d:`is the security's redemption value per $100 face value.`},frequency:{d:`is the number of coupon payments per year.`},basis:{d:`is the type of day count basis to use.`}}},ODDLPRICE:{s:`Returns the price per $100 face value of a security with an odd last period.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},lastInterest:{d:`is the security's last coupon date, expressed as a serial date number.`},rate:{d:`is the interest rate.`},yld:{d:`is the security's annual yield.`},redemption:{d:`is the amount to be received at maturity.`},frequency:{d:`is the number of coupon payments per year.`},basis:{d:`is the type of day count basis to use.`}}},ODDLYIELD:{s:`Returns the yield of a security with an odd last period.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},lastInterest:{d:`is the security's last coupon date, expressed as a serial date number.`},rate:{d:`is the interest rate.`},pr:{d:`is the security's price.`},redemption:{d:`is the amount to be received at maturity.`},frequency:{d:`is the number of coupon payments per year.`},basis:{d:`is the type of day count basis to use.`}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.default={DATEDIF:{s:`Returns the number of days between two dates.`,p:{startDate:{d:`is a serial date number that represents the start date.`},endDate:{d:`is a serial date number that represents the end date.`},unit:{d:`is a string that specifies the unit of time to use.`}},h:`Legacy`},YEARFRAC:{s:`Returns the year fraction representing the number of whole days between start_date and end_date.`,c:`Date & Time`,p:{startDate:{d:`is a serial date number that represents the start date.`},endDate:{d:`is a serial date number that represents the end date.`},basis:{d:`is the type of day count basis to use.`}}},DAYS360:{s:`Returns the number of days between two dates based on a 360-day year (twelve 30-day months).`,p:{startDate:{d:`startDate and endDate are the two dates between which you want to know the number of days.`},endDate:{d:`startDate and endDate are the two dates between which you want to know the number of days.`},method:{d:`is a logical value specifying the calculation method: U.S. (NASD) = FALSE; European = TRUE.`}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.default={TTEST:{s:`Returns the probability associated with a Student's t-Test.`,c:`Compatibility`,p:{array1:{d:`is the first data set.`},array2:{d:`is the second data set.`},tails:{d:`specifies the number of distribution tails to return: one-tailed distribution = 1; two-tailed distribution = 2.`},type:{d:`is the kind of t-test: paired = 1, two-sample equal variance (homoscedastic) = 2, two-sample unequal variance = 3.`}}},"T.TEST":{s:`Returns the probability associated with a Student's t-Test.`,p:{array1:{d:`is the first data set.`},array2:{d:`is the second data set.`},tails:{d:`specifies the number of distribution tails to return: one-tailed distribution = 1; two-tailed distribution = 2.`},type:{d:`is the kind of t-test: paired = 1, two-sample equal variance (homoscedastic) = 2, two-sample unequal variance = 3.`}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.default={REGEXEXTRACT:{s:`Extracts substrings of 'text' based on the provided REGEX 'pattern'.`,p:{text:{d:`is the text string from which you want to extract characters.`},pattern:{d:`The regular expression to be applied.`},returnMode:{d:`Specify which matches to return.`},caseInsensitive:{d:`Whether the match is case insensitive.`}}},REGEXMATCH:{s:`Tests whether a text string matches a regular expression.`,c:`Sheets`,p:{text:{d:`is the text string to be tested against the regular expression.`},regularExpression:{d:`The regular expression to test the text against.`},caseInsensitive:{d:`Whether the match is case insensitive.`}}},REGEXREPLACE:{s:`Returns 'text', with 'replacement' in place of matches with 'pattern'.`,p:{text:{d:`is the text string from which you want to extract characters.`},pattern:{d:`The regular expression to be applied.`},replacement:{d:`The replacement string.`},occurrence:{d:`The occurrence of the match to replace.`},caseInsensitive:{d:`Whether the match is case insensitive.`}}},REGEXTEST:{s:`Checks whether the input matches the pattern, and returns TRUE or FALSE.`,p:{text:{d:`is the text string to be checked.`},pattern:{d:`is the regular expression to be applied.`},caseInsensitive:{d:`Whether the match is case insensitive.`}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.default={ACCRINTM:{s:`Returns the accrued interest for a security that pays interest at maturity.`,p:{issue:{d:`is the security's issue date, expressed as a serial date number.`},settlement:{d:`is the security's maturity date, expressed as a serial date number.`},rate:{d:`is the security's annual coupon rate.`},par:{d:`is the security's par value.`},basis:{d:`is the type of day count basis to use.`}}},INTRATE:{s:`Returns the interest rate for a fully invested security.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},investment:{d:`is the amount invested in the security.`},redemption:{d:`is the amount to be received at maturity.`},basis:{d:`is the type of day count basis to use.`}}},RECEIVED:{s:`Returns the amount received at maturity for a fully invested security.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},investment:{d:`is the amount invested in the security.`},discount:{d:`is the security's discount rate.`},basis:{d:`is the type of day count basis to use.`}}},YIELDDISC:{s:`Returns the annual yield for a discounted security. For example, a treasury bill.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},pr:{d:`is the security's price per $100 face value.`},redemption:{d:`is the security's redemption value per $100 face value.`},basis:{d:`is the type of day count basis to use.`}}},PRICEMAT:{s:`Returns the price per $100 face value of a security that pays interest at maturity.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},issue:{d:`is the security's issue date, expressed as a serial date number.`},rate:{d:`is the interest rate.`},yld:{d:`is the security's annual yield.`},basis:{d:`is the type of day count basis to use.`}}},YIELDMAT:{s:`Returns the annual yield of a security that pays interest at maturity.`,p:{settlement:{d:`is the security's settlement date, expressed as a serial date number.`},maturity:{d:`is the security's maturity date, expressed as a serial date number.`},issue:{d:`is the security's issue date, expressed as a serial date number.`},rate:{d:`is the interest rate.`},pr:{d:`is the security's price per $100 face value.`},basis:{d:`is the type of day count basis to use.`}}},AMORLINC:{s:`Returns the prorated linear depreciation of an asset for each accounting period.`,p:{cost:{d:`is the cost of the asset.`},datePurchased:{d:`is the date the asset is purchased.`},firstPeriod:{d:`is the date of the end of the first period.`},salvage:{d:`is the salvage value at the end of life of the asset.`},period:{d:`is the period.`},rate:{d:`is the rate of depreciation.`},basis:{d:`year basis : 0 for year of 360 days, 1 for actual, 3 for year of 365 days.`}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};let n=require("@sheetxl/primitives");var r=t({CUBEKPIMEMBER:()=>i,CUBEMEMBER:()=>a,CUBEMEMBERPROPERTY:()=>o,CUBERANKEDMEMBER:()=>s,CUBESET:()=>c,CUBESETCOUNT:()=>l,CUBEVALUE:()=>u});function i(e,t,r,i){throw n.FormulaError.BuiltIn.NA}function a(e,t,r){throw n.FormulaError.BuiltIn.NA}function o(e,t,r){throw n.FormulaError.BuiltIn.NA}function s(e,t,r,i){throw n.FormulaError.BuiltIn.NA}function c(e,t,r,i,a){throw n.FormulaError.BuiltIn.NA}function l(e){throw n.FormulaError.BuiltIn.NA}function u(e,...t){throw n.FormulaError.BuiltIn.NA}var d=[31,29,31,30,31,30,31,31,30,31,30,31],f=[31,28,31,30,31,30,31,31,30,31,30,31];function p(e){return e%4==0&&e%100!=0||e%400==0}function m(e,t){return p(e)?d[t]:f[t]}function h(e,t,n){return m(e,t)===n}function g(e,t){return Math.trunc(e)-Math.trunc(t)}function _(e,t){let r=n.FormulaContext.fromSerialDate(e,!0),i=n.FormulaContext.fromSerialDate(t,!0),a=i.getFullYear()-r.getFullYear();if(a>1)return!0;if(a<1)return!1;let o=i.getMonth()-r.getMonth();return o>0||!(o<0)&&i.getDate()>r.getDate()}function v(e,t){if(h(e.getFullYear(),e.getMonth(),e.getDate())){e.setDate(1),e.setMonth(e.getMonth()+t);let n=e.getFullYear(),r=e.getMonth();e.setDate(m(n,r))}else e.setMonth(e.getMonth()+t);return e}function y(e){return!(e<0||e>4)}function b(e){return n.FormulaContext.getDateParts(Math.max(0,Math.floor(e)))}function x(e,t,n,r,i,a){return 360*(r-e)+30*(i-t)+(a-n)}function S(e,t,r){switch(r){case 0:return function(e,t){let n=b(e),r=b(t),i=n.year,a=n.month,o=n.day,s=r.year,c=r.month,l=r.day,u=!1;return a===2?o===(p(i)?29:28)&&(o=30,u=!0):o===31&&(o=30),l!==31||u||(o<30?(c===12?(s+=1,c=1):c+=1,l=1):l=30),{days:Math.abs(x(i,a,o,s,c,l)),yearDays:360}}(e,t);case 1:return function(e,t){if(e===t)return{days:0,yearDays:365};let r=b(e),i=b(t),a=r.year,o=i.year,s=Math.abs(t-e),c=Math.abs(o-a),l=c+1,u=o<a?o:a,d=o<a?a:o,f,m=n.FormulaContext.getSerialDate(u,1,1);if(u===1900&&(m+=1),c===0)f=n.FormulaContext.getSerialDate(u,12,31)-m+1;else if(c===1){let r=Math.min(e,t),i=Math.max(e,t),a=b(r),o=b(i),s=o.month-a.month;if(s>0||s===0&&o.day>a.day)f=(n.FormulaContext.getSerialDate(d+1,1,1)-m)/l;else{f=365;for(let e of[u,d])if(p(e)){let t=n.FormulaContext.getSerialDate(e,2,29);if(t>=r&&t<=i){f=366;break}}}}else f=(n.FormulaContext.getSerialDate(d+1,1,1)-m)/l;return{days:s,yearDays:f}}(e,t);case 2:return{days:Math.abs(t-e),yearDays:360};case 3:default:return{days:Math.abs(t-e),yearDays:365};case 4:return function(e,t){let n=b(e),r=b(t),i=n.day,a=r.day;return i===31&&(i=30),a===31&&(a=30),{days:Math.abs(x(n.year,n.month,i,r.year,r.month,a)),yearDays:360}}(e,t)}}function C(e,t,n){let{days:r}=S(e,t,n);return e<t?r:0}function w(e,t){let n=e.getMonth(),r=e.getDate();return r===new Date(e.getFullYear(),n+1,0).getDate()?new Date(t,n+1,0):new Date(t,n,r)}function ee(e,t,r){let i=n.FormulaContext.fromSerialDate(e,!0),a=n.FormulaContext.fromSerialDate(t,!0),o=12/r;for(a=w(a,i.getFullYear()),a>i&&(a=w(a,a.getFullYear()-1));a<=i;)a=v(a,o);return a=v(a,-o),a}function T(e,t,r){return n.FormulaContext.toSerialDate(ee(e,t,r),!0)}function E(e,t,r){let i=v(ee(e,t,r),12/r);return n.FormulaContext.toSerialDate(i,!0)}function D(e,t,n,r){return C(T(e,t,n),e,r)}function O(e,t,r,i){if(i===3)return 365/r;if(i!==1)return 360/r;let a=T(e,t,r),o=v(n.FormulaContext.fromSerialDate(a,!0),12/r),s=n.FormulaContext.toSerialDate(o,!0);return a<0&&r===1?365:s-a}function k(e,t,r){let i=n.FormulaContext.fromSerialDate(e,!0),a=n.FormulaContext.fromSerialDate(t,!0),o=12/r,s=0;for(;a>i;)a=v(a,-o),s++;return s}function A(e,t,r){let i=n.FormulaContext.fromSerialDate(e,!0);if(i=v(i,t),r){let e=i.getFullYear(),t=i.getMonth();i.setDate(m(e,t))}return n.FormulaContext.toSerialDate(i,!0)}function te(e,t,r,i,a,o,s,c,l){let u=C(r,i,l),d=O(e,i,c,l);return u<d?function(e,t,n,r,i,a,o,s,c,l,u){let d=k(e,t,s),f=C(e,r,c),p=C(n,e,c),m=a/s,h=100*i/s,g=h*l/u,_=o/(1+m)**(d-1+f/u);_+=g/(1+m)**(f/u);for(let e=2;e<=d;e++)_+=h/(1+m)**(e-1+f/u);return _-=h*p/u,_}(e,t,r,i,a,o,s,c,l,u,d):function(e,t,r,i,a,o,s,c,l,u){let d=k(i,t,c),f=function(e,t,r,i){let a=n.FormulaContext.fromSerialDate(e,!0),o=n.FormulaContext.fromSerialDate(t,!0),s=a.getFullYear(),c=a.getMonth(),l=a.getDate(),u=o.getFullYear(),d=o.getMonth(),f=o.getDate(),p=h(s,c,l)||c!==1&&l>28&&l<m(s,c)&&h(u,d,f),g=A(t,0,p),_=+!!i+ +(t<g),v=A(g,r,p);for(;r>0?v<t:v>t;)v=A(v,r,p),_++;return _}(i,e,12/c,!0),p;p=l===2||l===3?C(e,E(e,i,c),l):u-C(T(e,i,c),e,l);let g=o/c,_=100*a/c,y=s/(1+g)**(d+f+p/u),b=k(r,i,c),x=i,S=0,w=0;for(let t=b;t>=1;t--){let i=n.FormulaContext.fromSerialDate(x,!0),a=n.FormulaContext.toSerialDate(v(i,-12/c),!0),o=l===1?C(a,x,l):u;S+=(t>1?o:C(r,x,l))/o;let s=Math.max(r,a),d=Math.min(e,x);w+=(s<d?C(s,d,l):0)/o,x=a}y+=_*S/(1+g)**(f+p/u);for(let e=1;e<=d;e++)y+=_/(1+g)**(e+f+p/u);return y-=_*w,y}(e,t,r,i,a,o,s,c,l,d)}function ne(e,t,n,r,i,a,o){let s=k(e,t,a),c=O(e,t,a,o),l=D(e,t,a,o),u=c-l,d=100*n/a,f=r/a;if(s===1)return(d+i)/(f*u/c+1)-d*l/c;let p=i/(1+f)**(s-1+u/c);for(let e=1;e<=s;e++)p+=d/(1+f)**(e-1+u/c);return p-=d*l/c,p}function re(e,t,n,r,i,a){let o=D(e,t,i,a),s=O(e,t,i,a),c=k(e,t,i),l=(s-o)/s-1,u=1+r/i,d=100*n/i,f=0,p=0;for(let e=1;e<=c;e++){let t=e+l,n=d/u**t;f+=t*n,p+=n}let m=c+l,h=100/u**m;return f+=m*h,p+=h,f/p/i}function ie(e,t,n,r,i){let a=Math.min(i/n,1),o=a===1&&r!==1?0:e*(1-a)**(r-1),s=e*(1-a)**r,c=s<t?o-t:o-s;return Math.max(c,0)}function j(e,t,n){return T(e,t,n)>=0}function M(e){return!(e<1||e>4||e===3)}var ae=t({ACCRINT:()=>oe});function oe(e,t,r,i,a,o,s=0,c=!0){if(e=Math.trunc(e),t=Math.trunc(t),r=Math.trunc(r),o=Math.trunc(o),s=Math.trunc(s),!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||!n.FormulaContext.isValidDate(r))return n.FormulaError.BuiltIn.Value;if(!M(o)||!y(s)||i<=0||a<=0||e>=r)return NaN;let l=function(e,t,n,r,i,a=!0){let o=Math.ceil(r*(Math.abs(t-e)+Math.abs(t-n))/365)+6,s=0;for(let n=1;n<=o;n++)if(se(t,r,-n)<=e){s=n;break}let c=[];for(let e=-s;c.length<=600;e++){let i=se(t,r,e);if(c.push(i),i>=n)break}let l=null;if(i===1){let e=c.findIndex(e=>e===t);e>0&&(l=t-c[e-1])}let u=0;for(let o=0;o+1<c.length;o++){let s=c[o],d=c[o+1];if(d<=e)continue;if(s>=n)break;let f=Math.max(s,e),p=Math.min(d,n);if(f===s&&p===d&&(i===0||i===4||a)){u+=1;continue}let m,h;switch(i){case 0:m=f-s===1&&d<t?p-f:S(f,p,0).days,h=360/r;break;case 1:m=p-f,h=l===null?d-s:l;break;case 2:m=p-f,h=360/r;break;case 3:default:m=p-f,h=365/r;break;case 4:m=S(f,p,4).days,h=360/r}h>0&&(u+=m/h)}return u}(e,t,r,o,s,c);return i/o*a*l}function se(e,t,r){let i=Math.round(12/t*r),a=n.FormulaContext.fromSerialDate(e,!0);return v(a,i),n.FormulaContext.toSerialDate(a,!0)}var ce=t({AMORDEGRC:()=>le});function le(e,t,r,i,a,o,s=0){if(s=Math.floor(s),!n.FormulaContext.isValidDate(t)||!n.FormulaContext.isValidDate(r)||e<=0||i<0||e<i||a<0||o<=0||s!==0&&s!==1&&s!==3||Math.floor(t)>Math.floor(r))return NaN;let c=1/o,l=o*((u=c)<5?1.5:u<=6?2:2.5);var u;let{days:d,yearDays:f}=S(t,r,s),p=d/f;return function(e,t,n,r,i,a,o){let s=Math.ceil(r),c=Math.floor(e*n*a);if(o===0)return c;let l=e-Math.floor(e*n*i);if(r<3){let e=s-1;return e<=0?l>t?l:0:o<=e?Math.ceil(l/e):0}let u=l;for(let e=1;e<=o;e++){if(u<=t)return 0;let r=u*n,i=s-e,a=i>0?u/i:0,c=Math.floor(Math.max(r,a));if(e===o)return c;u-=c}return 0}(e,i,l,c,p,s===1&&c>=3?d/365:p,a>1?Math.floor(a):Math.ceil(a))}function ue(e){if(e===null)return 0;if(typeof e==`string`)try{return n.FormulaContext.parseAsNumber(e)}catch{return n.FormulaContext.parseAsSerialDate(e)}return n.FormulaContext.parseAsSerialDate(e)}var de=t({DATEDIF:()=>N,DAYS360:()=>P,YEARFRAC:()=>fe});function N(e,t,r){let i=n.FormulaContext.getDateParts(e),a=n.FormulaContext.getDateParts(t),o=Math.trunc(e),s=Math.trunc(t);if(r=r.toLowerCase(),e>t)return NaN;let c=a.year-i.year,l=a.month-i.month,u=a.day-i.day,d;switch(r){case`y`:return d=l<0||l===0&&u<0?-1:0,d+c;case`m`:return d=u<0?-1:0,12*c+l+d;case`d`:return s-o;case`md`:return s-n.FormulaContext.getSerialDate(a.year,a.month+(u<0?-1:0),i.day);case`ym`:return d=u<0?-1:0,(d+12*c+l)%12;case`yd`:return s-n.FormulaContext.getSerialDate(a.year-+(l<0||l===0&&u<0),i.month,i.day)}return NaN}function fe(e,t,r=0){let i=ue(e),a=ue(t),o=(s=r)===null?0:n.FormulaContext.parseAsNumber(s);var s;if(!n.FormulaContext.isValidDate(i)||!n.FormulaContext.isValidDate(a)||!y(o))return NaN;if(i>a){let e=i;i=a,a=e}let{days:c,yearDays:l}=S(i,a,o);return c/l}function P(e,t,n=!1){return n?(t>=e?1:-1)*S(e,t,4).days:function(e,t){let n=b(e),r=b(t),i=n.year,a=n.month,o=n.day,s=r.year,c=r.month,l=r.day;if(a===2?b(e+1).month===3&&(o=30):o===31&&(o=30),l===31)if(o<30){let e=b(t+1);s=e.year,c=e.month,l=e.day}else l=30;return x(i,a,o,s,c,l)}(e,t)}var F=e=>{let t=e.getLocaleProfile().currencySymbol;return`${t}#,##0.00_);[Red](${t}#,##0.00)`},pe=t({COUPDAYS:()=>me,CUMIPMT:()=>he,CUMPRINC:()=>ge,DB:()=>_e,DDB:()=>ve,DISC:()=>ye,DOLLARDE:()=>be,DOLLARFR:()=>xe,EFFECT:()=>Se,FV:()=>I,FVSCHEDULE:()=>Ce,IPMT:()=>we,IRR:()=>Te,ISPMT:()=>Ee,MIRR:()=>De,NOMINAL:()=>Oe,NPER:()=>ke,NPV:()=>Ae,PDURATION:()=>je,PMT:()=>L,PPMT:()=>Me,PRICEDISC:()=>Ne,PV:()=>Pe,RATE:()=>Fe,RRI:()=>Ie,SLN:()=>Le,STOCKHISTORY:()=>Re,SYD:()=>ze,TBILLEQ:()=>Be,TBILLPRICE:()=>Ve,TBILLYIELD:()=>He,XIRR:()=>Ue,XNPV:()=>We});function me(e,t,r,i=0){if(!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||!M(r)||!y(i)||e>=t)return NaN;if(i===1){let i=function(e,t,n){let r=new Date(t);if(r.setFullYear(e.getFullYear()),r>e)for(;r>e;)r.setMonth(r.getMonth()-Math.round(12/n));else{let t=new Date(r);for(t.setMonth(t.getMonth()+Math.round(12/n));t<=e;)r.setTime(t.getTime()),t.setMonth(t.getMonth()+Math.round(12/n))}return r}(n.FormulaContext.fromSerialDate(e),n.FormulaContext.fromSerialDate(t),r),a=new Date(i);return a.setMonth(a.getMonth()+Math.round(12/r)),N(n.FormulaContext.toSerialDate(i),n.FormulaContext.toSerialDate(a),`D`)}let a;switch(i){case 0:case 2:case 4:a=360;break;case 3:a=365;break;default:return NaN}return a/r}function he(e,t,r,i,a,o){if(!n.FormulaContext.isValidDate(i)||!n.FormulaContext.isValidDate(a)||e<=0||t<=0||r<=0||i<1||a<1||i>a||o!==0&&o!==1)return NaN;let s=L(e,t,r,0,o),c=0;i===1&&(o===0&&(c=-r),i++);for(let t=i;t<=a;t++)c+=o===1?I(e,t-2,s,r,1)-s:I(e,t-1,s,r,0);return c*=e,c}function ge(e,t,r,i,a,o){if(!n.FormulaContext.isValidDate(i)||!n.FormulaContext.isValidDate(a)||i>a||e<=0||t<=0||r<=0||i<1||a<1||i>a||o!==0&&o!==1)return NaN;let s=L(e,t,r,0,o),c=0;i===1&&(c=o===0?s+r*e:s,i++);for(let t=i;t<=a;t++)c+=o>0?s-(I(e,t-2,s,r,1)-s)*e:s-I(e,t-1,s,r,0)*e;return c}function _e(e,t,r,i,a=12){if(e<0||t<0||r<=0||i<0||a<1||a>12||a===12&&i>r||i>r+1)return NaN;if(e===0)return 0;n.FormulaContext.formatResults(F(n.FormulaContext.getRuntime()));let o=Math.round(1e3*(1-(t/e)**(1/r)))/1e3,s=e*o*a/12;if(i===1)return s;let c=e-s;for(let e=2;e<i;e++)c-=c*o;return i===r+1?c*o*(12-a)/12:c*o}function ve(e,t,n,r,i=2){if(e<0||t<0||n<0||r<0||i<=0||r>n)return NaN;if(t>=e)return 0;let a=0,o=0;for(let s=1;s<=r;s++)o=Math.min(i/n*(e-a),e-t-a),a+=o;return o}function ye(e,t,r,i,a=0){if(!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||!y(a)||r<=0||i<=0||e>=t)return NaN;let o,s;switch(a){case 0:o=360,s=P(e,t,!1);break;case 1:case 3:o=365,s=N(e,t,`D`);break;case 2:o=360,s=N(e,t,`D`);break;case 4:o=360,s=P(e,t,!0);break;default:return NaN}return(i-r)/i*o/s}function be(e,t){if((t=Math.trunc(t))<0)return NaN;if(t===0)throw n.FormulaError.BuiltIn.Div0;if(t===1)return e;let r=e<0?-1:1,i=Math.abs(e),a=Math.trunc(i),o=i-a;return r*(a+Math.round(o*10**Math.ceil(Math.log10(t)))/t)}function xe(e,t){if((t=Math.trunc(t))<0)return NaN;if(t===0)throw n.FormulaError.BuiltIn.Div0;if(t===1)return e;let r=e<0?-1:1,i=Math.abs(e),a=Math.trunc(i),o=i-a,s=Math.ceil(Math.log10(t));return r*(a+o*t/10**s)}function Se(e,t){return t=Math.trunc(t),e<=0||t<1?NaN:(1+e/t)**+t-1}function I(e,t,r,i=0,a=0){let o;if(e===0)o=i+r*t;else{let n=(1+e)**+t;o=a===1?i*n+r*(1+e)*(n-1)/e:i*n+r*(n-1)/e}return n.FormulaContext.formatResults(F(n.FormulaContext.getRuntime())),-o}function Ce(e,t){let r=e;for(let e of t.values()){if(typeof e!=`number`)throw n.FormulaError.BuiltIn.Value;r*=1+e}return r}function we(e,t,n,r,i=0,a=0){if(n<=0||t<1||t>n)return NaN;let o=L(e,n,r,i,a);return t===1?e*(a?0:-r):e*(a?I(e,t-2,o,r,a)-o:I(e,t-1,o,r,a))}function Te(e,t=.1){let n=e.some(e=>e>0),r=e.some(e=>e<0);if(!n||!r)return NaN;let i=t=>{let n=1+t,r=0,i=1;for(let t=0;t<e.length;t++)r+=e[t]/i,i*=n;return r},a=t;for(let e=0;e<20;e++){let e=i(a),t=a-e/((i(a+R)-e)/R);if(Math.abs(t-a)<R)return t;a=t,a<=-1&&(a=-.9999999)}return NaN}function Ee(e,t,r,i){if(r===0)throw n.FormulaError.BuiltIn.Div0;return i*e*(t/r-1)}function De(e,t,r){let i=e.length;if(!e.some(e=>e<0))throw n.FormulaError.BuiltIn.Div0;let a=0;for(let n=0;n<i;n++){let r=e[n];r<0&&(a+=r/(1+t)**+n)}let o=0;for(let t=0;t<i;t++){let n=e[t];n>0&&(o+=n*(1+r)**(i-1-t))}return n.FormulaContext.formatResults(`0%`),(-o/a)**(1/(i-1))-1}function Oe(e,t){return t=Math.trunc(t),e<=0||t<1?NaN:((e+1)**(1/t)-1)*t}function ke(e,t,r,i=0,a=0){if(e===0){if(t===0)throw n.FormulaError.BuiltIn.Div0;return(-r-i)/t}return a&&(t*=1+e),Math.log((t-i*e)/(r*e+t))/Math.log(1+e)}function Ae(e,t){if(t.length>254)throw n.FormulaError.BuiltIn.Value;let r=0;for(let i=t.length-1;i>=0;i--){if(r+=t[i],e===-1){if(r===0)continue;throw n.FormulaError.BuiltIn.Div0}r/=1+e}return r}function je(e,t,n){return e<=0||t<=0||n<=0?NaN:(Math.log(n)-Math.log(t))/Math.log(1+e)}function L(e,t,r,i=0,a=0){if(t===0)return NaN;if(e===0)return(-r-i)/t;a=+!!a;let o=(1+e)**+t;return n.FormulaContext.formatResults(F(n.FormulaContext.getRuntime())),(i*e+r*e*o)*(a?1/(1+e):1)/(1-o)}function Me(e,t,n,r,i=0,a=0){return n<=0||t<1||t>n?NaN:L(e,n,r,i,a)-we(e,t,n,r,i,a)}function Ne(e,t,r,i,a=0){if(!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||!y(a)||r<=0||i<=0||e>=t)return NaN;let o,s;switch(a){case 0:o=360,s=P(e,t,!1);break;case 1:case 3:o=365,s=N(e,t,`D`);break;case 2:o=360,s=N(e,t,`D`);break;case 4:o=360,s=P(e,t,!0);break;default:return NaN}return i-r*i*s/o}function Pe(e,t,r,i=0,a=0){if(a=+!!a,e===-1){if(t===0)return NaN;throw n.FormulaError.BuiltIn.Div0}return n.FormulaContext.formatResults(F(n.FormulaContext.getRuntime())),e===0?-r*t-i:((1-(1+e)**+t)*r*(1+e*a)/e-i)/(1+e)**+t}function Fe(e,t,r,i=0,a=0,o=.1){if(o<=-1)throw n.FormulaError.BuiltIn.Value;a=+!!a;let s=o;for(let n=0;n<100;n++){if(s<=-1)return NaN;let n,o;if(Math.abs(s)<R)n=r*(1+e*s)+t*(1+s*a)*e+i,o=r*e+t*a*e;else{let c=(1+s)**+e,l=e*(1+s)**(e-1);n=r*c+t*(1/s+a)*(c-1)+i,o=r*l+t*(1/s+a)*l+t*(-1/(s*s))*(c-1)}if(Math.abs(n)<R)return s;s-=n/o}return NaN}function Ie(e,t,n){return e<=0||t===0||n<0&&t>0||n>0&&t<0?NaN:(n/t)**(1/e)-1}function Le(e,t,r){if(r===0)throw n.FormulaError.BuiltIn.Div0;return(e-t)/r}function Re(e,t,r,i=0,a=1,o=[0,1,2,3,4]){let s=r??t;if(!n.FormulaContext.isValidDate(t)||!n.FormulaContext.isValidDate(s))throw n.FormulaError.BuiltIn.Num}function ze(e,t,n,r){return r>n?NaN:(e-t)*(n-r+1)*2/(n*(n+1))}function Be(e,t,r){if(e=Math.round(e),t=Math.round(t),!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||e>=t||_(e,t))return NaN;let i=360-r*(t-e);return i===0?0:i<0?NaN:365*r/i}function Ve(e,t,r){if(e=Math.round(e),t=Math.round(t),!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||e>=t||_(e,t))return NaN;let i=360-r*(t-e);return i===0?0:i<0?NaN:100*(1-r*(t-e)/360)}function He(e,t,r){return e=Math.round(e),t=Math.round(t),!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||e>=t||_(e,t)?NaN:360*(100-r)/(r*(t-e))}function Ue(e,t,r=.1){let i=e.flatten({includeEmpty:!0,onError:`value`}),a=t.flatten({includeEmpty:!0,onError:`value`});if(i.length!==a.length)return NaN;let o=[],s=[];for(let e=0;e<i.length;e++){let t=i[e],r=a[e];if(t!==null){if(r===null)return NaN;if(n.FormulaError.isError(t)||n.FormulaError.isError(r)||typeof r!=`number`||isNaN(r))return n.FormulaError.BuiltIn.Value;o.push(t),s.push(r)}}let c=o.some(e=>e>0),l=o.some(e=>e<0);if(!c||!l)return NaN;let u=s[0],d=s.map(e=>g(e,u)/365),f=e=>{let t=1+e,n=0;for(let e=0;e<o.length;e++)n+=o[e]/t**+d[e];return n},p=r;for(let e=0;e<20;e++){let e=f(p),t=(f(p+R)-e)/R;if(Math.abs(t)<R)break;let n=p-e/t;if(Math.abs(n-p)<R)return n;p=n,p<=-1&&(p=-.9999999)}return NaN}function We(e,t,r){if(e<=0)return NaN;let i=t.flatten({includeEmpty:!0,onError:`value`}),a=r.flatten({includeEmpty:!0,onError:`value`});if(i.length!==a.length||i.length===0)return NaN;let o=[],s=[];for(let e=0;e<i.length;e++){let t=i[e],r=a[e];if(t!==null||r!==null){if(t===null||r===null)return NaN;if(n.FormulaError.isError(t)||n.FormulaError.isError(r))return n.FormulaError.BuiltIn.Value;if(typeof t!=`number`)return NaN;if(typeof r!=`number`)return n.FormulaError.BuiltIn.Value;o.push(t),s.push(r)}}for(let e=1;e<s.length;e++)if(s[e]<s[e-1])return NaN;let c=0,l=s[0];for(let t=0;t<o.length;t++)c+=o[t]/(1+e)**(g(s[t],l)/365);return c}var R=1e-7,Ge=t({ACCRINTM:()=>Ke,AMORLINC:()=>Qe,INTRATE:()=>qe,PRICEMAT:()=>Xe,RECEIVED:()=>Je,YIELDDISC:()=>Ye,YIELDMAT:()=>Ze});function Ke(e,t,r,i,a=0){if(a=Math.floor(a),!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||!y(a)||r<=0||i<=0||Math.floor(e)>Math.floor(t))return NaN;if(Math.floor(e)===Math.floor(t))return 0;let{days:o,yearDays:s}=S(e,t,a);return i*r*o/s}function qe(e,t,r,i,a=0){if(a=Math.floor(a),!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||!y(a)||r<=0||i<=0||Math.floor(e)>=Math.floor(t))return NaN;let{days:o,yearDays:s}=S(e,t,a);return(i-r)/r*(s/o)}function Je(e,t,r,i,a=0){if(a=Math.floor(a),!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||r<=0||i<=0||!y(a)||Math.floor(e)>=Math.floor(t))return NaN;let{days:o,yearDays:s}=S(e,t,a),c=r/(1-i*o/s);return c<0?NaN:c}function Ye(e,t,r,i,a=0){if(a=Math.floor(a),!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||r<=0||i<=0||!y(a)||Math.floor(e)>=Math.floor(t))return NaN;let{days:o,yearDays:s}=S(e,t,a);return(i/r-1)/(o/s)}function Xe(e,t,r,i,a,o=0){if(o=Math.floor(o),!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||!n.FormulaContext.isValidDate(r)||i<0||a<0||!y(o)||!z(r,e,t))return NaN;let{yearDays:s}=S(r,e,o),{days:c}=S(e,t,o),{days:l}=S(r,t,o),{days:u}=S(r,e,o);return(100+l/s*i*100)/(1+c/s*a)-u/s*i*100}function Ze(e,t,r,i,a,o=0){if(o=Math.floor(o),!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||!n.FormulaContext.isValidDate(r)||i<0||a<=0||!y(o)||!z(r,e,t))return NaN;let{yearDays:s}=S(r,e,o),{days:c}=S(e,t,o),{days:l}=S(r,t,o),{days:u}=S(r,e,o);return((1+l/s*i)/(a/100+u/s*i)-1)/(c/s)}function Qe(e,t,r,i,a,o,s=0){if(s=Math.floor(s),e<=0||!n.FormulaContext.isValidDate(t)||!n.FormulaContext.isValidDate(r)||i<0||e<i||a<0||o<=0||Math.floor(t)>Math.floor(r)||![0,1,3,4].includes(s))return NaN;a=a>1?Math.floor(a):Math.ceil(a);let c=e-i,l=e*o,{days:u,yearDays:d}=S(t,r,s),f=u/d,p=Math.ceil(c/l-f);return p<0?0:a===0?l*f:a===p?c-l*(f+a-1):a>p?0:l}function z(e,t,n){return Math.floor(n)>Math.floor(t)&&Math.floor(t)>Math.floor(e)}var $e=t({COUPDAYBS:()=>et,COUPDAYS:()=>tt,COUPDAYSNC:()=>nt,COUPNCD:()=>rt,COUPNUM:()=>at,COUPPCD:()=>it});function et(e,t,r,i=0){return r=Math.floor(r),i=Math.floor(i),n.FormulaContext.isValidDate(e)&&n.FormulaContext.isValidDate(t)&&M(r)&&y(i)&&B(e,t,r,i)?D(e,t,r,i):NaN}function tt(e,t,r,i=0){return r=Math.floor(r),i=Math.floor(i),n.FormulaContext.isValidDate(e)&&n.FormulaContext.isValidDate(t)&&M(r)&&y(i)&&B(e,t,r,i)?O(e,t,r,i):NaN}function nt(e,t,r,i=0){if(r=Math.floor(r),i=Math.floor(i),!(n.FormulaContext.isValidDate(e)&&n.FormulaContext.isValidDate(t)&&M(r)&&y(i)&&B(e,t,r,i)))return NaN;let{days:a}=S(e,E(e,t,r),i);return a}function rt(e,t,r,i=0){return r=Math.floor(r),i=Math.floor(i),n.FormulaContext.isValidDate(e)&&n.FormulaContext.isValidDate(t)&&M(r)&&y(i)&&!(e>=t)&&B(e,t,r,i)?(n.FormulaContext.formatResults(`Short Date`),E(e,t,r)):NaN}function it(e,t,r,i=0){if(r=Math.floor(r),i=Math.floor(i),!(n.FormulaContext.isValidDate(e)&&n.FormulaContext.isValidDate(t)&&M(r)&&y(i)&&B(e,t,r,i)))return NaN;n.FormulaContext.formatResults(`d-mmm-yy`);let a=T(e,t,r);return a<0?0:a}function at(e,t,r,i=0){return r=Math.floor(r),i=Math.floor(i),n.FormulaContext.isValidDate(e)&&n.FormulaContext.isValidDate(t)&&M(r)&&y(i)&&B(e,t,r,i)?T(e,t,r)<0?NaN:k(e,t,r):NaN}function B(e,t,n,r){return M(n)&&y(r)&&Math.floor(e)<Math.floor(t)}function ot(e,t){let n=1e-7,r=e,i=1,a=0;for(;i>n&&a<500;){let e=(t(r+n)-t(r-n))/2e-7,o=r-t(r)/e;i=Math.abs(o-r),r=o,a++}return Number.isNaN(r)||!Number.isFinite(r)||a===500?function(e,t){let n=1e-7,r=1.6,i=Number.MAX_VALUE;if(e<=-1||e>=i)return NaN;let a,o,s=Math.max(e-.01,-.9999999),c=Math.min(e+.01,i-n),l=!1;for(let e=0;e<60;e++){if(a=t(s),o=t(c),a*o<=0){l=!0;break}s=Math.max(s+r*(s-c),-.9999999),c=Math.min(c+r*(c-s),i-n)}if(!l)return NaN;a=t(s);let u=s,d=a,f=0;do u=s+(c-s)/2,d=t(u),a*d<0?c=u:(s=u,a=d),f++;while(Math.abs(d)>n&&f<60);return u}(e,t):r}var st=t({DURATION:()=>lt,MDURATION:()=>ut,PRICE:()=>ct,YIELD:()=>dt});function ct(e,t,r,i,a,o,s=0){return o=Math.floor(o),s=Math.floor(s),!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||r<0||i<0||a<=0||!M(o)||!y(s)||Math.floor(e)>=Math.floor(t)||!j(e,t,o)?NaN:ne(e,t,r,i,a,o,s)}function lt(e,t,r,i,a,o=0){return a=Math.floor(a),o=Math.floor(o),!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||r<0||i<0||!M(a)||!y(o)||Math.floor(e)>=Math.floor(t)||e<=0||t<=366?NaN:re(e,t,r,i,a,o)}function ut(e,t,r,i,a,o=0){return a=Math.floor(a),o=Math.floor(o),!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||r<0||i<0||!M(a)||!y(o)||Math.floor(e)>=Math.floor(t)||e<=0||t<=366?NaN:re(e,t,r,i,a,o)/(1+i/a)}function dt(e,t,r,i,a,o,s=0){if(o=Math.floor(o),s=Math.floor(s),!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||r<0||i<=0||a<=0||!M(o)||!y(s)||Math.floor(e)>=Math.floor(t)||!j(e,t,o))return NaN;if(k(e,t,o)>1){let n=ot(r||.01,n=>ne(e,t,r,n,a,o,s)-i);return Number.isNaN(n)?NaN:n}let c=D(e,t,o,s),l=O(e,t,o,s),{days:u}=S(e,t,s),d=i/100+c/l*(r/o);return(a/100+r/o-d)/d*o*(l/u)}var ft=t({ODDFPRICE:()=>pt,ODDFYIELD:()=>mt,ODDLPRICE:()=>ht,ODDLYIELD:()=>gt});function pt(e,t,r,i,a,o,s,c,l=0){return c=Math.floor(c),l=Math.floor(l),!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||!n.FormulaContext.isValidDate(r)||!n.FormulaContext.isValidDate(i)||a<0||o<0||s<=0||!M(c)||!y(l)||!vt(e,t,r,i,c)?NaN:te(e,t,r,i,a,o,s,c,l)}function mt(e,t,r,i,a,o,s,c,l=0){if(c=Math.floor(c),l=Math.floor(l),!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||!n.FormulaContext.isValidDate(r)||!n.FormulaContext.isValidDate(i)||a<0||o<=0||s<=0||!M(c)||!y(l)||!vt(e,t,r,i,c))return NaN;let{days:u}=S(e,t,l),d=ot((a*u*100-(o-100))/(.25*(o-100)*(1+2*u)+100*u),n=>o-te(e,t,r,i,a,n,s,c,l));return Number.isNaN(d)?NaN:d}function ht(e,t,r,i,a,o,s,c=0){return s=Math.floor(s),c=Math.floor(c),!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||!n.FormulaContext.isValidDate(r)||i<0||a<0||o<=0||!M(s)||!y(c)||!yt(e,t,r,s)?NaN:function(e,t,n,r,i,a,o,s){let{fAi:c,fDCi:l,fDSCi:u}=_t(e,t,n,o,s);return(a*o+100*r*(l-c*(1+i*u/o)))/(i*u+o)}(e,t,r,i,a,o,s,c)}function gt(e,t,r,i,a,o,s,c=0){if(s=Math.floor(s),c=Math.floor(c),!n.FormulaContext.isValidDate(e)||!n.FormulaContext.isValidDate(t)||!n.FormulaContext.isValidDate(r)||i<0||a<=0||o<=0||!M(s)||!y(c)||!yt(e,t,r,s))return NaN;let{fAi:l,fDCi:u,fDSCi:d}=_t(e,t,r,s,c);return(s*(o-a)+100*i*(u-l))/(d*a+100*i*l*d/s)}function _t(e,t,r,i,a){let o=function(e,t,r){let i=n.FormulaContext.fromSerialDate(e,!0),a=n.FormulaContext.fromSerialDate(t,!0),o=12/r;for(a.setFullYear(i.getFullYear()),a>i&&a.setFullYear(a.getFullYear()-1);a<i;)a.setMonth(a.getMonth()+o);return n.FormulaContext.toSerialDate(a,!0)}(t,r,i);return{fAi:V(r,e,o,i,a),fDCi:V(r,t,o,i,a),fDSCi:V(e,t,o,i,a)}}function V(e,t,r,i,a){let o=n.FormulaContext.fromSerialDate(e,!0),s=n.FormulaContext.fromSerialDate(t,!0),c=12/i,l=n.FormulaContext.fromSerialDate(r,!0);for(l.setFullYear(o.getFullYear()),l<o&&l.setFullYear(l.getFullYear()+1);l>o;)l.setMonth(l.getMonth()-c);let u=n.FormulaContext.toSerialDate(l,!0);l.setMonth(l.getMonth()+c);let d=n.FormulaContext.toSerialDate(l,!0),f=(e,t,n)=>a===1||a===3?n-t:O(t,n,i,e);if(d>=t){let{days:n}=S(e,t,a);return n/f(a,u,d)}let{days:p}=S(e,d,a),m=p/f(a,u,d),h=n.FormulaContext.fromSerialDate(d,!0),g=n.FormulaContext.fromSerialDate(d,!0);for(g.setMonth(g.getMonth()+c);g<s;)h.setMonth(h.getMonth()+c),g.setMonth(g.getMonth()+c),m+=1;u=n.FormulaContext.toSerialDate(h,!0),d=n.FormulaContext.toSerialDate(g,!0);let{days:_}=S(u,t,a);return m+=_/f(a,u,d),m}function vt(e,t,r,i,a){return Math.floor(t)>Math.floor(i)&&Math.floor(i)>Math.floor(e)&&Math.floor(e)>Math.floor(r)&&function(e,t,r){let i=n.FormulaContext.fromSerialDate(e,!0),a=n.FormulaContext.fromSerialDate(t,!0),o=h(i.getFullYear(),i.getMonth(),i.getDate()),s=h(a.getFullYear(),a.getMonth(),a.getDate());return!!(i.getDate()===a.getDate()||o&&s)&&Math.abs(12*(a.getFullYear()-i.getFullYear())+(a.getMonth()-i.getMonth()))%(12/r)==0}(t,i,a)&&j(r,t,a)}function yt(e,t,n,r){return Math.floor(t)>Math.floor(e)&&Math.floor(e)>Math.floor(n)&&j(n,t,r)}var bt=t({VDB:()=>xt});function xt(e,t,r,i,a,o=2,s=!1){if(!n.FormulaContext.isValidDate(i)||!n.FormulaContext.isValidDate(a)||e<0||t<0||r<0||i<0||a<0||a>r||i>a||o<0)return NaN;if(r===0&&i===0&&a===0)throw n.FormulaError.BuiltIn.Div0;if(e<t){if(i>=1||s)return 0;let n=t-e,r=a-i;return-(r>=1?n:n*r)}return s?function(e,t,n,r,i,a){let o=Math.floor(r)+1,s=Math.ceil(i),c=0;for(let l=o;l<=s;l++){let u=ie(e,t,n,l,a);l===o?u*=Math.min(i,o)-r:l===s&&(u*=i-(s-1)),c+=u}return c}(e,t,r,i,a,o):function(e,t,n,r,i,a){let o=Math.ceil(i),s=e,c=!1,l=0,u=0;for(let d=1;d<=o&&!(s<=t);d++){let o;if(c)o=l;else{let r=ie(e,t,n,d,a),i=n-(d-1),u=i>0?(s-t)/i:0;u>r?(l=u,c=!0,o=u):o=r}o=Math.min(o,s-t);let f=Math.max(d-1,r);u+=o*Math.max(0,Math.min(d,i)-f),s-=o}return u}(e,t,r,i,a,o)}var H=Object.freeze({includeEmpty:!0}),St=(Object.freeze({axis:n.IRange.Axis.Column}),Object.freeze({axis:n.IRange.Axis.Row}),Object.freeze({type:n.ScalarType.Number,axis:n.IRange.Axis.Column})),Ct=t({FORECAST_ETS:()=>wt,FORECAST_ETS_CONFINT:()=>Tt,FORECAST_ETS_SEASONALITY:()=>Et,FORECAST_ETS_STAT:()=>Dt});function wt(e,t,r,i=1,a=1,o=1){let s=U(t,r,a,o);if(n.FormulaError.isError(s))return s;let{values:c,stepSize:l,lastTime:u,firstTime:d}=s,f=Math.round((e-u)/l),p=G(c,i);if(n.FormulaError.isError(p))return p;let{alpha:m,beta:h,gamma:g,period:_,b0:v}=p,{L:y,T:b,S:x,finalIndex:S}=W(c,m,h,g,_,v).finalState,C=y+f*b;return _>1&&(C+=x[(S+f)%_]),C}function Tt(e,t,r,i=.95,a=1,o=1,s=1){if(i<0||i>=1)return n.FormulaError.BuiltIn.Num;let c=U(t,r,o,s);if(n.FormulaError.isError(c))return c;let{values:l,stepSize:u,lastTime:d}=c;if(l.length<4)return 0;let f=Math.round((e-d)/u),p=G(l,a);if(n.FormulaError.isError(p))return p;let{alpha:m,beta:h,gamma:g,period:_,b0:v}=p,y=function(e,t,n,r,i,a){let o=e.length,s,c,l=Array(Math.max(1,i)).fill(0);if(i>1&&o>=2*i){let t=0,n=0;for(let n=0;n<i;n++)t+=e[n];for(let t=i;t<2*i;t++)n+=e[t];s=t/i,c=(n-t)/(i*i);let r=t/i;for(let t=0;t<i;t++)l[t]=e[t]-r}else s=e[0],c=a===void 0?i>1&&i<o?(e[i]-e[0])/i:0:a;let u=0;for(let a=0;a<o;a++){let o=i>1?a%i:0,d=i>1?l[o]:0,f=s+c+d,p=e[a]-f;u+=p*p;let m=t*(e[a]-d)+(1-t)*(s+c),h=n*(m-s)+(1-n)*c;i>1&&(l[o]=r*(e[a]-m)+(1-r)*d),s=m,c=h}return Math.sqrt(u/o)}(l,m,h,g,_,v),b=function(e,t,n,r){let i=Math.abs(r);if(i===0)return 0;let a=0,o=1;for(let r=1;r<=i;r++)a+=o*o,o=o+e+(n>1&&r%n===0?t:0);return a}(m,g,_,f);return function(e){let t=(1+e)/2,r=n.FormulaContext.getFunction(`NORM.S.INV`);if(r)return r.execute(t);let i=Math.sqrt(-2*Math.log(1-t));return i-(2.515517+.802853*i+.010328*i*i)/(1+1.432788*i+.189269*i*i+.001308*i*i*i)}(i)*y*Math.sqrt(b)}function Et(e,t,r=1,i=1){let a=U(e,t,r,i);if(n.FormulaError.isError(a))return a===n.FormulaError.BuiltIn.NA?a:0;let{values:o}=a;return o.length<4?0:kt(o)}function Dt(e,t,r,i=1,a=1,o=1){if(r<1||r>8)return n.FormulaError.BuiltIn.Num;let s=U(e,t,a,o);if(n.FormulaError.isError(s))return s;let{values:c,stepSize:l}=s;if(r===8)return l;let u=G(c,i);if(n.FormulaError.isError(u))return u;let{alpha:d,beta:f,gamma:p,period:m,b0:h}=u;switch(r){case 1:return d;case 2:return f*d;case 3:return p;default:{let e=function(e,t,n,r,i,a){let o=e.length,s,c,l=Array(Math.max(1,i)).fill(0);if(i>1&&o>=2*i){let t=0,n=0;for(let n=0;n<i;n++)t+=e[n];for(let t=i;t<2*i;t++)n+=e[t];s=t/i,c=(n-t)/(i*i);let r=t/i;for(let t=0;t<i;t++)l[t]=e[t]-r}else s=e[0],c=a===void 0?i>1&&i<o?(e[i]-e[0])/i:0:a;let u=0,d=0,f=0,p=0;for(let t=1;t<o;t++)p+=Math.abs(e[t]-e[t-1]);let m=p/(o-1);for(let a=0;a<o;a++){let o=e[a],p=i>1?a%i:0,m=i>1?l[p]:0,h=s+c+m,g=o-h;u+=Math.abs(g),d+=g*g,f+=Math.abs(g)/((Math.abs(o)+Math.abs(h))/2||1);let _=t*(o-m)+(1-t)*(s+c),v=n*(_-s)+(1-n)*c;i>1&&(l[p]=r*(o-_)+(1-r)*m),s=_,c=v}return{mae:u/o,rmse:Math.sqrt(d/o),smape:f/o,mase:m===0?0:u/o/m}}(c,d,f,p,m,h);if(r===4)return e.mase;if(r===5)return e.smape;if(r===6)return e.mae;if(r===7)return e.rmse}}return n.FormulaError.BuiltIn.Num}function Ot(e,t){if(e.length===1)return e[0].value;let r=e.map(e=>e.value);switch(t){case 1:return r.reduce((e,t)=>e+t,0)/r.length;case 2:return r.length;case 3:return Math.max(...r);case 4:{r.sort((e,t)=>e-t);let e=Math.floor(r.length/2);return r.length%2==0?(r[e-1]+r[e])/2:r[e]}case 5:return Math.min(...r);case 6:return r.reduce((e,t)=>e+t,0);default:return n.FormulaError.BuiltIn.Num}}function U(e,t,r,i){if(r<0||r>1)return n.FormulaError.BuiltIn.Num;let a=e.flatten(H),o=t.flatten(H);if(a.length!==o.length)return n.FormulaError.BuiltIn.NA;if(a.length<2)return n.FormulaError.BuiltIn.Num;let s=o.map((e,t)=>({time:e,value:a[t]})).sort((e,t)=>e.time-t.time),c=[],l=[s[0]];for(let e=1;e<s.length;e++){let t=s[e];if(t.time===s[e-1].time)l.push(t);else{let e=Ot(l,i);if(n.FormulaError.isError(e))return e;c.push({time:l[0].time,value:e}),l=[t]}}let u=Ot(l,i);if(n.FormulaError.isError(u))return u;if(c.push({time:l[0].time,value:u}),c.length<2)return n.FormulaError.BuiltIn.Num;let d=[];for(let e=1;e<c.length;e++)d.push(c[e].time-c[e-1].time);d.sort((e,t)=>e-t);let f=Math.floor(d.length/2),p=d.length%2==0?(d[f-1]+d[f])/2:d[f];if(p<=0)return n.FormulaError.BuiltIn.Num;let m=[c[0].value];for(let e=1;e<c.length;e++){let t=c[e-1].time,i=c[e].time,a=t+p;if(i>a){let n=Math.round((i-t)/p)-1;for(let t=1;t<=n;t++)if(r===0)m.push(0);else{let r=c[e-1].value,i=c[e].value;m.push(r+t/(n+1)*(i-r))}}else if(Math.abs(i-a)>.01*p)return n.FormulaError.BuiltIn.Num;m.push(c[e].value)}return{values:m,stepSize:p,lastTime:c[c.length-1].time,firstTime:c[0].time}}function kt(e){let t=e.length;if(t<4)return 0;let n=e.reduce((e,t)=>e+t,0)/t,r=0;for(let i=0;i<t;i++)r+=(e[i]-n)**2;if(r===0)return 0;let i=-1/0,a=0,o=Math.min(Math.floor(t/2),24);for(let s=2;s<=o;s++){let o=0;for(let r=0;r<t-s;r++)o+=(e[r]-n)*(e[r+s]-n);let c=o/r;c>i&&c>.3&&(i=c,a=s)}return a}function W(e,t,n,r,i,a){let o=e.length,s,c;if(i>1&&o>=2*i){let t=0,n=0;for(let n=0;n<i;n++)t+=e[n];for(let t=i;t<2*i;t++)n+=e[t];s=t/i,c=(n-t)/(i*i)}else s=e[0],c=a===void 0?i>1&&i<o?(e[i]-e[0])/i:0:a;let l=Array(Math.max(1,i)).fill(0);if(i>1&&o>=i){let t=l.length>0?(()=>{let t=0;for(let n=0;n<i;n++)t+=e[n];return t/i})():s;for(let n=0;n<i;n++)l[n]=e[n]-t}let u=0,d=0;for(let a=0;a<o;a++){let o=e[a],f=i>1?a%i:0,p=i>1?l[f]:0,m=o-(s+c+p);u+=m*m;let h=t*(o-p)+(1-t)*(s+c),g=n*(h-s)+(1-n)*c;i>1&&(l[f]=r*(o-h)+(1-r)*p),s=h,c=g,d=f}return{mse:u/o,finalState:{L:s,T:c,S:l,finalIndex:d}}}function G(e,t){let r=1;if(t===0)r=1;else if(t===1)r=kt(e),r<=1&&(r=1);else{if(!(t>1))return n.FormulaError.BuiltIn.Num;r=Math.floor(t)}if(r>1&&e.length<2*r)return n.FormulaError.BuiltIn.Num;let i=e.length;if(r===1){let t=Math.max(1,Math.floor(i/4)),n=At(t=>{let n=Math.max(.001,Math.min(.999,t[0])),r=Math.max(.001,Math.min(.999,t[1])),i=t[2];return W(e,n,r,0,1,i).mse},[.9,.1,i>t?(e[t]-e[0])/t:0]).x;return{alpha:Math.max(.001,Math.min(.999,n[0])),beta:Math.max(.001,Math.min(.999,n[1])),gamma:0,period:1,b0:n[2]}}let a=At(t=>W(e,Math.max(.001,Math.min(.999,t[0])),Math.max(.001,Math.min(.999,t[1])),Math.max(.001,Math.min(.999,t[2])),r).mse,[.9,.1,.1]).x;return{alpha:Math.max(.001,Math.min(.999,a[0])),beta:Math.max(.001,Math.min(.999,a[1])),gamma:Math.max(.001,Math.min(.999,a[2])),period:r,b0:0}}function K(e,t,n,r,i){for(let a=0;a<e.length;++a)e[a]=t*n[a]+r*i[a]}function At(e,t,n){let r=(n||={}).maxIterations||200*t.length,i=n.nonZeroDelta||1.05,a=n.zeroDelta||.001,o=n.minErrorDelta||1e-6,s=n.minTolerance||1e-5,c=n.rho===void 0?1:n.rho,l=n.chi===void 0?2:n.chi,u=n.psi===void 0?-.5:n.psi,d=n.sigma===void 0?.5:n.sigma,f,p=t.length,m=Array(p+1);m[0]=t,m[0].fx=e(t),m[0].id=0;for(let n=0;n<p;++n){let r=t.slice();r[n]=r[n]?r[n]*i:a,m[n+1]=r,m[n+1].fx=e(r),m[n+1].id=n+1}function h(e){for(let t=0;t<e.length;t++)m[p][t]=e[t];m[p].fx=e.fx}let g=(e,t)=>e.fx-t.fx,_=t.slice(),v=t.slice(),y=t.slice(),b=t.slice();for(let t=0;t<r;++t){if(m.sort(g),n.history){let e=m.map(e=>{let t=e.slice();return t.fx=e.fx,t.id=e.id,t});e.sort((e,t)=>e.id-t.id),n.history.push({x:m[0].slice(),fx:m[0].fx,simplex:e})}f=0;for(let e=0;e<p;++e)f=Math.max(f,Math.abs(m[0][e]-m[1][e]));if(Math.abs(m[0].fx-m[p].fx)<o&&f<s)break;for(let e=0;e<p;++e){_[e]=0;for(let t=0;t<p;++t)_[e]+=m[t][e];_[e]/=p}let t=m[p];if(K(v,1+c,_,-c,t),v.fx=e(v),v.fx<m[0].fx)K(b,1+l,_,-l,t),b.fx=e(b),h(b.fx<v.fx?b:v);else if(v.fx>=m[p-1].fx){let n=!1;if(v.fx>t.fx?(K(y,1+u,_,-u,t),y.fx=e(y),y.fx<t.fx?h(y):n=!0):(K(y,1-u*c,_,u*c,t),y.fx=e(y),y.fx<v.fx?h(y):n=!0),n){if(d>=1)break;for(let t=1;t<m.length;++t)K(m[t],1-d,m[0],d,m[t]),m[t].fx=e(m[t])}}else h(v)}return m.sort(g),{fx:m[0].fx,x:m[0]}}var q=(e,t)=>{let r=e.getRowCount(),i=e.getColumnCount(),a=r*i;if(a===0)throw n.FormulaError.BuiltIn.Value;let o=Y(e,a),s=r===1&&i>1,c=r>1&&i>1;if(!t||t.size===0){let e=Array(a);for(let t=0;t<a;t++)e[t]=[t+1];return{ys:o,xs:e,k:1,isRowOriented:s,isRectangularY:c,yRows:r,yCols:i}}let l=t.getRowCount(),u=t.getColumnCount();if(c){if(l!==r||u!==i)throw n.FormulaError.BuiltIn.Ref;let e=Y(t,a),d=Array(a);for(let t=0;t<a;t++)d[t]=[e[t]];return{ys:o,xs:d,k:1,isRowOriented:s,isRectangularY:c,yRows:r,yCols:i}}if((s?u:l)!==a)throw n.FormulaError.BuiltIn.Ref;let d=s?l:u;return{ys:o,xs:Pt(t,a,d,s),k:d,isRowOriented:s,isRectangularY:c,yRows:r,yCols:i}},jt=e=>{let t=Array(e.length);for(let r=0;r<e.length;r++){if(e[r]<=0)throw n.FormulaError.BuiltIn.Num;t[r]=Math.log(e[r])}return t},Mt=(e,t,r)=>{let i,a,o;if(t&&t.size>0){let r=((e,t)=>{let r=e.getRowCount(),i=e.getColumnCount(),a=r*i;if(a===0)throw n.FormulaError.BuiltIn.Ref;if(t.k===1){let t=Y(e,a),n=Array(a);for(let e=0;e<a;e++)n[e]=[t[e]];return{xs:n,rows:r,cols:i}}let o=t.isRowOriented?i:r;if((t.isRowOriented?r:i)!==t.k)throw n.FormulaError.BuiltIn.Ref;return{xs:Pt(e,o,t.k,t.isRowOriented),rows:t.isRowOriented?1:o,cols:t.isRowOriented?o:1}})(t,e);i=r.xs,a=r.rows,o=r.cols}else i=e.xs,a=e.yRows,o=e.yCols;let s=Array(a),c=0;for(let e=0;e<a;e++){let t=Array(o);for(let e=0;e<o;e++)t[e]=r(i[c++]);s[e]=t}return s},J=(e,t,n)=>{let r=e.length,i=t.length>0?t[0].length:0,a=[],o=[];n&&(a.push(Array(r).fill(1)),o.push(i));for(let e=i-1;e>=0;e--){let n=Array(r);for(let i=0;i<r;i++)n[i]=t[i][e];a.push(n),o.push(i-1-e)}let s=[],c=[],l=[];for(let e=0;e<a.length;e++){let t=a[e].slice(),n=Math.sqrt(X(t,t)),i=Array(c.length).fill(0);for(let e=0;e<2;e++)for(let e=0;e<c.length;e++){let n=X(c[e],t);for(let i=0;i<r;i++)t[i]-=n*c[e][i];i[e]+=n}let o=Math.sqrt(X(t,t));if(!(o<=1e-10*(n||1))){for(let e=0;e<r;e++)t[e]/=o;i.push(o),c.push(t),l.push(i),s.push(e)}}let u=s.length,d=Array(u);for(let t=0;t<u;t++)d[t]=X(c[t],e);let f=Array(u).fill(0);for(let e=u-1;e>=0;e--){let t=d[e];for(let n=e+1;n<u;n++)t-=l[n][e]*f[n];f[e]=t/l[e][e]}let p=Array.from({length:u},()=>Array(u).fill(0));for(let e=u-1;e>=0;e--){p[e][e]=1/l[e][e];for(let t=e+1;t<u;t++){let n=0;for(let r=e+1;r<=t;r++)n+=l[r][e]*p[r][t];p[e][t]=-n*p[e][e]}}let m=Array(i+1).fill(0),h=Array(i+1).fill(0);for(let e=0;e<u;e++){let t=o[s[e]];m[t]=f[e];let n=0;for(let t=e;t<u;t++)n+=p[e][t]*p[e][t];h[t]=n}let g=e=>{let t=n?m[i]:0;for(let n=0;n<i;n++)t+=m[i-1-n]*e[n];return t},_=0;for(let n=0;n<r;n++){let r=e[n]-g(t[n]??[]);_+=r*r}let v=0;if(n){let t=0;for(let n=0;n<r;n++)t+=e[n];t/=r;for(let n=0;n<r;n++)v+=(e[n]-t)*(e[n]-t)}else for(let t=0;t<r;t++)v+=e[t]*e[t];let y=v-_,b=n?u-1:u,x=r-b-+!!n,S=x>0?_/x:0,C=x>0?Math.sqrt(S):0,w=Array(i+1).fill(0);for(let e=0;e<=i;e++)w[e]=C*Math.sqrt(Math.max(h[e],0));return{coefficients:m,standardErrors:w,kEffective:b,df:x,sey:C,r2:v===0?1:y/v,f:x>0&&b>0&&S!==0?y/b/S:null,ssReg:y,ssResid:_,predict:g}},Nt=(e,t,r)=>{let i=t.length,a=n.FormulaError.BuiltIn.NA,o=(e,t)=>{let n=Array(i).fill(a);return n[0]=e,i>1&&(n[1]=t),n},s=e.standardErrors.slice();return r||(s[i-1]=a),[t.slice(),s,o(e.r2,e.sey),o(e.f??n.FormulaError.BuiltIn.Num,e.df),o(e.ssReg,e.ssResid)]},Y=(e,t)=>{let r=Array(t),i=0;for(let t of e.values(H)){if(typeof t!=`number`)throw n.FormulaError.BuiltIn.Value;r[i++]=t}return r},Pt=(e,t,n,r)=>{let i=Y(e,t*n),a=Array(t);for(let e=0;e<t;e++){let o=Array(n);for(let a=0;a<n;a++)o[a]=r?i[a*t+e]:i[e*n+a];a[e]=o}return a},X=(e,t)=>{let n=0;for(let r=0;r<e.length;r++)n+=e[r]*t[r];return n},Ft=t({GROWTH:()=>zt,LINEST:()=>It,LOGEST:()=>Lt,TREND:()=>Rt});function It(e,t,n=!0,r=!1){let i=q(e,t),a=J(i.ys,i.xs,n),o=a.coefficients;return r?Nt(a,o,n):[o.slice()]}function Lt(e,t,n=!0,r=!1){let i=q(e,t),a=J(jt(i.ys),i.xs,n),o=a.coefficients.map(Math.exp);return r?Nt(a,o,n):[o]}function Rt(e,t,n,r=!0){let i=q(e,t);return Mt(i,n,J(i.ys,i.xs,r).predict)}function zt(e,t,n,r=!0){let i=q(e,t);return Mt(i,n,J(jt(i.ys),i.xs,r).predict).map(e=>e.map(Math.exp))}var Bt=t({TTEST:()=>Vt,T_TEST:()=>Ht});function Vt(e,t,n,r){return Ht(e,t,n,r)}function Ht(e,t,r,i){if(r=Math.floor(r),i=Math.floor(i),![1,2].includes(r)||![1,2,3].includes(i))return NaN;let a=e.getShape(),o=t.getShape(),s=a.rows*a.columns,c=o.rows*o.columns;if(i===1&&s!==c)return n.FormulaError.BuiltIn.NA;let l=e.flatten(St),u=t.flatten(St);if(l===null||u===null)return n.FormulaError.BuiltIn.Value;if(l.length<2||u.length<2)throw n.FormulaError.BuiltIn.Div0;if(i===1&&l.length!==u.length)return n.FormulaError.BuiltIn.NA;let d=i===1?function(e,t){let n=e.length,r=0,i=0,a=0;for(let o=0;o<n;o++)r+=e[o],i+=t[o],a+=(e[o]-t[o])**2;let o=r-i,s=n*a-o**2;return s===0?{error:!0}:{x:Math.abs(o)*Math.sqrt((n-1)/s),df:n-1}}(l,u):i===2?function(e,t){let n=e.length,r=t.length,i=0,a=0,o=0,s=0;for(let t of e)i+=t,a+=t*t;for(let e of t)o+=e,s+=e*e;let c=a-i**2/n,l=s-o**2/r,u=Math.sqrt(c+l);if(u===0)return{error:!0};let d=n+r-2;return{x:Math.abs(i/n-o/r)/u*Math.sqrt(n*r*d/(n+r)),df:d}}(l,u):function(e,t){let n=e.length,r=t.length,i=0,a=0,o=0,s=0;for(let t of e)i+=t,a+=t*t;for(let e of t)o+=e,s+=e*e;let c=(a-i**2/n)/(n*(n-1)),l=(s-o**2/r)/(r*(r-1));if(c+l===0)return{error:!0};let u=Math.abs(i/n-o/r)/Math.sqrt(c+l),d=c/(c+l);return{x:u,df:1/(d**2/(n-1)+(1-d)**2/(r-1))}}(l,u);if(`error`in d)throw n.FormulaError.BuiltIn.Div0;return function(e,t){let n=.5*function(e,t,n){if(n<=0)return 0;if(n>=1)return 1;let r=Q(e)+Q(t)-Q(e+t),i=Math.exp(Math.log(n)*e+Math.log(1-n)*t-r);return n<(e+1)/(e+t+2)?i*Z(e,t,n)/e:1-i*Z(t,e,1-n)/t}(t/2,.5,t/(t+e*e));return e>=0?1-n:n}(-d.x,d.df)*r}function Z(e,t,n){let r=1e-30,i=e+t,a=e+1,o=e-1,s=1,c=1-i*n/a;Math.abs(c)<r&&(c=r),c=1/c;let l=c;for(let u=1;u<=200;u++){let d=2*u,f=u*(t-u)*n/((o+d)*(e+d));c=1+f*c,Math.abs(c)<r&&(c=r),s=1+f/s,Math.abs(s)<r&&(s=r),c=1/c,l*=c*s,f=-(e+u)*(i+u)*n/((e+d)*(a+d)),c=1+f*c,Math.abs(c)<r&&(c=r),s=1+f/s,Math.abs(s)<r&&(s=r),c=1/c;let p=c*s;if(l*=p,Math.abs(p-1)<3e-7)break}return l}function Q(e){let t=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,1.5056327351493116e-7];if(e<.5)return Math.log(Math.PI/Math.sin(Math.PI*e))-Q(1-e);e--;let n=t[0];for(let r=1;r<9;r++)n+=t[r]/(e+r);let r=e+7.5;return .5*Math.log(2*Math.PI)+(e+.5)*Math.log(r)-r+Math.log(n)}var Ut=t({REGEXEXTRACT:()=>Wt,REGEXMATCH:()=>Gt,REGEXREPLACE:()=>Kt,REGEXTEST:()=>qt});function Wt(e,t,r=0,i=!1){let a=$(t,i);if(n.FormulaError.isError(a))return a;if(r===0){let t=e.match(a);return t?n.FormulaContext.createRange().replace([[t[0]]]):n.FormulaContext.createRange().replace([[n.FormulaError.BuiltIn.NA]])}if(r===1){let t=new RegExp(a.source,a.flags+`g`),r=[...e.matchAll(t)];if(r.length===0)return n.FormulaContext.createRange().replace([[n.FormulaError.BuiltIn.NA]]);let i=r.map(e=>e[0]);return n.FormulaContext.createRange().replace([i])}if(r===2){let t=e.match(a);if(!t)return n.FormulaContext.createRange().replace([[n.FormulaError.BuiltIn.NA]]);if(t.length===1)return n.FormulaError.BuiltIn.Value;let r=t.slice(1).map(e=>e??n.FormulaError.BuiltIn.NA);return n.FormulaContext.createRange().replace([r])}return n.FormulaError.BuiltIn.Value}function Gt(e,t,r=!1){let i=$(t,r);return n.FormulaError.isError(i)?i:i.test(e)}function Kt(e,t,r,i=0,a=!1){let o=$(t,a);if(n.FormulaError.isError(o))return o;if(i===0){let t=new RegExp(o.source,o.flags+`g`);return e.replace(t,r)}let s=0,c=e,l=new RegExp(o.source,o.flags),u=0;for(;u<=c.length;){let e=c.slice(u).match(l);if(!e||e.index===void 0)break;if(s++,s===i){let t=u+e.index;c=c.slice(0,t)+e[0].replace(l,r)+c.slice(t+e[0].length);break}u+=e.index+Math.max(e[0].length,1)}return c}function qt(e,t,r=!1){let i=$(t,r);return n.FormulaError.isError(i)?i:i.test(e)}function $(e,t){try{return new RegExp(e,t?`i`:``)}catch{return n.FormulaError.BuiltIn.Value}}var Jt={CUBEKPIMEMBER:{p:[{n:`connection`,s:`string`},{n:`kpiName`,s:`string`},{n:`kpiProperty`},{n:`caption`,s:`string`,m:`?`}],r:{s:`string`}},CUBEMEMBER:{p:[{n:`connection`,s:`string`},{n:`memberExpression`,s:`string`},{n:`caption`,s:`string`,m:`?`}],r:{s:`string`}},CUBEMEMBERPROPERTY:{p:[{n:`connection`,s:`string`},{n:`memberExpression`,s:`string`},{n:`kpiProperty`}],r:{s:`string`}},CUBERANKEDMEMBER:{p:[{n:`connection`,s:`string`},{n:`setExpression`,s:`string`},{n:`rank`},{n:`caption`,s:`string`,m:`?`}],r:{s:`string`}},CUBESET:{p:[{n:`connection`,s:`string`},{n:`setExpression`,s:`string`},{n:`caption`,s:`string`,m:`?`},{n:`sortOrder`,m:`?`},{n:`sortBy`,s:`string`,m:`?`}],r:{s:`string`}},CUBESETCOUNT:{p:[{n:`set`,s:`string`}],r:{s:`number`}},CUBEVALUE:{p:[{n:`connection`,s:`string`},{n:`memberExpression`,s:`string`,d:1,m:`...`}],r:{s:`string`}}},Yt={ACCRINT:{p:[{n:`issue`},{n:`firstInterest`},{n:`settlement`},{n:`rate`},{n:`par`},{n:`frequency`},{n:`basis`,m:`?`,v:0},{n:`calcMethod`,s:`boolean`,m:`?`,v:!0}],r:{s:`number`}}},Xt={AMORDEGRC:{p:[{n:`cost`},{n:`datePurchased`},{n:`firstPeriod`},{n:`salvage`},{n:`period`},{n:`rate`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}}},Zt={DATEDIF:{p:[{n:`startDate`},{n:`endDate`},{n:`unit`,s:`string`}],r:{s:`number`}},YEARFRAC:{p:[{n:`startDate`,s:`*`},{n:`endDate`,s:`*`},{n:`basis`,s:`*`,m:`?`,v:0}],r:{s:`number`}},DAYS360:{p:[{n:`startDate`},{n:`endDate`},{n:`method`,s:`boolean`,m:`?`,v:!1}],r:{s:`number`}}},Qt={COUPDAYS:{p:[{n:`settlement`},{n:`maturity`},{n:`frequency`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},CUMIPMT:{p:[{n:`rate`},{n:`nper`},{n:`pv`},{n:`startPeriod`},{n:`endPeriod`},{n:`type`}],r:{s:`number`}},CUMPRINC:{p:[{n:`rate`},{n:`nper`},{n:`pv`},{n:`startPeriod`},{n:`endPeriod`},{n:`type`}],r:{s:`number`}},DB:{p:[{n:`cost`},{n:`salvage`},{n:`life`},{n:`period`},{n:`month`,m:`?`,v:12}],r:{s:`number`}},DDB:{p:[{n:`cost`},{n:`salvage`},{n:`life`},{n:`period`},{n:`factor`,m:`?`,v:2}],r:{s:`number`}},DISC:{p:[{n:`settlement`},{n:`maturity`},{n:`pr`},{n:`redemption`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},DOLLARDE:{p:[{n:`fractionalDollar`},{n:`fraction`}],r:{s:`number`}},DOLLARFR:{p:[{n:`decimalDollar`},{n:`fraction`}],r:{s:`number`}},EFFECT:{p:[{n:`nominalRate`},{n:`npery`}],r:{s:`number`}},FV:{p:[{n:`rate`},{n:`nper`},{n:`pmt`},{n:`pv`,m:`?`,v:0},{n:`type`,m:`?`,v:0,e:[`0`,`1`]}],r:{s:`number`}},FVSCHEDULE:{p:[{n:`principal`},{n:`schedule`,r:`r`}],r:{s:`number`}},IPMT:{p:[{n:`rate`},{n:`per`},{n:`nper`},{n:`pv`},{n:`fv`,m:`?`,v:0},{n:`type`,m:`?`,v:0}],r:{s:`number`}},IRR:{p:[{n:`values`,d:1},{n:`guess`,m:`?`,v:.1}],r:{s:`number`}},ISPMT:{p:[{n:`rate`},{n:`per`},{n:`nper`},{n:`pv`}],r:{s:`number`}},MIRR:{p:[{n:`values`,d:1},{n:`financeRate`},{n:`reinvestRate`}],r:{s:`number`}},NOMINAL:{p:[{n:`effectiveRate`},{n:`npery`}],r:{s:`number`}},NPER:{p:[{n:`rate`},{n:`pmt`},{n:`pv`},{n:`fv`,m:`?`,v:0},{n:`type`,m:`?`,v:0}],r:{s:`number`}},NPV:{p:[{n:`rate`},{n:`value`,g:[{n:`value`}]}],r:{s:`number`}},PDURATION:{p:[{n:`rate`},{n:`pv`},{n:`fv`}],r:{s:`number`}},PMT:{p:[{n:`rate`},{n:`nper`},{n:`pv`},{n:`fv`,m:`?`,v:0},{n:`type`,m:`?`,v:0}],r:{s:`number`}},PPMT:{p:[{n:`rate`},{n:`per`},{n:`nper`},{n:`pv`},{n:`fv`,m:`?`,v:0},{n:`type`,m:`?`,v:0}],r:{s:`number`}},PRICEDISC:{p:[{n:`settlement`},{n:`maturity`},{n:`discount`},{n:`redemption`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},PV:{p:[{n:`rate`},{n:`nper`},{n:`pmt`},{n:`fv`,m:`?`,v:0},{n:`type`,m:`?`,v:0}],r:{s:`number`}},RATE:{p:[{n:`nper`},{n:`pmt`},{n:`pv`},{n:`fv`,m:`?`,v:0},{n:`type`,m:`?`,v:0},{n:`guess`,m:`?`,v:.1}],r:{s:`number`}},RRI:{p:[{n:`nper`},{n:`pv`},{n:`fv`}],r:{s:`number`}},SLN:{p:[{n:`cost`},{n:`salvage`},{n:`life`}],r:{s:`number`}},STOCKHISTORY:{p:[{n:`stock`,s:`string`},{n:`startDate`},{n:`endDate`,m:`?`},{n:`interval`,m:`?`,v:0},{n:`headers`,m:`?`,v:1},{n:`properties`,d:1,m:`?`}],r:{r:`r`}},SYD:{p:[{n:`cost`},{n:`salvage`},{n:`life`},{n:`per`}],r:{s:`number`}},TBILLEQ:{p:[{n:`settlement`},{n:`maturity`},{n:`discount`}],r:{s:`number`}},TBILLPRICE:{p:[{n:`settlement`},{n:`maturity`},{n:`discount`}],r:{s:`number`}},TBILLYIELD:{p:[{n:`settlement`},{n:`maturity`},{n:`pr`}],r:{s:`number`}},XIRR:{p:[{n:`values`,r:`r`},{n:`dates`,r:`r`},{n:`guess`,m:`?`,v:.1}],r:{s:`*`}},XNPV:{p:[{n:`rate`},{n:`values`,r:`r`},{n:`dates`,r:`r`}],r:{s:`*`}}},$t={ACCRINTM:{p:[{n:`issue`},{n:`settlement`},{n:`rate`},{n:`par`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},INTRATE:{p:[{n:`settlement`},{n:`maturity`},{n:`investment`},{n:`redemption`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},RECEIVED:{p:[{n:`settlement`},{n:`maturity`},{n:`investment`},{n:`discount`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},YIELDDISC:{p:[{n:`settlement`},{n:`maturity`},{n:`pr`},{n:`redemption`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},PRICEMAT:{p:[{n:`settlement`},{n:`maturity`},{n:`issue`},{n:`rate`},{n:`yld`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},YIELDMAT:{p:[{n:`settlement`},{n:`maturity`},{n:`issue`},{n:`rate`},{n:`pr`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},AMORLINC:{p:[{n:`cost`},{n:`datePurchased`},{n:`firstPeriod`},{n:`salvage`},{n:`period`},{n:`rate`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}}},en={COUPDAYBS:{p:[{n:`settlement`},{n:`maturity`},{n:`frequency`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},COUPDAYS:{p:[{n:`settlement`},{n:`maturity`},{n:`frequency`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},COUPDAYSNC:{p:[{n:`settlement`},{n:`maturity`},{n:`frequency`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},COUPNCD:{p:[{n:`settlement`},{n:`maturity`},{n:`frequency`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},COUPPCD:{p:[{n:`settlement`},{n:`maturity`},{n:`frequency`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},COUPNUM:{p:[{n:`settlement`},{n:`maturity`},{n:`frequency`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}}},tn={PRICE:{p:[{n:`settlement`},{n:`maturity`},{n:`rate`},{n:`yld`},{n:`redemption`},{n:`frequency`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},DURATION:{p:[{n:`settlement`},{n:`maturity`},{n:`coupon`},{n:`yld`},{n:`frequency`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},MDURATION:{p:[{n:`settlement`},{n:`maturity`},{n:`coupon`},{n:`yld`},{n:`frequency`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},YIELD:{p:[{n:`settlement`},{n:`maturity`},{n:`rate`},{n:`pr`},{n:`redemption`},{n:`frequency`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}}},nn={ODDFPRICE:{p:[{n:`settlement`},{n:`maturity`},{n:`issue`},{n:`firstCoupon`},{n:`rate`},{n:`yld`},{n:`redemption`},{n:`frequency`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},ODDFYIELD:{p:[{n:`settlement`},{n:`maturity`},{n:`issue`},{n:`firstCoupon`},{n:`rate`},{n:`pr`},{n:`redemption`},{n:`frequency`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},ODDLPRICE:{p:[{n:`settlement`},{n:`maturity`},{n:`lastInterest`},{n:`rate`},{n:`yld`},{n:`redemption`},{n:`frequency`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}},ODDLYIELD:{p:[{n:`settlement`},{n:`maturity`},{n:`lastInterest`},{n:`rate`},{n:`pr`},{n:`redemption`},{n:`frequency`},{n:`basis`,m:`?`,v:0}],r:{s:`number`}}},rn={VDB:{p:[{n:`cost`},{n:`salvage`},{n:`life`},{n:`startPeriod`},{n:`endPeriod`},{n:`factor`,m:`?`,v:2},{n:`noSwitch`,s:`boolean`,m:`?`,v:!1}],r:{s:`number`}}},an={"FORECAST.ETS":{fn:`FORECAST_ETS`,p:[{n:`targetDate`},{n:`values`,r:`r`},{n:`timeline`,r:`r`},{n:`seasonality`,m:`?`,v:1},{n:`dataCompletion`,m:`?`,v:1},{n:`aggregation`,m:`?`,v:1}],r:{s:`*`}},"FORECAST.ETS.CONFINT":{fn:`FORECAST_ETS_CONFINT`,p:[{n:`targetDate`},{n:`values`,r:`r`},{n:`timeline`,r:`r`},{n:`confidenceLevel`,m:`?`,v:.95},{n:`seasonality`,m:`?`,v:1},{n:`dataCompletion`,m:`?`,v:1},{n:`aggregation`,m:`?`,v:1}],r:{s:`*`}},"FORECAST.ETS.SEASONALITY":{fn:`FORECAST_ETS_SEASONALITY`,p:[{n:`values`,r:`r`},{n:`timeline`,r:`r`},{n:`dataCompletion`,m:`?`,v:1},{n:`aggregation`,m:`?`,v:1}],r:{s:`*`}},"FORECAST.ETS.STAT":{fn:`FORECAST_ETS_STAT`,p:[{n:`values`,r:`r`},{n:`timeline`,r:`r`},{n:`statisticType`},{n:`seasonality`,m:`?`,v:1},{n:`dataCompletion`,m:`?`,v:1},{n:`aggregation`,m:`?`,v:1}],r:{s:`*`}}},on={LINEST:{p:[{n:`knownYs`,r:`r`},{n:`knownXs`,r:`r`,m:`?`,u:1},{n:`constant`,s:`boolean`,m:`?`,v:!0,u:1},{n:`stats`,s:`boolean`,m:`?`,v:!1}],r:{s:`*`,r:`m`}},LOGEST:{p:[{n:`knownYs`,r:`r`},{n:`knownXs`,r:`r`,m:`?`,u:1},{n:`constant`,s:`boolean`,m:`?`,v:!0,u:1},{n:`stats`,s:`boolean`,m:`?`,v:!1}],r:{s:`*`,r:`m`}},TREND:{p:[{n:`knownYs`,r:`r`},{n:`knownXs`,r:`r`,m:`?`,u:1},{n:`newXs`,r:`r`,m:`?`,u:1},{n:`useConst`,s:`boolean`,m:`?`,v:!0,u:1}],r:{s:`*`,r:`m`}},GROWTH:{p:[{n:`knownYs`,r:`r`},{n:`knownXs`,r:`r`,m:`?`,u:1},{n:`newXs`,r:`r`,m:`?`,u:1},{n:`useConst`,s:`boolean`,m:`?`,v:!0,u:1}],r:{s:`number`,r:`m`}}},sn={TTEST:{p:[{n:`array1`,s:`number`,r:`r`},{n:`array2`,s:`number`,r:`r`},{n:`tails`},{n:`type`}],r:{s:`number`}},"T.TEST":{fn:`T_TEST`,p:[{n:`array1`,s:`number`,r:`r`},{n:`array2`,s:`number`,r:`r`},{n:`tails`},{n:`type`}],r:{s:`number`}}},cn={REGEXEXTRACT:{p:[{n:`text`,s:`string`},{n:`pattern`,s:`string`},{n:`returnMode`,m:`?`,v:0},{n:`caseInsensitive`,s:`boolean`,m:`?`,v:!1}],r:{r:`r`}},REGEXMATCH:{p:[{n:`text`,s:`string`},{n:`regularExpression`,s:`string`},{n:`caseInsensitive`,s:`boolean`,m:`?`,v:!1}],r:{s:`*`}},REGEXREPLACE:{p:[{n:`text`,s:`string`},{n:`pattern`,s:`string`},{n:`replacement`,s:`string`},{n:`occurrence`,m:`?`,v:0},{n:`caseInsensitive`,s:`boolean`,m:`?`,v:!1}],r:{s:`*`}},REGEXTEST:{p:[{n:`text`,s:`string`},{n:`pattern`,s:`string`},{n:`caseInsensitive`,s:`boolean`,m:`?`,v:!1}],r:{s:`*`}}},ln=()=>Promise.resolve().then(()=>require("./CW-b31_-r-_raT8Y.cjs")),un=()=>Promise.resolve().then(()=>require("./lEQC21-Sk4lwHy2r.cjs")),dn=()=>Promise.resolve().then(()=>require("./B4JJfKSI4ppwU855.cjs")),fn=()=>Promise.resolve().then(()=>require("./JfM6P_qoQQTWakZf.cjs")),pn=()=>Promise.resolve().then(()=>require("./Clu7XiAsCB48GDXN.cjs")),mn=()=>Promise.resolve().then(()=>require("./h3dw1jAp2J5Pu4p3.cjs")),hn=()=>Promise.resolve().then(()=>require("./BwLx9ix5Sq7suAYP.cjs")),gn=()=>Promise.resolve().then(()=>require("./C2uDl8VIJqh58YF_.cjs")),_n=()=>Promise.resolve().then(()=>require("./DsFZgtSQpC75d1M0.cjs")),vn=()=>Promise.resolve().then(()=>require("./BWDfauDHqB6U_2ka.cjs")),yn=()=>Promise.resolve().then(()=>require("./jev6VGWTdgEgm4Yk.cjs")),bn=()=>Promise.resolve().then(()=>require("./CnZfa45XxA-9Jhmp.cjs")),xn=()=>Promise.resolve().then(()=>require("./bM25C5avKgBAJVfk.cjs")),Sn=()=>Promise.resolve().then(()=>require("./fqTQ_p3ehzUvc1tF.cjs"));module.exports=(e,t,n)=>(n||=new Map,t(n,e,r,Jt,ln,`Cube`),t(n,e,ae,Yt,un,`Financial`),t(n,e,ce,Xt,dn,`Financial`),t(n,e,de,Zt,fn,`Financial`),t(n,e,pe,Qt,pn,`Financial`),t(n,e,Ge,$t,mn,`Financial`),t(n,e,$e,en,hn,`Financial`),t(n,e,st,tn,gn,`Financial`),t(n,e,ft,nn,_n,`Financial`),t(n,e,bt,rn,vn,`Financial`),t(n,e,Ct,an,yn,`Statistical`),t(n,e,Ft,on,bn,`Statistical`),t(n,e,Bt,sn,xn,`Statistical`),t(n,e,Ut,cn,Sn,`Text`),n);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.default={"FORECAST.ETS":{s:`Returns the forecasted value for a specific future target date using exponential smoothing method.`,p:{targetDate:{d:`is the data point for which you want to predict a value. It should carry on the pattern of values in the timeline.`},values:{d:`is the array or range of numeric data you're predicting.`},timeline:{d:`is the independent array or range of numeric data. The dates in the timeline must have a consistent step between them and can't be zero.`},seasonality:{d:`[1] 0 = no seasonality; 1 = auto-detect; any integer > 1 = explicit seasonal period.`},dataCompletion:{d:`[1] 1 = interpolate missing values; 0 = fill with zeros.`},aggregation:{d:`[1] Aggregation method for duplicate timestamps: 1=Average, 2=Count, 3=Max, 4=Median, 5=Min, 6=Sum, 7=None (#NUM! if duplicates exist).`}}},"FORECAST.ETS.CONFINT":{s:`Returns a confidence interval for the forecasted value at the specified target date.`,p:{targetDate:{d:`is the data point for which you want to predict a value. It should carry on the pattern of values in the timeline.`},values:{d:`is the array or range of numeric data you're predicting.`},timeline:{d:`is the independent array or range of numeric data. The dates in the timeline must have a consistent step between them and can't be zero.`},confidenceLevel:{d:`[0.95] Confidence probability, must be strictly between 0 and 1.`},seasonality:{d:`[1] 0 = no seasonality; 1 = auto-detect; any integer > 1 = explicit seasonal period.`},dataCompletion:{d:`[1] 1 = interpolate missing values; 0 = fill with zeros.`},aggregation:{d:`[1] Aggregation method for duplicate timestamps: 1=Average, 2=Count, 3=Max, 4=Median, 5=Min, 6=Sum, 7=None.`}}},"FORECAST.ETS.SEASONALITY":{s:`Returns the length of the repetitive pattern in the data for the specific time series.`,p:{values:{d:`is the array or range of numeric data you're predicting.`},timeline:{d:`is the independent array or range of numeric data. The dates in the timeline must have a consistent step between them and can't be zero.`},dataCompletion:{d:`[1] 1 = interpolate missing values; 0 = fill with zeros.`},aggregation:{d:`[1] Aggregation method for duplicate timestamps: 1=Average, 2=Count, 3=Max, 4=Median, 5=Min, 6=Sum, 7=None.`}}},"FORECAST.ETS.STAT":{s:`Returns a requested statistic for the ETS forecast model.`,p:{values:{d:`is the array or range of numeric data you're predicting.`},timeline:{d:`is the independent array or range of numeric data.`},statisticType:{d:`1=Alpha, 2=Beta (trend smoothing), 3=Gamma (seasonal smoothing), 4=MASE, 5=SMAPE, 6=MAE, 7=RMSE, 8=Step size.`},seasonality:{d:`[1] 0 = no seasonality; 1 = auto-detect; any integer > 1 = explicit seasonal period.`},dataCompletion:{d:`[1] 1 = interpolate missing values; 0 = fill with zeros.`},aggregation:{d:`[1] Aggregation method for duplicate timestamps: 1=Average, 2=Count, 3=Max, 4=Median, 5=Min, 6=Sum, 7=None.`}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.default={ACCRINT:{s:`Returns the accrued interest for a security that pays periodic interest.`,p:{issue:{d:`is the security's issue date, expressed as a serial date number.`},firstInterest:{d:`is the security's first interest date, expressed as a serial date number.`},settlement:{d:`is the security's settlement date, expressed as a serial date number.`},rate:{d:`is the security's annual coupon rate.`},par:{d:`is the security's par value.`},frequency:{d:`is the number of coupon payments per year.`},basis:{d:`is the type of day count basis to use.`},calcMethod:{d:`is a logical value: to accrued interest from issue date = TRUE; to calculate from last coupon payment date = FALSE.`}}}};
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license @sheetxl/formulas-extended - Formulas Enterprise - TypeScript formulas compatible with Excel built-ins. - v0.7.23-beta.1
|
|
3
|
+
*
|
|
4
|
+
* (C) 2026-present SheetXL Inc. & Michael T. Ford
|
|
5
|
+
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
+
*/
|
|
7
|
+
var e = {
|
|
8
|
+
COUPDAYS: {
|
|
9
|
+
s: "Returns the number of days from the beginning of the coupon period to the settlement date.",
|
|
10
|
+
p: {
|
|
11
|
+
settlement: { d: "is the security's settlement date, expressed as a serial date number." },
|
|
12
|
+
maturity: { d: "is the security's maturity date, expressed as a serial date number." },
|
|
13
|
+
frequency: { d: "is the number of coupon payments per year." },
|
|
14
|
+
basis: { d: "is the type of day count basis to use." }
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
CUMIPMT: {
|
|
18
|
+
s: "Returns the cumulative interest paid between two periods.",
|
|
19
|
+
p: {
|
|
20
|
+
rate: { d: "is the interest rate." },
|
|
21
|
+
nper: { d: "is the total number of payment periods." },
|
|
22
|
+
pv: { d: "is the present value of the investment." },
|
|
23
|
+
startPeriod: { d: "is the first period in the calculation." },
|
|
24
|
+
endPeriod: { d: "is the last period in the calculation." },
|
|
25
|
+
type: { d: "is the timing of the payment." }
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
CUMPRINC: {
|
|
29
|
+
s: "Returns the cumulative principal paid on a loan between two periods.",
|
|
30
|
+
p: {
|
|
31
|
+
rate: { d: "is the interest rate." },
|
|
32
|
+
nper: { d: "is the total number of payment periods." },
|
|
33
|
+
pv: { d: "is the present value of the investment." },
|
|
34
|
+
startPeriod: { d: "is the first period in the calculation." },
|
|
35
|
+
endPeriod: { d: "is the last period in the calculation." },
|
|
36
|
+
type: { d: "is the timing of the payment." }
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
DB: {
|
|
40
|
+
s: "Returns the depreciation of an asset for a specified period using the fixed-declining balance method.",
|
|
41
|
+
p: {
|
|
42
|
+
cost: { d: "is the initial cost of the asset." },
|
|
43
|
+
salvage: { d: "is the salvage value at the end of the life of the asset." },
|
|
44
|
+
life: { d: "is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset)." },
|
|
45
|
+
period: { d: "is the period for which you want to calculate the depreciation. Period must use the same units as Life." },
|
|
46
|
+
month: { d: "is the number of months in the first year." }
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
DDB: {
|
|
50
|
+
s: "Returns the depreciation of an asset for a specified period using the double-declining balance method or some other method you specify.",
|
|
51
|
+
p: {
|
|
52
|
+
cost: { d: "is the initial cost of the asset." },
|
|
53
|
+
salvage: { d: "is the salvage value at the end of the life of the asset." },
|
|
54
|
+
life: { d: "is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset)." },
|
|
55
|
+
period: { d: "is the period for which you want to calculate the depreciation. Period must use the same units as Life." },
|
|
56
|
+
factor: { d: "is the rate at which the balance declines." }
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
DISC: {
|
|
60
|
+
s: "Returns the discount rate for a security.",
|
|
61
|
+
p: {
|
|
62
|
+
settlement: { d: "is the security's settlement date, expressed as a serial date number." },
|
|
63
|
+
maturity: { d: "is the security's maturity date, expressed as a serial date number." },
|
|
64
|
+
pr: { d: "is the security's price per $100 face value." },
|
|
65
|
+
redemption: { d: "is the security's redemption value per $100 face value." },
|
|
66
|
+
basis: { d: "is the type of day count basis to use." }
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
DOLLARDE: {
|
|
70
|
+
s: "Converts a dollar price, expressed as a fraction, into a dollar price, expressed as a decimal number.",
|
|
71
|
+
p: {
|
|
72
|
+
fractionalDollar: { d: "is a number expressed as a fraction." },
|
|
73
|
+
fraction: { d: "is the integer to use in the denominator of the fraction." }
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
DOLLARFR: {
|
|
77
|
+
s: "Converts a dollar price, expressed as a decimal number, into a dollar price, expressed as a fraction.",
|
|
78
|
+
p: {
|
|
79
|
+
decimalDollar: { d: "is a decimal number." },
|
|
80
|
+
fraction: { d: "is the integer to use in the denominator of the fraction." }
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
EFFECT: {
|
|
84
|
+
s: "Returns the effective annual interest rate.",
|
|
85
|
+
p: {
|
|
86
|
+
nominalRate: { d: "is the nominal interest rate." },
|
|
87
|
+
npery: { d: "is the number of compounding periods per year." }
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
FV: {
|
|
91
|
+
s: "Returns the future value of an investment based on periodic, constant payments and a constant interest rate.",
|
|
92
|
+
p: {
|
|
93
|
+
rate: { d: "is the interest rate." },
|
|
94
|
+
nper: { d: "is the total number of payment periods." },
|
|
95
|
+
pmt: { d: "is the payment made each period; it cannot change over the life of the investment." },
|
|
96
|
+
pv: { d: "is the present value of the investment." },
|
|
97
|
+
type: { d: "Indicates when pmts are due." }
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
FVSCHEDULE: {
|
|
101
|
+
s: "Returns the future value of an initial principal after applying a series of compound interest rates.",
|
|
102
|
+
p: {
|
|
103
|
+
principal: { d: "is the present value." },
|
|
104
|
+
schedule: { d: "is an array of interest rates to apply." }
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
IPMT: {
|
|
108
|
+
s: "Returns the interest payment for a given period for an investment, based on periodic, constant payments and a constant interest rate.",
|
|
109
|
+
p: {
|
|
110
|
+
rate: { d: "is the interest rate." },
|
|
111
|
+
per: { d: "is the period for which you want to find the interest and must be in the range 1 to Nper." },
|
|
112
|
+
nper: { d: "is the total number of payment periods." },
|
|
113
|
+
pv: { d: "is the present value of the investment." },
|
|
114
|
+
fv: { d: "is the future value, or a cash balance you want to attain after the last payment is made." },
|
|
115
|
+
type: { d: "is a logical value representing the timing of payment: at the end of the period = 0, at the beginning of the period = 1." }
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
IRR: {
|
|
119
|
+
s: "Returns the internal rate of return for a series of cash flows.",
|
|
120
|
+
p: {
|
|
121
|
+
values: { d: "is an array or a reference to cells that contain numbers for which you want to calculate the internal rate of return." },
|
|
122
|
+
guess: { d: "is a number that you guess is close to the result of IRR." }
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
ISPMT: {
|
|
126
|
+
s: "Returns the interest paid during a specific period of an investment.",
|
|
127
|
+
p: {
|
|
128
|
+
rate: { d: "is the interest rate." },
|
|
129
|
+
per: { d: "period for which you want to find the interest." },
|
|
130
|
+
nper: { d: "number of payment periods in an investment." },
|
|
131
|
+
pv: { d: "lump sum amount that a series of future payments is right now." }
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
MIRR: {
|
|
135
|
+
s: "Returns the modified internal rate of return for a series of periodic cash flows.",
|
|
136
|
+
p: {
|
|
137
|
+
values: { d: "An array of cash flows; must contain at least one positive and one negative value." },
|
|
138
|
+
financeRate: { d: "The interest rate paid on negative cash flows (cost of capital)." },
|
|
139
|
+
reinvestRate: { d: "The interest rate received on positive cash flows (reinvestment rate)." }
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
NOMINAL: {
|
|
143
|
+
s: "Returns the annual nominal interest rate.",
|
|
144
|
+
p: {
|
|
145
|
+
effectiveRate: { d: "is the effective interest rate." },
|
|
146
|
+
npery: { d: "is the number of compounding periods per year." }
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
NPER: {
|
|
150
|
+
s: "Returns the number of periods for an investment based on periodic, constant payments and a constant interest rate.",
|
|
151
|
+
p: {
|
|
152
|
+
rate: { d: "is the interest rate per period. For example, use 6%/4 for quarterly payments at 6% APR." },
|
|
153
|
+
pmt: { d: "is the payment made each period; it cannot change over the life of the investment." },
|
|
154
|
+
pv: { d: "is the present value, or the lump-sum amount that a series of future payments is worth now." },
|
|
155
|
+
fv: { d: "is the future value, or a cash balance you want to attain after the last payment is made." },
|
|
156
|
+
type: { d: "is a logical value: payment at the beginning of the period = 1; payment at the end of the period = 0." }
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
NPV: {
|
|
160
|
+
s: "Returns the net present value of an investment based on a discount rate and a series of future payments (negative values) and income (positive values).",
|
|
161
|
+
p: {
|
|
162
|
+
rate: { d: "is the rate of discount over the length of one period." },
|
|
163
|
+
value: { d: "are 1 to 254 payments and income, equally spaced in time and occurring at the end of each period." }
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
PDURATION: {
|
|
167
|
+
s: "Returns the number of periods required by an investment to reach a specified value.",
|
|
168
|
+
p: {
|
|
169
|
+
rate: { d: "is the interest rate." },
|
|
170
|
+
pv: { d: "is the present value of the investment." },
|
|
171
|
+
fv: { d: "is the desired future value of the investment." }
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
PMT: {
|
|
175
|
+
s: "Calculates the payment for a loan based on constant payments and a constant interest rate.",
|
|
176
|
+
p: {
|
|
177
|
+
rate: { d: "is the interest rate." },
|
|
178
|
+
nper: { d: "is the total number of payment periods." },
|
|
179
|
+
pv: { d: "is the present value of the investment." },
|
|
180
|
+
fv: { d: "is the future value, or a cash balance you want to attain after the last payment is made." },
|
|
181
|
+
type: { d: "is a logical value: payment at the beginning of the period = 1; payment at the end of the period = 0." }
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
PPMT: {
|
|
185
|
+
s: "Returns the payment on the principal for a given investment based on periodic, constant payments and a constant payments and a constant interest rate.",
|
|
186
|
+
p: {
|
|
187
|
+
rate: { d: "is the interest rate per period." },
|
|
188
|
+
per: { d: "is the period for which you want to find the principal payment and must be in the range 1 to Nper." },
|
|
189
|
+
nper: { d: "is the total number of payment periods in the investment." },
|
|
190
|
+
pv: { d: "is the present value of the investment." },
|
|
191
|
+
fv: { d: "is the future value, or a cash balance you want to attain after the last payment is made." },
|
|
192
|
+
type: { d: "is a logical value: payment at the beginning of the period = 1; payment at the end of the period = 0." }
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
PRICEDISC: {
|
|
196
|
+
s: "Returns the price per $100 face value of a discounted security.",
|
|
197
|
+
p: {
|
|
198
|
+
settlement: { d: "is the security's settlement date, expressed as a serial date number." },
|
|
199
|
+
maturity: { d: "is the security's maturity date, expressed as a serial date number." },
|
|
200
|
+
discount: { d: "is the security's discount rate." },
|
|
201
|
+
redemption: { d: "is the amount to be received at maturity." },
|
|
202
|
+
basis: { d: "is the type of day count basis to use." }
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
PV: {
|
|
206
|
+
s: "Returns the present value of an investment: the total amount that a series of future payments is worth now.",
|
|
207
|
+
p: {
|
|
208
|
+
rate: { d: "is the interest rate." },
|
|
209
|
+
nper: { d: "is the total number of payment periods in an investment." },
|
|
210
|
+
pmt: { d: "is the payment made each period and cannot change over the life of the investment." },
|
|
211
|
+
fv: { d: "is the future value, or a cash balance you want to attain after the last payment is made." },
|
|
212
|
+
type: { d: "is a logical value: payment at the beginning of the period = 1; payment at the end of the period = 0." }
|
|
213
|
+
}
|
|
214
|
+
},
|
|
215
|
+
RATE: {
|
|
216
|
+
s: "Returns the interest rate per period of a loan or an investment. For example, use 6%/4 for quarterly payments at 6% APR.",
|
|
217
|
+
p: {
|
|
218
|
+
nper: { d: "is the total number of payment periods." },
|
|
219
|
+
pmt: { d: "is the payment made each period and cannot change over the life of the loan or investment." },
|
|
220
|
+
pv: { d: "is the present value: the total amount that a series of future payments is worth now." },
|
|
221
|
+
fv: { d: "is the future value, or a cash balance you want to attain after the last payment is made." },
|
|
222
|
+
type: { d: "is a logical value: payment at the beginning of the period = 1; payment at the end of the period = 0." },
|
|
223
|
+
guess: { d: "is your guess for what the rate will be." }
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
RRI: {
|
|
227
|
+
s: "Returns an equivalent interest rate for the growth of an investment.",
|
|
228
|
+
p: {
|
|
229
|
+
nper: { d: "is the total number of payment periods." },
|
|
230
|
+
pv: { d: "is the present value of the investment." },
|
|
231
|
+
fv: { d: "is the future value of the investment." }
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
SLN: {
|
|
235
|
+
s: "Returns the straight-line depreciation of an asset for one period.",
|
|
236
|
+
p: {
|
|
237
|
+
cost: { d: "is the initial cost of the asset." },
|
|
238
|
+
salvage: { d: "is the salvage value at the end of the life of the asset." },
|
|
239
|
+
life: { d: "is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset)." }
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
STOCKHISTORY: {
|
|
243
|
+
s: "Returns an array of historical quote data for a symbol and date range you specify..",
|
|
244
|
+
p: {
|
|
245
|
+
stock: { d: "Symbol of financial instrument to be considered or a Stock data type." },
|
|
246
|
+
startDate: { d: "First date to return data from." },
|
|
247
|
+
endDate: { d: "Last date to return data from." },
|
|
248
|
+
interval: { d: "A number indicating the granularity of the data; 0 - Daily, 1 - Weekly, 2 - Monthly." },
|
|
249
|
+
headers: { d: "A logical value to add column header data; 0 - No column header, 1 - Show column header, 2 - Show instrument identifier and column header." },
|
|
250
|
+
properties: { d: "A number indicating which column of data to return; 0 through 5." }
|
|
251
|
+
},
|
|
252
|
+
h: "Unimplemented RichData"
|
|
253
|
+
},
|
|
254
|
+
SYD: {
|
|
255
|
+
s: "Returns the sum-of-years' digits depreciation of an asset for a specified period.",
|
|
256
|
+
p: {
|
|
257
|
+
cost: { d: "is the initial cost of the asset." },
|
|
258
|
+
salvage: { d: "is the salvage value at the end of the life of the asset." },
|
|
259
|
+
life: { d: "is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset)." },
|
|
260
|
+
per: { d: "is the period and must use the same units as Life." }
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
TBILLEQ: {
|
|
264
|
+
s: "Returns the bond-equivalent yield for a treasury bill.",
|
|
265
|
+
p: {
|
|
266
|
+
settlement: { d: "is the Treasury bill's settlement date, expressed as a serial date number." },
|
|
267
|
+
maturity: { d: "is the Treasury bill's maturity date, expressed as a serial date number." },
|
|
268
|
+
discount: { d: "is the Treasury bill's discount rate." }
|
|
269
|
+
}
|
|
270
|
+
},
|
|
271
|
+
TBILLPRICE: {
|
|
272
|
+
s: "Returns the price per $100 face value for a treasury bill.",
|
|
273
|
+
p: {
|
|
274
|
+
settlement: { d: "is the Treasury bill's settlement date, expressed as a serial date number." },
|
|
275
|
+
maturity: { d: "is the Treasury bill's maturity date, expressed as a serial date number." },
|
|
276
|
+
discount: { d: "is the Treasury bill's discount rate." }
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
TBILLYIELD: {
|
|
280
|
+
s: "Returns the yield for a treasury bill.",
|
|
281
|
+
p: {
|
|
282
|
+
settlement: { d: "is the Treasury bill's settlement date, expressed as a serial date number." },
|
|
283
|
+
maturity: { d: "is the Treasury bill's maturity date, expressed as a serial date number." },
|
|
284
|
+
pr: { d: "is the Treasury Bill's price per $100 face value." }
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
XIRR: {
|
|
288
|
+
s: "Returns the internal rate of return for a schedule of cash flows.",
|
|
289
|
+
p: {
|
|
290
|
+
values: { d: "is a series of cash flows that correspond to a schedule of payments in dates." },
|
|
291
|
+
dates: { d: "is a schedule of payment dates that corresponds to the cash flow payments." },
|
|
292
|
+
guess: { d: "is a number that you guess is close to the result of XIRR." }
|
|
293
|
+
}
|
|
294
|
+
},
|
|
295
|
+
XNPV: {
|
|
296
|
+
s: "Returns the net present value for a schedule of cash flows.",
|
|
297
|
+
p: {
|
|
298
|
+
rate: { d: "is the discount rate to apply to the cash flows." },
|
|
299
|
+
values: { d: "is a series of cash flows that correspond to a schedule of payments in dates." },
|
|
300
|
+
dates: { d: "is a schedule of payment dates that corresponds to the cash flow payments." }
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
export { e as default };
|