Forum Discussion
BigSpill: A 90‑Function Excel LAMBDA Library for Dynamic Arrays
What is BigSpill?
BigSpill is an Excel LAMBDA library containing 90 functions across 10 categories, built from extensive experimentation with dynamic arrays. The goal is to provide elegant, efficient tools that make sheet‑level formulas easier to read, more modular, and more dynamic.
The library includes a mix of:
- quality‑of‑life helpers
- essential primitives
- mid‑level operators
- developer‑level tools
- a few functions you might not expect to see in Excel
Who is it for?
Everyone.
BigSpill aims to make complex operations more approachable and expressive.
A few examples from the library:
- Pairwiseλ
- Staircaseλ
- Grainλ
- PolarGridλ
- Convolveλ
- Foldλ
- Tessellateλ
- Revealλ
- Knapsackλ
- Magnifyλ
- Traverseλ
The repository includes full documentation and 11 sample workbooks so you can explore the functions without setup.
If you’re interested in experimenting with dynamic arrays, or LAMBDA workflows, feel free to take a look. Feedback and suggestions are always welcome.
I've attached 1 onboarding workbook. There are 10 more at the link below.
GitHub:
3 Replies
- Patrick2788Silver Contributor
Pairwiseλ is my approach to generating a Cartesian product of 2 sets. Here is a demo with a deck of cards created from rank and suit.
The function is written as simply as possible. The goal was to make it fast, efficient, and predictable.
/* [GR06] ------------------------------------------------------------------------- Function: Pairwiseλ Category: Grid Analytics (Categorical Analysis) Author: Patrick H. Version: 1.1 Dependencies: Echoλ, Resizeλ Description: Creates vertical pairs from 1D and scalar inputs. Inputs are flattened with TOCOL to normalize orientation. 2D arrays are strictly prohibited. Parameters: vector_1 - 1D vector or scalar. vector_2 - 1D vector or scalar. ------------------------------------------------------------------------------*/ Pairwiseλ= LAMBDA( vector_1, vector_2, LET( // Flatten inputs v, TOCOL(vector_1), v₂, TOCOL(vector_2), // Element counts k, COUNTA(v), k₂, COUNTA(v₂), // Halting scenarios Is2DInput?, OR(AND(ROWS(vector_1)>1, COLUMNS(vector_1)>1), AND(ROWS(vector_2)>1, COLUMNS(vector_2)>1)), Is2Big?, k * k₂ > 1000000, IF(Is2DInput?, #VALUE!, IF(Is2Big?, #NUM!, LET( // Cartesian expansion x, Echoλ(v, k₂), y, Resizeλ(v₂, k), pairs, HSTACK(x, y), pairs )))));I have two more functions in the pipeline for the next update:
Triplewiseλ - Cartesian product of 3 sets
Quadwiseλ - Cartesian product of 4 sets
These two are of note because they provide an elegant way to generate indices. I'm toying with Windowedλ which extracts overlapping windows (n x n) from a 2D grid in row-major/col-major order. All will be in the next update.
- Harun24HRSilver Contributor
Visitors would be be benefited if you attached a sample file with sample data and output of each function. Little explanation would make the file excellent for visitors. Can you please share sample file and use of functions?
Edit: I got the sample files to your GitHub repository. Still I will advise to attach a sample file the post for easy way.
- Patrick2788Silver Contributor
Thank you for taking a look. I didn't attach sample workbooks here because the forum tends to gobble up attachments!