This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
=LAMBDA(percent,[color],LET( | |
baseurl,"", | |
IMAGE(baseurl&IF(ISOMITTED(color),"Black",color)&TEXT(percent,"0")&".png") | |
)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Name: Multi-Level Dropdown Validation (MultiLevelDropdownValidation) | |
Description: Returns the list of allowable values for a specific cell based on | |
the entries to the left. | |
Parameters: | |
tablename - name of the Excel table containing the data validation dropdowns. | |
header - table header cells from the first column with data validation to the column for which | |
to return list of values allowed. | |
keylisttable - reference to dynamic range containing the MultiLevelKeyLists lambda key lists table. | |
Source: Written by Excel Robot, inspired by Wyn Hopkins (https://www.youtube.com/watch?v=r0DTFodQYJQ&t=989s) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Name: Tile (TILE) | |
Description: Tile the outputs of a single-parameter function given an array map of parameters. | |
Parameters: | |
params - array of parameters arranged how function results to be tiled | |
function - single-parameter Lambda name or function | |
Source: Excel Robot (@ExcelRobot), but inspired by Owen Price's STACKER lambda (https://www.youtube.com/watch?v=wEBLT9QfQRw). | |
*/ | |
TILE = LAMBDA(params,function,LET( | |
firstrow, function(INDEX(params,1,1)), |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Name: Mandelbrot Set (Mandelbrot) | |
Description: Generates a Mandelbrot set based on given assumptions that can be used with conditional formatting to view the visual representation. | |
Parameters: | |
xleft - Left X value | |
xright - Right X value | |
ytop - Top Y value | |
ybottom - Bottom Y value | |
size - number of columns/rows in square output range | |
iterations - number of iterations |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Name: Cross Join Two Arrays or Tables (CROSSJOIN) | |
Description: Returns all possible combinations of two arrays of data, with or without header rows. | |
If the arrays have only one row, it will be assumed that they are row vectors, otherwise it | |
assumes the arrays are columns of data. | |
Parameters: | |
array1 - first array of data with one or more columns | |
array2 - second array of data with one or more columns | |
[has_header_row] - true if the first row of the arrays contain a header row, default: false | |
Source: Excel Robot (@ExcelRobot) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Name: Index Wrap (IndexWrap) | |
Description: Similar to INDEX but if the position is too high, it'll wrap around. | |
Parameters: | |
array - Required. A range of cells or an array constant. | |
index - Required. The row (or column) position to return from array. If the position is greater than the number of rows (or columns), it wraps around. | |
[by_column] - Optional. True for columns, false for rows. Default: False. | |
Source: Excel Robot (@ExcelRobot) | |
Gist URL: https://gist.github.com/ExcelRobot/926df8b9889b39dc92549495a3144860 | |
Dependencies: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Name: Unpivot Table (UNPIVOT) | |
Description: Given a table range with headers and array of header names, unpivots the | |
specified columns in place, optionally removing any blank entries. | |
Written By: Excel Robot (@ExcelRobot) | |
Category: Array | |
*/ | |
UNPIVOT=LAMBDA(table,[columns_to_unpivot],[attribute_name],[value_name],[remove_blanks], LET( | |
_ColumnsToUnpivot, IF( | |
ISOMITTED(columns_to_unpivot), |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Name: Convert Number To Ordinal (ADDTH) | |
Description: Converts number to ordinal ie: 1st, 2nd, 3rd, 4th, 11th, 12th, 13th, 21st, etc. | |
Author: Excel Robot (@ExcelRobot) | |
Inspired By: Rick de Groot (https://www.linkedin.com/posts/rickmaurinus_powerbi-businessintelligence-dax-activity-6920723485937790976-Wzdb?utm_source=linkedin_share&utm_medium=member_desktop_web) | |
Category: Conversion | |
*/ | |
ADDTH = LAMBDA(number,LET( | |
LastDigit, RIGHT(number), | |
LastTwo, RIGHT(number, 2), |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
These lambdas were inspired by the work of Mike Wolfe's article "Displaying Human | |
Readable Time Spans" (https://nolongerset.com/displaying-time-spans/). He provided | |
the logic and I enjoyed the puzzle of converting that logic to dynamic arrays. | |
Included within: | |
* HUMANIZESECONDS - Converts seconds to human readable text | |
* PLURALIZE - Adapts wording based on whether number is singular/plural and | |
positive/negative. | |
* CONVERTTOSECONDS - Converts units of years, weeks, days, hours, minutes, and |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Name: Choose Table Columns (CHOOSETABLECOLUMNS) | |
Description: Similar to CHOOSECOLUMNS but can accept an array of column header names or | |
array of column indexes. If column headers are used, assumes first row of Table is | |
header row. | |
Author: Excel Robot (@ExcelRobot) | |
Category: Table | |
*/ | |
CHOOSETABLECOLUMNS = LAMBDA(Table, ColumnsToSelect, LET( | |
FirstColumnToSelect, INDEX(ColumnsToSelect,1,1), |