## 8 examples of useful Excel functions in HyperFormula

If you try to combine features of a full-grown calculation engine with the flexibility of modern-day JavaScript, you may end up developing… HyperFormula.

**A huge library of functions**

Looking back, even we at Handsontable are quite amazed to see how large the library of supported functions has grown. We currently stopped at 389 functions, in 16 languages. But, who knows, the number may still go up.

Most likely, you’ll never need all of those functions at once. But, there’s a high chance that HyperFormula supports exactly those few Excel functions that will save you eons of time when building your app.

For the full list of all supported functions, check the HyperFormula documentation. To get a quick glimpse of what HyperFormula has to offer—read on.

**Note: **HyperFormula is a headless engine (it doesn’t confine you to any specific UI), but we’ll employ an impromptu UI structure to help you imagine what those functions may work like for your end users.

**1. Binary number conversions**

Among the nearly 50 of HyperFormula’s engineering functions, some are dedicated to converting binary numbers to decimals, octals, and hexadecimals.

For example, to convert a binary number to a decimal, you can use the `BIN2DEC`

function, the same way you’d do it in Excel or Google Sheets: `BIN2DEC(`

.*binary_number*)

Similarly to `BIN2DEC`

, you can use a whole bunch of other functions to convert numbers from and into the binary notation:

Function |
Conversion |
Syntax |
Example |

`BIN2DEC` |
Binary to decimal | `BIN2DEC(` |
=`BIN2DEC(1010111)` |

`BIN2HEX` |
Binary to hexadecimal | `BIN2HEX(` |
=`BIN2HEX(1010111,20)` |

`BIN2OCT` |
Binary to octal | `BIN2OCT(` |
=`BIN2OCT(1010111,20)` |

`DEC2BIN` |
Decimal to binary | `DEC2BIN(decimal_number_between-512_and_+511; optional_max_number_of_characters_to_display)` |
=`DEC2BIN(1,20)` |

`HEX2BIN` |
Hexadecimal to binary | `HEX2BIN(` |
=`HEX2BIN(1010111,20)` |

`OCT2BIN` |
Octal to binary | `OCT2BIN(` |
=`OCT2BIN(1010111,20)` |

**2. RADIANS and DEGREES**

So, you can easily convert number notations—what about units?

Let’s take measuring angles. Ever heard of Excel’s `RADIANS`

and `DEGREES`

functions? They’re in HyperFormula, too:

`RADIANS(`

*number_of_degrees*)`DEGREES(`

*number_of_radians*)

For example:

- =
`RADIANS(360)`

- =
`DEGREES(6.28)`

- =
`DEGREES(3.14)`

**3. ROMAN and ARABIC**

Speaking of conversions, there’s a neat pair of Excel functions that lets you convert roman numbers into arabic numbers, and vice versa. Quite intuitively, they’re called `ROMAN`

and `ARABIC`

. In case you wondered, HyperFormula has got that covered, too:

`ROMAN(`

*arabic_number*)`ARABIC(`

*roman_number*)

For example:

- =
`ROMAN(1)`

- =
`ROMAN(5)`

- =
`ARABIC(I)`

- =
`ARABIC(V)`

**4. EOMONTH**

Another function that doesn’t lack fans among Excel or Google Sheets users is `EOMONTH`

. Again, HyperFormula reconstructs that function in JavaScript, and lets you tweak it whatever way you like.

By default, `EOMONTH`

calculates the last day of the month that comes a number of months after (or before) the date of your choice:

`EOMONTH(`

*start_date;number_of_months_from_the_start_date*)

For example, to calculate the last day of the month that will come 10 months from now, you can use: =`EOMONTH(NOW(),10)`

.

As in Excel, the default output of `EOMONTH`

is a serial number (a number of days passed since January 1, 1900). And, as in Excel, you can easily convert it to a human-readable date, thanks to functions such as `DAY`

, `MONTH`

, or `YEAR`

.

**5. FACT and FACTDOUBLE**

If your end users are into computing factorials, HyperFormula lets you use the two Excel factorial functions, `FACT`

and `FACTDOUBLE`

:

`FACT(`

*decimal_number*)`FACTDOUBLE(`

*decimal_number*)

For example:

- =
`FACT(0)`

- =
`FACT(5)`

- =
`FACTDOUBLE(0)`

- =
`FACTDOUBLE(5)`

As the names suggest, `FACT`

calculates a given number’s factorial, and `FACTDOUBLE`

calculates its double factorial:

**6. COUNT, COUNTA, COUNTIF functions**

HyperFormula supports more than 130 Excel functions related to statistics. Among them, you’ll find a group of simple yet frequently-used functions that help you see what’s what in a large pool of data. The most basic one of them is `COUNTA`

.

`COUNTA`

takes a given set of values (a list of arguments, or an array of cells) and counts how many of those values are not empty. In other words, it counts how many values there are in a given set of data:

`COUNTA(`

*set_of_values*)

As you can imagine, it’s a perfect match for HyperFormula’s array features:

- =
`COUNTA(A1:B4)`

- =
`COUNTA(A1:D400)`

You can also do the opposite: count how many cells in your set are empty. Just use the `COUNTBLANK`

function—you’ll find it in HyperFormula as well:

`COUNTBLANK(`

*set_of_values*)

For example:

- =
`COUNTBLANK(A1:B4)`

- =
`COUNTBLANK(A1:D400)`

Now, a similar function called `COUNT`

also gives you a count of values in a given area, but it focuses solely on numbers. It counts how many numbers (as opposed to other types of values) are in a given set of values:

`COUNT(`

*set_of_values*)

For example:

- =
`COUNTBLANK(A1:B4)`

- =
`COUNTBLANK(A1:D400)`

If you can get the count of non-empty values, the count of empty values, and the count of number values, then you can also get the count of… any values you want, because HyperFormula supports the massively popular `COUNTIF`

Excel function.

`COUNTIF`

takes a set of values, and counts how many values in that set match your custom criteria: `COUNTIF(`

.*range_of_values*; *criteria*)

For example:

- =
`COUNTIF(A2:A10,">5")`

- =
`COUNTIF(A2:B40,"John Doe")`

- =
`COUNTIF(A2:C9,A1)`

But that’s not all: COUNTIFS, the Excel function that can apply multiple criteria to multiple sets of values is supported in HyperFormula as well: =`COUNTIFS(`

*Range1*; *Criterion1* [; *Range2*; *Criterion2* [; ...]])

For example: =`COUNTIFS(A1:B5,"=Yes",B1:B5,"=No").`

**7. NETWORKDAYS**

There’s a simple Excel function that helps you count how many working days there are between two dates. It’s called `NETWORKDAYS`

, and you’ll find it in HyperFormula as well:

`NETWORKDAYS(`

*start_date*;*end_date*;*holiday_dates*)

`NETWORKDAYS`

lets you specify custom holidays as well, for example:

`NETWORKDAYS(12/30/2020,06/28/2021;05/05/2021,04/06/2021)`

But there’s more: HyperFormula supports `NETWORKDAYS.INTL`

, which lets you set your own definition of a working day (for example, you can set Sunday as a working day, and Friday as a weekend day).

**8. SUMPRODUCT**

Another simple Excel function that often comes in handy is `SUMPRODUCT`

. It takes arrays of values (as many as you like), multiplies those arrays’ corresponding values, and sums up the products of those multiplications.

You’ll find `SUMPRODUCT`

in HyperFormula as well:

`SUMPRODUCT(`

*array1*;*array2*...*array30*)

For example:

`SUMPRODUCT(A1:A4;B1:B4)`

**One function to rule them all**

Now, if you’re building an advanced business app, there’s always a chance that this one particular Excel function that you need badly is missing from HyperFormula’s huge library. Or, it may even turn out that your end users’ needs are so specific that they can’t be met by any existing function. What then?

The answer is simple: **you are free to completely remake any of HyperFormula’s built-in functions**. For example, you can take a built-in function and make it compatible with other spreadsheet software, like Google Sheets, LibreOffice Calc, or Gnumeric, if that’s your requirement. Or, you can remove some functions that you don’t need. Or, you can completely remove all the built-in functions and implement only those that match your app’s exact needs.

But your ultimate weapon is creating your own custom function from scratch. **HyperFormula lets you easily create functions that do exactly what you need them to**. You can even add your own translations for them. In short, the sky is the limit.

Of course, the functions we mentioned in this article are just a tiny sample of what HyperFormula has to offer. In the near future, we’re going to devote some more blog posts to other Excel functions that HyperFormula supports—stay tuned!

**Acknowledgments**

The HyperFormula project was co-financed from European Union funds under the European Regional Development Funds as a part of the Smart Growth Operational Programme. Project implemented as a part of the National Centre for Research and Development: Fast Track.