Excel like a finance pro.
The library
Every topic the skills test can ask about, ranked within its area, with a difficulty rating on the same Elo scale as the test and the number of practice questions behind it — 3,091 in all.
Functions · 520
Ranked by how often a finance operator reaches for them.
| # | Topic | What it does | Difficulty | Practice |
|---|---|---|---|---|
| 1 | SUM | Adds up numbers, ranges, or both. | 850 | 27 → |
| 2 | IF | Returns one value if a test is true and another if it is false. | 950 | 31 → |
| 3 | AVERAGE | Returns the arithmetic mean, ignoring blanks and text. | 850 | 19 → |
| 4 | VLOOKUP | Finds a value in the first column of a table and returns a value from a column to the right. | 1200 | 27 → |
| 5 | COUNT | Counts cells that contain numbers; text and blanks are skipped. | 900 | 5 → |
| 6 | COUNTA | Counts cells that are not empty, whatever they contain. | 900 | 7 → |
| 7 | SUMIF | Adds the cells in a range that meet one condition. | 1150 | 56 → |
| 8 | SUMIFS | Adds cells that meet several conditions at once. | 1250 | 28 → |
| 9 | COUNTIF | Counts cells that meet one condition, with wildcards allowed in text. | 1100 | 76 → |
| 10 | COUNTIFS | Counts rows that meet several conditions at once. | 1200 | 26 → |
| 11 | XLOOKUP | Finds a value in one range and returns the matching item from another, in any direction, exact by default. | 1250 | 18 → |
| 12 | ROUND | Rounds a number to a given number of digits; negative digits round to tens, hundreds, and so on. | 950 | 48 → |
| 13 | MAX | Returns the largest number. | 850 | 35 → |
| 14 | MIN | Returns the smallest number. | 850 | 15 → |
| 15 | IFERROR | Returns an alternative value if a formula produces any error. | 1050 | 42 → |
| 16 | INDEX | Returns the value at a given row and column position in a range. | 1250 | 55 → |
| 17 | MATCH | Returns the position of a value in a range, not the value itself. | 1250 | 6 → |
| 18 | CONCAT | Joins text from several cells or ranges with no delimiter. | 950 | 21 → |
| 19 | TEXT | Formats a number or date as text using a format code. | 1150 | 56 → |
| 20 | LEFT | Returns the first characters of a text string. | 950 | 38 → |
| 21 | RIGHT | Returns the last characters of a text string. | 950 | 25 → |
| 22 | MID | Returns characters from the middle of a string, starting at a position. | 1050 | 25 → |
| 23 | LEN | Returns the number of characters in a string, spaces included. | 900 | 23 → |
| 24 | TRIM | Removes leading, trailing, and repeated spaces. | 950 | 10 → |
| 25 | TODAY | Returns the current date, updated on every recalculation. | 900 | 3 → |
| 26 | DATE | Builds a date from year, month, and day numbers. | 1000 | 5 → |
| 27 | AND | Returns TRUE only if every argument is true. | 1000 | 15 → |
| 28 | OR | Returns TRUE if any argument is true. | 1000 | 14 → |
| 29 | AVERAGEIF | Averages the cells that meet one condition. | 1150 | 16 → |
| 30 | AVERAGEIFS | Averages cells that meet several conditions. | 1250 | 11 → |
| 31 | SUMPRODUCT | Multiplies matching elements of arrays and adds the products; the workhorse for conditional math without helper columns. | 1550 | 90 → |
| 32 | SUBTOTAL | Runs a chosen aggregate (SUM, AVERAGE, COUNT, ...) that ignores rows hidden by a filter. | 1300 | 4 → |
| 33 | EOMONTH | Returns the last day of the month a number of months away. | 1100 | 24 → |
| 34 | YEAR | Returns the year from a date. | 900 | 14 → |
| 35 | MONTH | Returns the month number from a date. | 900 | 14 → |
| 36 | DAY | Returns the day of the month from a date. | 900 | 3 → |
| 37 | NOW | Returns the current date and time. | 900 | 4 → |
| 38 | IFS | Tests several conditions in order and returns the value for the first true one. | 1150 | 16 → |
| 39 | FILTER | Returns the rows of a range that meet a condition, as a spilled array. | 1350 | 16 → |
| 40 | UNIQUE | Returns the distinct values from a range. | 1300 | 4 → |
| 41 | TEXTJOIN | Joins values with a delimiter, optionally skipping blanks. | 1150 | 22 → |
| 42 | SUBSTITUTE | Replaces occurrences of specific text with other text. | 1100 | 33 → |
| 43 | FIND | Returns the position of text inside other text; case-sensitive, no wildcards. | 1100 | 31 → |
| 44 | SEARCH | Returns the position of text inside other text; case-insensitive, wildcards allowed. | 1100 | 5 → |
| 45 | VALUE | Converts a number stored as text into a number. | 1000 | 10 → |
| 46 | ABS | Returns the absolute value, the number without its sign. | 900 | 13 → |
| 47 | INT | Rounds a number down to the nearest integer, toward negative infinity. | 1000 | 4 → |
| 48 | MOD | Returns the remainder after division. | 1050 | 27 → |
| 49 | ROUNDUP | Rounds a number away from zero to a given number of digits. | 1000 | 5 → |
| 50 | ROUNDDOWN | Rounds a number toward zero to a given number of digits. | 1000 | 4 → |
| 51 | PROPER | Capitalizes the first letter of each word. | 900 | 22 → |
| 52 | UPPER | Converts text to uppercase. | 850 | 14 → |
| 53 | LOWER | Converts text to lowercase. | 850 | 3 → |
| 54 | CONCATENATE | Joins text values; the older version of CONCAT that cannot take ranges. | 950 | 3 → |
| 55 | HLOOKUP | Finds a value in the first row of a table and returns a value from a row below. | 1200 | 3 → |
| 56 | INDIRECT | Turns text into a live cell reference. | 1450 | 3 → |
| 57 | OFFSET | Returns a range shifted from a starting cell by a number of rows and columns. | 1400 | 3 → |
| 58 | CHOOSE | Returns one item from a list based on an index number. | 1100 | 3 → |
| 59 | ISBLANK | Returns TRUE if a cell is empty. | 950 | 3 → |
| 60 | ISNUMBER | Returns TRUE if a value is a number. | 1000 | 3 → |
| 61 | IFNA | Returns an alternative value only if a formula produces #N/A. | 1100 | 4 → |
| 62 | ISERROR | Returns TRUE for any error value. | 1050 | 3 → |
| 63 | MEDIAN | Returns the middle value, unaffected by outliers. | 950 | 23 → |
| 64 | LARGE | Returns the k-th largest value. | 1050 | 24 → |
| 65 | SMALL | Returns the k-th smallest value. | 1050 | 14 → |
| 66 | RANK.EQ | Returns the rank of a number in a list; ties share the top rank. | 1100 | 14 → |
| 67 | SORT | Returns a range sorted by one of its columns. | 1300 | 15 → |
| 68 | SORTBY | Sorts a range by another range, which can be outside it. | 1350 | 3 → |
| 69 | SEQUENCE | Returns a spilled list of sequential numbers. | 1350 | 4 → |
| 70 | LET | Names intermediate results inside a formula so they are calculated once and reused. | 1400 | 4 → |
| 71 | XMATCH | Returns the position of a value with exact match by default and optional reverse search. | 1300 | 3 → |
| 72 | EDATE | Returns the date a number of months before or after a date. | 1100 | 15 → |
| 73 | DATEDIF | Returns the complete years, months, or days between two dates; undocumented but reliable. | 1200 | 24 → |
| 74 | NETWORKDAYS | Counts working days between two dates, skipping weekends and listed holidays. | 1150 | 22 → |
| 75 | WORKDAY | Returns the date a number of working days from a start date. | 1150 | 4 → |
| 76 | WEEKDAY | Returns the day of the week as a number; 1 is Sunday by default. | 1050 | 21 → |
| 77 | WEEKNUM | Returns the week number of the year. | 1050 | 3 → |
| 78 | PMT | Returns the periodic payment on a loan at a constant rate. | 1300 | 41 → |
| 79 | NPV | Returns the net present value of cash flows that occur at the end of each period. | 1400 | 13 → |
| 80 | IRR | Returns the internal rate of return of a series of cash flows. | 1400 | 5 → |
| 81 | XNPV | Returns the net present value of cash flows on specific dates. | 1450 | 4 → |
| 82 | XIRR | Returns the internal rate of return for cash flows on specific dates. | 1450 | 3 → |
| 83 | PV | Returns the present value of a series of equal payments. | 1350 | 12 → |
| 84 | FV | Returns the future value of a series of equal payments. | 1350 | 12 → |
| 85 | RATE | Returns the interest rate per period of an annuity. | 1400 | 3 → |
| 86 | NPER | Returns the number of periods needed to pay off or reach an amount. | 1350 | 12 → |
| 87 | GETPIVOTDATA | Pulls a specific value out of a pivot table by field and item names. | 1350 | 3 → |
| 88 | ROW | Returns the row number of a reference, or of the cell it sits in. | 1050 | 3 → |
| 89 | COLUMN | Returns the column number of a reference. | 1050 | 2 → |
| 90 | ROWS | Returns the number of rows in a range. | 1050 | 2 → |
| 91 | COLUMNS | Returns the number of columns in a range. | 1050 | 2 → |
| 92 | TRANSPOSE | Flips a range so rows become columns and columns become rows. | 1200 | 2 → |
| 93 | MAXIFS | Returns the largest value among cells that meet conditions. | 1250 | 14 → |
| 94 | MINIFS | Returns the smallest value among cells that meet conditions. | 1250 | 13 → |
| 95 | SWITCH | Compares one expression against a list of values and returns the matching result. | 1150 | 4 → |
| 96 | TEXTSPLIT | Splits text into an array by delimiters. | 1300 | 3 → |
| 97 | TEXTBEFORE | Returns the text that comes before a delimiter. | 1200 | 3 → |
| 98 | TEXTAFTER | Returns the text that comes after a delimiter. | 1200 | 13 → |
| 99 | LAMBDA | Defines a custom reusable function without VBA. | 1700 | 4 → |
| 100 | MAP | Applies a LAMBDA to each element of an array and returns the results. | 1700 | 3 → |
| 101 | REDUCE | Accumulates a single result by applying a LAMBDA across an array. | 1800 | 3 → |
| 102 | SCAN | Like REDUCE but returns every intermediate value, useful for running totals. | 1800 | 3 → |
| 103 | BYROW | Applies a LAMBDA to each row of an array and returns one result per row. | 1700 | 3 → |
| 104 | BYCOL | Applies a LAMBDA to each column of an array and returns one result per column. | 1700 | 3 → |
| 105 | MAKEARRAY | Builds an array of a given size by calling a LAMBDA with each row and column number. | 1800 | 2 → |
| 106 | VSTACK | Stacks arrays on top of one another into one array. | 1350 | 3 → |
| 107 | HSTACK | Places arrays side by side into one array. | 1350 | 3 → |
| 108 | TAKE | Returns the first or last rows or columns of an array; negative numbers count from the end. | 1350 | 3 → |
| 109 | DROP | Returns an array with the first or last rows or columns removed. | 1350 | 3 → |
| 110 | CHOOSECOLS | Returns the chosen columns from an array, in the order you list them. | 1400 | 3 → |
| 111 | CHOOSEROWS | Returns the chosen rows from an array. | 1400 | 3 → |
| 112 | TOCOL | Flattens an array into a single column. | 1400 | 3 → |
| 113 | TOROW | Flattens an array into a single row. | 1400 | 2 → |
| 114 | WRAPROWS | Wraps a single row or column into rows of a given width. | 1450 | 2 → |
| 115 | WRAPCOLS | Wraps a single row or column into columns of a given height. | 1450 | 2 → |
| 116 | EXPAND | Grows an array to given dimensions, padding new cells. | 1400 | 2 → |
| 117 | GROUPBY | Summarizes data by groups in one formula, like a pivot table that recalculates live. | 1600 | 3 → |
| 118 | PIVOTBY | Cross-tabulates data by rows and columns in one formula. | 1650 | 2 → |
| 119 | STDEV.S | Returns the standard deviation of a sample. | 1200 | 14 → |
| 120 | STDEV.P | Returns the standard deviation of an entire population. | 1200 | 3 → |
| 121 | VAR.S | Returns the variance of a sample. | 1250 | 3 → |
| 122 | PERCENTILE.INC | Returns the value at a given percentile, k from 0 to 1 inclusive. | 1250 | 3 → |
| 123 | QUARTILE.INC | Returns a quartile of a data set (0 = min, 2 = median, 4 = max). | 1250 | 3 → |
| 124 | CORREL | Returns the correlation coefficient between two data sets, from -1 to 1. | 1300 | 3 → |
| 125 | FORECAST.LINEAR | Predicts a y value for a given x using linear regression. | 1300 | 3 → |
| 126 | TREND | Returns values along a linear trend fitted to the data, as an array. | 1350 | 3 → |
| 127 | RAND | Returns a random decimal between 0 and 1, recalculated on every change. | 1000 | 3 → |
| 128 | RANDBETWEEN | Returns a random whole number between two values you give. | 1000 | 4 → |
| 129 | RANDARRAY | Returns an array of random numbers of the size you specify. | 1400 | 3 → |
| 130 | REPT | Repeats text a given number of times. | 1000 | 8 → |
| 131 | CHAR | Returns the character for a code number; CHAR(10) is a line break. | 1100 | 2 → |
| 132 | CODE | Returns the numeric code of the first character. | 1100 | 2 → |
| 133 | CLEAN | Removes non-printable characters from text. | 1000 | 2 → |
| 134 | EXACT | Tests whether two strings are identical, case-sensitively. | 1000 | 3 → |
| 135 | NUMBERVALUE | Converts text to a number using separators you specify, for other locales. | 1200 | 2 → |
| 136 | DOLLAR | Formats a number as currency text. | 1000 | 2 → |
| 137 | HYPERLINK | Creates a clickable link to a file, web page, or cell. | 1050 | 3 → |
| 138 | AGGREGATE | Like SUBTOTAL with more functions and the option to ignore errors and hidden rows. | 1500 | 3 → |
| 139 | MROUND | Rounds a number to the nearest multiple you specify, like the nearest 5 or 0.25. | 1100 | 3 → |
| 140 | CEILING.MATH | Rounds a number up to the nearest integer or multiple of significance. | 1100 | 3 → |
| 141 | FLOOR.MATH | Rounds a number down to the nearest integer or multiple of significance. | 1100 | 3 → |
| 142 | TRUNC | Drops the decimal part of a number without rounding. | 1000 | 3 → |
| 143 | SIGN | Returns 1 for positive, -1 for negative, and 0 for zero. | 1000 | 2 → |
| 144 | POWER | Raises a number to a power; the same as the ^ operator. | 950 | 9 → |
| 145 | SQRT | Returns the positive square root. | 950 | 4 → |
| 146 | PRODUCT | Multiplies all the numbers given. | 950 | 3 → |
| 147 | COUNTBLANK | Counts empty cells in a range. | 950 | 2 → |
| 148 | AVERAGEA | Returns the mean counting text as 0 and TRUE as 1. | 1100 | 2 → |
| 149 | MAXA | Returns the largest value, counting TRUE as 1 and text as 0. | 1100 | 2 → |
| 150 | MODE.SNGL | Returns the most frequently occurring number. | 1050 | 3 → |
| 151 | FREQUENCY | Counts how many values fall into each bin, returned as an array. | 1400 | 3 → |
| 152 | PI | Returns the value of pi. | 900 | 2 → |
| 153 | DAYS | Returns the number of days between two dates. | 950 | 22 → |
| 154 | HOUR | Returns the hour from a time. | 950 | 2 → |
| 155 | NOT | Reverses TRUE and FALSE. | 950 | 2 → |
| 156 | ISTEXT | Returns TRUE if a value is text. | 1000 | 2 → |
| 157 | DATEVALUE | Converts a date written as text into a date serial number. | 1050 | 3 → |
| 158 | ISNA | Returns TRUE only for #N/A. | 1050 | 2 → |
| 159 | NA | Returns the #N/A error on purpose, for example to leave a gap in a chart. | 1050 | 2 → |
| 160 | TIME | Builds a time value from hours, minutes, and seconds. | 1050 | 3 → |
| 161 | REPLACE | Replaces characters at a position with other text. | 1100 | 3 → |
| 162 | MODE | Returns the most frequent value in a set of numbers; still works but MODE.SNGL is the current name. | 1050 | 3 → |
| 163 | RANK | Returns the rank of a number in a list; still widely typed but RANK.EQ is the current name. | 1100 | 6 → |
| 164 | SLN | Returns straight-line depreciation for one period. | 1200 | 3 → |
| 165 | YEARFRAC | Returns the fraction of a year between two dates. | 1200 | 3 → |
| 166 | PERCENTILE | Returns the k-th percentile of a range; still common but PERCENTILE.INC is the current name. | 1200 | 3 → |
| 167 | QUARTILE | Returns a quartile of a data set; still common but QUARTILE.INC is the current name. | 1200 | 3 → |
| 168 | STDEV | Estimates standard deviation from a sample; still widely typed but STDEV.S is the current name. | 1200 | 3 → |
| 169 | FORECAST | Predicts a value along a straight-line trend; still works but FORECAST.LINEAR is the current name. | 1300 | 3 → |
| 170 | IPMT | Returns the interest portion of a specific payment. | 1400 | 3 → |
| 171 | PPMT | Returns the principal portion of a specific payment. | 1400 | 3 → |
| 172 | FALSE | Returns the logical value FALSE. | 850 | 2 → |
| 173 | TRUE | Returns the logical value TRUE. | 850 | 2 → |
| 174 | ISEVEN | Returns TRUE if a number is even. | 950 | 2 → |
| 175 | ISODD | Returns TRUE if a number is odd. | 950 | 2 → |
| 176 | MINUTE | Returns the minute from a time. | 950 | 2 → |
| 177 | QUOTIENT | Returns the integer part of a division, discarding the remainder. | 1050 | 3 → |
| 178 | CEILING | Rounds a number away from zero to the nearest multiple of significance; the older form kept for compatibility. | 1100 | 4 → |
| 179 | FLOOR | Rounds a number toward zero to the nearest multiple of significance; the older form kept for compatibility. | 1100 | 3 → |
| 180 | FORMULATEXT | Returns the formula in a cell as text. | 1100 | 2 → |
| 181 | ISERR | Returns TRUE for any error except #N/A. | 1100 | 2 → |
| 182 | ISFORMULA | Returns TRUE if a cell contains a formula. | 1100 | 2 → |
| 183 | ISOWEEKNUM | Returns the ISO week number, where weeks start on Monday. | 1100 | 2 → |
| 184 | N | Converts a value to a number: TRUE to 1, text and blanks to 0. | 1100 | 2 → |
| 185 | TIMEVALUE | Converts a time written as text into a time value. | 1100 | 2 → |
| 186 | RANK.AVG | Returns the rank of a number; ties get the average rank. | 1150 | 3 → |
| 187 | UNICHAR | Returns the Unicode character for a number. | 1150 | 2 → |
| 188 | EXP | Returns e raised to the given power. | 1200 | 2 → |
| 189 | IMAGE | Places an image from a URL into a cell. | 1200 | 3 → |
| 190 | LN | Returns the natural logarithm. | 1200 | 2 → |
| 191 | LOG | Returns the logarithm to a base you choose, base 10 by default. | 1200 | 3 → |
| 192 | LOG10 | Returns the base-10 logarithm. | 1200 | 2 → |
| 193 | TRANSLATE | Translates text from one language to another using Microsoft Translator. | 1200 | 3 → |
| 194 | CELL | Returns information about a cell, such as its address, format, or file path. | 1250 | 3 → |
| 195 | COMBIN | Returns the number of ways to choose k items from n, order not mattering. | 1250 | 3 → |
| 196 | GEOMEAN | Returns the geometric mean, the right average for growth rates. | 1250 | 3 → |
| 197 | LOOKUP | Approximate-match lookup in a sorted one-row or one-column range. | 1250 | 3 → |
| 198 | ADDRESS | Builds a cell address as text from row and column numbers. | 1300 | 3 → |
| 199 | COPILOT | Sends a prompt and optional cell context to Copilot and returns its answer into the grid. | 1300 | 3 → |
| 200 | INTERCEPT | Returns where the regression line crosses the y-axis. | 1300 | 3 → |
| 201 | NETWORKDAYS.INTL | Counts working days with a custom definition of the weekend. | 1300 | 3 → |
| 202 | PERCENTRANK.INC | Returns the percentile rank of a value within a list. | 1300 | 3 → |
| 203 | SLOPE | Returns the slope of the linear regression line through the points. | 1300 | 3 → |
| 204 | STDEVP | Calculates standard deviation of an entire population; replaced by STDEV.P. | 1200 | 3 → |
| 205 | TRIMMEAN | Returns the mean after excluding a percentage of the highest and lowest values. | 1300 | 3 → |
| 206 | VAR | Estimates variance from a sample; still widely typed but VAR.S is the current name. | 1200 | 3 → |
| 207 | VARP | Calculates variance of an entire population; replaced by VAR.P. | 1200 | 3 → |
| 208 | WORKDAY.INTL | Returns a date a number of working days away with a custom weekend. | 1300 | 3 → |
| 209 | DDB | Returns double-declining-balance depreciation for a period. | 1350 | 3 → |
| 210 | EFFECT | Returns the effective annual rate given a nominal rate and compounding periods. | 1350 | 3 → |
| 211 | PERCENTOF | Returns the percentage that a subset of data makes up of the whole; built for GROUPBY and PIVOTBY. | 1350 | 3 → |
| 212 | RRI | Returns the equivalent compound growth rate between two values, a CAGR. | 1350 | 3 → |
| 213 | RSQ | Returns the square of the correlation coefficient, the R-squared of a linear fit. | 1350 | 3 → |
| 214 | TRIMRANGE | Trims the empty outer rows and columns from a range so whole-column references stop dragging blanks along. | 1350 | 3 → |
| 215 | CONVERT | Converts a number between measurement units, like miles to kilometers. | 1200 | 3 → |
| 216 | NORM.DIST | Returns the normal distribution for a value. | 1400 | 3 → |
| 217 | NORM.S.DIST | Returns the standard normal distribution for a z-score. | 1400 | 3 → |
| 218 | NORM.S.INV | Returns the inverse of the standard normal cumulative distribution: the z-score for a probability. | 1400 | 2 → |
| 219 | STOCKHISTORY | Returns historical price data for a stock as an array. | 1400 | 3 → |
| 220 | NORM.INV | Returns the value for a given probability under a normal distribution. | 1450 | 3 → |
| 221 | NORMDIST | Returns the normal distribution; replaced by NORM.DIST. | 1350 | 3 → |
| 222 | NORMINV | Returns the inverse of the normal cumulative distribution; replaced by NORM.INV. | 1350 | 3 → |
| 223 | NORMSDIST | Returns the standard normal cumulative distribution; replaced by NORM.S.DIST. | 1350 | 2 → |
| 224 | NORMSINV | Returns the inverse of the standard normal cumulative distribution; replaced by NORM.S.INV. | 1350 | 2 → |
| 225 | CUMIPMT | Returns the cumulative interest paid between two periods. | 1500 | 3 → |
| 226 | CUMPRINC | Returns the cumulative principal paid between two periods. | 1500 | 3 → |
| 227 | FORECAST.ETS | Predicts a future value using exponential smoothing with seasonality. | 1500 | 3 → |
| 228 | MIRR | Returns a modified IRR that assumes a reinvestment rate. | 1500 | 3 → |
| 229 | MMULT | Returns the matrix product of two arrays; rows of the first must match columns of the second. | 1500 | 3 → |
| 230 | REGEXTEST | Tests whether text matches a regular expression. | 1500 | 3 → |
| 231 | PY | Runs Python code in a cell using Python in Excel, returning either a Python object or an Excel value. | 1550 | 3 → |
| 232 | REGEXEXTRACT | Extracts text matching a regular expression. | 1550 | 3 → |
| 233 | REGEXREPLACE | Replaces text matching a regular expression. | 1550 | 3 → |
| 234 | T.TEST | Returns the probability associated with a t-test comparing two samples. | 1550 | 3 → |
| 235 | LINEST | Returns the parameters of a linear regression as an array, with statistics on request. | 1600 | 3 → |
| 236 | CUBEVALUE | Returns an aggregated value from an OLAP cube or Power Pivot data model. | 1600 | 3 → |
| 237 | SECOND | Returns the second from a time. | 950 | 2 → |
| 238 | ARABIC | Converts a Roman numeral to an Arabic number. | 1000 | 2 → |
| 239 | DEGREES | Converts radians to degrees. | 1000 | 2 → |
| 240 | RADIANS | Converts degrees to radians. | 1000 | 2 → |
| 241 | ROMAN | Converts an Arabic number to Roman numerals as text. | 1000 | 2 → |
| 242 | EVEN | Rounds a number up to the nearest even integer. | 1050 | 2 → |
| 243 | FIXED | Formats a number as text with a fixed number of decimals. | 1050 | 2 → |
| 244 | ISLOGICAL | Returns TRUE if a value is TRUE or FALSE. | 1050 | 2 → |
| 245 | ISNONTEXT | Returns TRUE if a value is not text, blanks included. | 1050 | 2 → |
| 246 | ODD | Rounds a number up to the nearest odd integer. | 1050 | 2 → |
| 247 | COS | Returns the cosine of an angle in radians. | 1100 | 2 → |
| 248 | FACT | Returns the factorial of a number. | 1100 | 2 → |
| 249 | MINA | Returns the smallest value in a list, counting text as 0 and TRUE as 1. | 1100 | 2 → |
| 250 | SIN | Returns the sine of an angle in radians. | 1100 | 2 → |
| 251 | T | Returns the value if it is text, otherwise an empty string. | 1100 | 2 → |
| 252 | TAN | Returns the tangent of an angle in radians. | 1100 | 2 → |
| 253 | GCD | Returns the greatest common divisor of integers. | 1150 | 2 → |
| 254 | ISREF | Returns TRUE if a value is a reference. | 1150 | 2 → |
| 255 | LCM | Returns the least common multiple of integers. | 1150 | 2 → |
| 256 | SHEET | Returns the sheet number of a reference. | 1150 | 2 → |
| 257 | SHEETS | Returns the number of sheets in a reference or the workbook. | 1150 | 2 → |
| 258 | UNICODE | Returns the Unicode number of the first character. | 1150 | 2 → |
| 259 | AREAS | Returns the number of areas in a reference. | 1200 | 2 → |
| 260 | CEILING.PRECISE | Rounds a number up to the nearest multiple of significance, always toward positive infinity regardless of sign. | 1200 | 2 → |
| 261 | DAYS360 | Returns days between dates on a 360-day year, used in some interest calculations. | 1200 | 2 → |
| 262 | DETECTLANGUAGE | Returns the language code that a piece of text is written in. | 1200 | 2 → |
| 263 | FLOOR.PRECISE | Rounds a number down to the nearest multiple of significance, always toward negative infinity regardless of sign. | 1200 | 2 → |
| 264 | INFO | Returns information about the environment, such as the operating system or Excel version. | 1200 | 2 → |
| 265 | LEFTB | Returns the leftmost bytes of a text string, for double-byte languages. | 1200 | 2 → |
| 266 | LENB | Returns the number of bytes in a text string, for double-byte languages. | 1200 | 2 → |
| 267 | MIDB | Returns bytes from the middle of a text string, for double-byte languages. | 1200 | 2 → |
| 268 | RIGHTB | Returns the rightmost bytes of a text string, for double-byte languages. | 1200 | 2 → |
| 269 | SUMSQ | Returns the sum of the squares of the arguments. | 1200 | 2 → |
| 270 | TYPE | Returns a number for the type of value: 1 number, 2 text, 4 logical, 16 error, 64 array. | 1200 | 2 → |
| 271 | VALUETOTEXT | Returns any value as text. | 1200 | 2 → |
| 272 | XOR | Returns TRUE when an odd number of arguments are true. | 1200 | 2 → |
| 273 | ACOS | Returns the arccosine of a number, in radians. | 1250 | 2 → |
| 274 | ARRAYTOTEXT | Returns an array as a single text string. | 1250 | 2 → |
| 275 | ASIN | Returns the arcsine of a number, in radians. | 1250 | 2 → |
| 276 | ATAN | Returns the arctangent of a number, in radians. | 1250 | 2 → |
| 277 | BASE | Converts a number to text in another base, such as binary. | 1250 | 2 → |
| 278 | COT | Returns the cotangent of an angle given in radians. | 1250 | 2 → |
| 279 | CSC | Returns the cosecant of an angle given in radians. | 1250 | 2 → |
| 280 | DECIMAL | Converts text in a given base back to a decimal number. | 1250 | 2 → |
| 281 | ENCODEURL | Returns a URL-encoded version of text. | 1250 | 2 → |
| 282 | ERROR.TYPE | Returns a number identifying which error a value is. | 1250 | 2 → |
| 283 | FINDB | Finds one text string within another, counting bytes rather than characters, for double-byte languages. | 1250 | 2 → |
| 284 | ISO.CEILING | Rounds a number up to the nearest multiple of significance using the ISO rule, ignoring the sign of significance. | 1250 | 2 → |
| 285 | PERMUT | Returns the number of ordered arrangements of k items chosen from n. | 1250 | 2 → |
| 286 | REPLACEB | Replaces part of a text string by byte position, for double-byte languages. | 1250 | 2 → |
| 287 | SEARCHB | Finds one text string within another without case sensitivity, counting bytes for double-byte languages. | 1250 | 2 → |
| 288 | SEC | Returns the secant of an angle given in radians. | 1250 | 2 → |
| 289 | SQRTPI | Returns the square root of a number multiplied by pi. | 1250 | 2 → |
| 290 | STDEVA | Estimates sample standard deviation, counting text as 0 and TRUE as 1. | 1250 | 2 → |
| 291 | STDEVPA | Calculates population standard deviation, counting text as 0 and TRUE as 1. | 1250 | 2 → |
| 292 | VAR.P | Returns the variance of a population. | 1250 | 2 → |
| 293 | VARA | Estimates sample variance, counting text as 0 and TRUE as 1. | 1250 | 2 → |
| 294 | VARPA | Calculates population variance, counting text as 0 and TRUE as 1. | 1250 | 2 → |
| 295 | ASC | Converts full-width double-byte characters to half-width single-byte characters. | 1300 | 2 → |
| 296 | ATAN2 | Returns the angle from x and y coordinates. | 1300 | 2 → |
| 297 | AVEDEV | Returns the average of absolute deviations from the mean. | 1300 | 2 → |
| 298 | BAHTTEXT | Converts a number to Thai text and appends a baht suffix. | 1300 | 2 → |
| 299 | COMBINA | Returns the number of combinations with repetitions allowed. | 1300 | 2 → |
| 300 | COSH | Returns the hyperbolic cosine of a number. | 1300 | 2 → |
| 301 | DBCS | Converts half-width single-byte characters to full-width double-byte characters. | 1300 | 2 → |
| 302 | DEVSQ | Returns the sum of squared deviations from the mean. | 1300 | 2 → |
| 303 | FACTDOUBLE | Returns the double factorial of a number, the product of every other integer down to 1. | 1300 | 2 → |
| 304 | HARMEAN | Returns the harmonic mean. | 1300 | 2 → |
| 305 | JIS | Converts half-width characters to full-width characters in Japanese text. | 1300 | 2 → |
| 306 | MODE.MULT | Returns an array of the most frequent numbers when there are ties. | 1300 | 2 → |
| 307 | PEARSON | Returns the Pearson correlation coefficient; identical to CORREL. | 1300 | 2 → |
| 308 | PERCENTILE.EXC | Returns the value at a percentile, excluding 0 and 1. | 1300 | 2 → |
| 309 | QUARTILE.EXC | Returns a quartile of a data set based on percentile values from 0 to 1, exclusive. | 1300 | 2 → |
| 310 | SINH | Returns the hyperbolic sine of a number. | 1300 | 2 → |
| 311 | STANDARDIZE | Returns a z-score for a value. | 1300 | 2 → |
| 312 | TANH | Returns the hyperbolic tangent of a number. | 1300 | 2 → |
| 313 | ACOSH | Returns the inverse hyperbolic cosine of a number. | 1350 | 2 → |
| 314 | ACOT | Returns the arccotangent of a number, in radians. | 1350 | 2 → |
| 315 | ASINH | Returns the inverse hyperbolic sine of a number. | 1350 | 2 → |
| 316 | ATANH | Returns the inverse hyperbolic tangent of a number. | 1350 | 2 → |
| 317 | COTH | Returns the hyperbolic cotangent of a number. | 1350 | 2 → |
| 318 | CSCH | Returns the hyperbolic cosecant of a number. | 1350 | 2 → |
| 319 | DAVERAGE | Averages values in a table column that match criteria. | 1350 | 2 → |
| 320 | DB | Returns declining-balance depreciation for a period. | 1350 | 2 → |
| 321 | DCOUNT | Counts numeric cells in a table column that match criteria. | 1350 | 2 → |
| 322 | DCOUNTA | Counts non-blank cells in a table column that match criteria. | 1350 | 2 → |
| 323 | DMAX | Returns the largest value in a table column that matches criteria. | 1350 | 2 → |
| 324 | DMIN | Returns the smallest value in a table column that matches criteria. | 1350 | 2 → |
| 325 | DPRODUCT | Multiplies the values in a table column that match criteria. | 1350 | 2 → |
| 326 | DSUM | Adds values in a column of a table that match a criteria range. | 1350 | 2 → |
| 327 | NOMINAL | Returns the nominal annual rate given an effective rate. | 1350 | 2 → |
| 328 | PERCENTRANK.EXC | Returns the rank of a value as a percentage of the data set, excluding 0 and 1. | 1350 | 2 → |
| 329 | PERMUTATIONA | Returns the number of permutations with repetitions allowed. | 1350 | 2 → |
| 330 | PHONETIC | Extracts the furigana phonetic characters from a text string. | 1350 | 2 → |
| 331 | SECH | Returns the hyperbolic secant of a number. | 1350 | 2 → |
| 332 | SKEW | Returns the skewness of a distribution. | 1350 | 2 → |
| 333 | SYD | Returns sum-of-years-digits depreciation for a period. | 1350 | 2 → |
| 334 | ACOTH | Returns the inverse hyperbolic cotangent of a number. | 1400 | 2 → |
| 335 | BIN2DEC | Converts a binary number to decimal. | 1200 | 2 → |
| 336 | COVARIANCE.P | Returns population covariance, the average of products of deviations for each pair of data points. | 1400 | 2 → |
| 337 | COVARIANCE.S | Returns the sample covariance of two data sets. | 1400 | 2 → |
| 338 | DEC2BIN | Converts a decimal number to binary. | 1200 | 2 → |
| 339 | DEC2HEX | Converts a decimal number to hexadecimal. | 1200 | 2 → |
| 340 | DELTA | Returns 1 if two numbers are equal and 0 otherwise. | 1200 | 2 → |
| 341 | DGET | Returns the single value from a table that matches criteria, erroring if there is more than one. | 1400 | 2 → |
| 342 | DOLLARDE | Converts a price quoted as a fraction, like 1.02 for 1 and 2/16, into a decimal. | 1400 | 2 → |
| 343 | DOLLARFR | Converts a decimal price into a fractional quote, like 1.125 into 1.02 for sixteenths. | 1400 | 2 → |
| 344 | DSTDEV | Estimates the sample standard deviation of table values that match criteria. | 1400 | 2 → |
| 345 | DSTDEVP | Calculates the population standard deviation of table values that match criteria. | 1400 | 2 → |
| 346 | DVAR | Estimates the sample variance of table values that match criteria. | 1400 | 2 → |
| 347 | DVARP | Calculates the population variance of table values that match criteria. | 1400 | 2 → |
| 348 | FVSCHEDULE | Returns the future value after applying a series of different rates. | 1400 | 2 → |
| 349 | GROWTH | Returns values along an exponential trend fitted to the data. | 1400 | 2 → |
| 350 | HEX2DEC | Converts a hexadecimal number to decimal. | 1200 | 2 → |
| 351 | ISPMT | Returns the interest paid during a specific period of an investment with equal principal payments. | 1400 | 2 → |
| 352 | KURT | Returns the kurtosis of a distribution. | 1400 | 2 → |
| 353 | MULTINOMIAL | Returns the multinomial of a set of numbers: the factorial of the sum divided by the product of the factorials. | 1400 | 2 → |
| 354 | MUNIT | Returns the identity matrix of a given size. | 1400 | 2 → |
| 355 | PDURATION | Returns the number of periods for an investment to reach a value. | 1400 | 2 → |
| 356 | PERCENTRANK | Returns the percentage rank of a value in a data set; replaced by PERCENTRANK.INC. | 1300 | 2 → |
| 357 | PROB | Returns the probability that values in a range fall between two limits. | 1400 | 2 → |
| 358 | SKEW.P | Returns the skewness of a distribution based on a whole population. | 1400 | 2 → |
| 359 | SUMX2MY2 | Returns the sum of the difference of squares of corresponding values in two arrays. | 1400 | 2 → |
| 360 | SUMX2PY2 | Returns the sum of the sum of squares of corresponding values in two arrays. | 1400 | 2 → |
| 361 | SUMXMY2 | Returns the sum of squares of differences of corresponding values in two arrays. | 1400 | 2 → |
| 362 | WEBSERVICE | Returns data from a web service URL as text. | 1400 | 2 → |
| 363 | BIN2HEX | Converts a binary number to hexadecimal. | 1250 | 2 → |
| 364 | BIN2OCT | Converts a binary number to octal. | 1250 | 2 → |
| 365 | BINOM.DIST | Returns the binomial distribution probability. | 1450 | 2 → |
| 366 | CONFIDENCE.T | Returns the confidence interval for a population mean using a Student t distribution. | 1450 | 2 → |
| 367 | COVAR | Returns population covariance; replaced by COVARIANCE.P. | 1350 | 2 → |
| 368 | DEC2OCT | Converts a decimal number to octal. | 1250 | 2 → |
| 369 | EXPON.DIST | Returns the exponential distribution. | 1450 | 2 → |
| 370 | FISHER | Returns the Fisher transformation of a value. | 1450 | 2 → |
| 371 | FISHERINV | Returns the inverse of the Fisher transformation. | 1450 | 2 → |
| 372 | GAUSS | Returns the probability that a standard normal value falls between the mean and z standard deviations from it. | 1450 | 2 → |
| 373 | GESTEP | Returns 1 if a number is greater than or equal to a threshold and 0 otherwise. | 1250 | 2 → |
| 374 | HEX2BIN | Converts a hexadecimal number to binary. | 1250 | 2 → |
| 375 | HEX2OCT | Converts a hexadecimal number to octal. | 1250 | 2 → |
| 376 | MDETERM | Returns the determinant of a square matrix. | 1450 | 2 → |
| 377 | OCT2BIN | Converts an octal number to binary. | 1250 | 2 → |
| 378 | OCT2DEC | Converts an octal number to decimal. | 1250 | 2 → |
| 379 | OCT2HEX | Converts an octal number to hexadecimal. | 1250 | 2 → |
| 380 | PHI | Returns the value of the standard normal density function at x. | 1450 | 2 → |
| 381 | POISSON.DIST | Returns the Poisson distribution probability. | 1450 | 2 → |
| 382 | ACCRINTM | Returns the accrued interest for a security that pays interest at maturity. | 1500 | 2 → |
| 383 | BINOM.DIST.RANGE | Returns the probability of a trial result falling in a range using the binomial distribution. | 1500 | 2 → |
| 384 | BINOM.INV | Returns the smallest value for which the cumulative binomial distribution is at least the criterion. | 1500 | 2 → |
| 385 | BINOMDIST | Returns the binomial distribution probability; replaced by BINOM.DIST. | 1400 | 2 → |
| 386 | CHISQ.DIST | Returns the left-tailed chi-squared distribution. | 1500 | 2 → |
| 387 | CHISQ.DIST.RT | Returns the right-tailed probability of the chi-squared distribution. | 1500 | 2 → |
| 388 | CHISQ.INV | Returns the inverse of the left-tailed chi-squared distribution. | 1500 | 2 → |
| 389 | CHISQ.INV.RT | Returns the inverse of the right-tailed chi-squared distribution. | 1500 | 2 → |
| 390 | CONFIDENCE | Returns the confidence interval for a population mean using a normal distribution; replaced by CONFIDENCE.NORM. | 1400 | 2 → |
| 391 | CONFIDENCE.NORM | Returns the margin of a confidence interval for a population mean. | 1500 | 2 → |
| 392 | DISC | Returns the discount rate for a security. | 1500 | 2 → |
| 393 | EXPONDIST | Returns the exponential distribution; replaced by EXPON.DIST. | 1400 | 2 → |
| 394 | F.TEST | Returns the result of an F-test: the two-tailed probability that the variances of two arrays are not significantly different. | 1500 | 2 → |
| 395 | FILTERXML | Returns data from XML text using an XPath query. | 1500 | 2 → |
| 396 | FORECAST.ETS.SEASONALITY | Returns the length of the repeating pattern Excel detects in a time series. | 1500 | 2 → |
| 397 | GAMMA | Returns the gamma function value. | 1500 | 2 → |
| 398 | GAMMALN | Returns the natural logarithm of the gamma function. | 1500 | 2 → |
| 399 | GAMMALN.PRECISE | Returns the natural logarithm of the gamma function with improved precision. | 1500 | 2 → |
| 400 | INTRATE | Returns the interest rate for a fully invested security. | 1500 | 2 → |
| 401 | LOGNORM.DIST | Returns the lognormal distribution. | 1500 | 2 → |
| 402 | LOGNORM.INV | Returns the inverse of the lognormal cumulative distribution. | 1500 | 2 → |
| 403 | MINVERSE | Returns the inverse of a square matrix as an array. | 1500 | 2 → |
| 404 | POISSON | Returns the Poisson distribution; replaced by POISSON.DIST. | 1400 | 2 → |
| 405 | RECEIVED | Returns the amount received at maturity for a fully invested security. | 1500 | 2 → |
| 406 | RTD | Retrieves real-time data from a COM automation server, like a market data feed. | 1500 | 2 → |
| 407 | SERIESSUM | Returns the sum of a power series based on a formula. | 1500 | 2 → |
| 408 | STEYX | Returns the standard error of the predicted y for each x in a regression. | 1500 | 2 → |
| 409 | T.DIST | Returns the left-tailed Student t distribution. | 1500 | 2 → |
| 410 | T.DIST.2T | Returns the two-tailed Student t distribution. | 1500 | 2 → |
| 411 | T.DIST.RT | Returns the right-tailed Student t distribution. | 1500 | 2 → |
| 412 | T.INV | Returns the left-tailed inverse of the Student t distribution. | 1500 | 2 → |
| 413 | T.INV.2T | Returns the two-tailed inverse of the Student t distribution: the critical t for a confidence level. | 1500 | 2 → |
| 414 | TBILLEQ | Returns the bond-equivalent yield for a Treasury bill. | 1500 | 2 → |
| 415 | TBILLPRICE | Returns the price per 100 face value for a Treasury bill. | 1500 | 2 → |
| 416 | TBILLYIELD | Returns the yield for a Treasury bill. | 1500 | 2 → |
| 417 | VDB | Returns depreciation for any partial period using the variable declining balance method. | 1500 | 2 → |
| 418 | BETA.DIST | Returns the beta distribution, often used to model proportions between 0 and 1. | 1550 | 2 → |
| 419 | BETA.INV | Returns the inverse of the cumulative beta distribution. | 1550 | 2 → |
| 420 | BITAND | Returns the bitwise AND of two numbers. | 1350 | 2 → |
| 421 | BITLSHIFT | Returns a number shifted left by the specified number of bits. | 1350 | 2 → |
| 422 | BITOR | Returns the bitwise OR of two numbers. | 1350 | 2 → |
| 423 | BITRSHIFT | Returns a number shifted right by the specified number of bits. | 1350 | 2 → |
| 424 | BITXOR | Returns the bitwise exclusive OR of two numbers. | 1350 | 2 → |
| 425 | CHIDIST | Returns the right-tailed chi-squared probability; replaced by CHISQ.DIST.RT. | 1450 | 2 → |
| 426 | CHIINV | Returns the inverse of the right-tailed chi-squared probability; replaced by CHISQ.INV.RT. | 1450 | 2 → |
| 427 | CHISQ.TEST | Returns the p-value of a chi-squared test of independence. | 1550 | 2 → |
| 428 | CHITEST | Returns the chi-squared test for independence; replaced by CHISQ.TEST. | 1450 | 2 → |
| 429 | COUPDAYBS | Returns the number of days from the start of the coupon period to the settlement date. | 1550 | 2 → |
| 430 | COUPDAYS | Returns the number of days in the coupon period that contains the settlement date. | 1550 | 2 → |
| 431 | COUPDAYSNC | Returns the number of days from the settlement date to the next coupon date. | 1550 | 2 → |
| 432 | COUPNCD | Returns the next coupon date after settlement. | 1550 | 2 → |
| 433 | COUPNUM | Returns the number of coupons payable between settlement and maturity. | 1550 | 2 → |
| 434 | COUPPCD | Returns the previous coupon date before settlement. | 1550 | 2 → |
| 435 | CRITBINOM | Returns the smallest value for which the cumulative binomial distribution meets a criterion; replaced by BINOM.INV. | 1450 | 2 → |
| 436 | DURATION | Returns the Macaulay duration of a bond with periodic interest payments. | 1550 | 2 → |
| 437 | F.DIST | Returns the left-tailed F probability distribution. | 1550 | 2 → |
| 438 | F.DIST.RT | Returns the right-tailed F probability distribution. | 1550 | 2 → |
| 439 | F.INV | Returns the inverse of the left-tailed F probability distribution. | 1550 | 2 → |
| 440 | F.INV.RT | Returns the inverse of the right-tailed F probability distribution. | 1550 | 2 → |
| 441 | FORECAST.ETS.CONFINT | Returns a confidence interval for a forecast value at a target date using exponential smoothing. | 1550 | 2 → |
| 442 | FORECAST.ETS.STAT | Returns a statistical value from an exponential smoothing forecast, like the smoothing parameters or error measures. | 1550 | 2 → |
| 443 | FTEST | Returns the result of an F-test; replaced by F.TEST. | 1450 | 2 → |
| 444 | GAMMA.DIST | Returns the gamma distribution. | 1550 | 2 → |
| 445 | GAMMA.INV | Returns the inverse of the gamma cumulative distribution. | 1550 | 2 → |
| 446 | HYPGEOM.DIST | Returns the hypergeometric distribution: the probability of a given number of successes when sampling without replacement. | 1550 | 2 → |
| 447 | LOGEST | Returns the parameters of an exponential curve fitted to data, as an array. | 1550 | 2 → |
| 448 | LOGINV | Returns the inverse of the lognormal cumulative distribution; replaced by LOGNORM.INV. | 1450 | 2 → |
| 449 | LOGNORMDIST | Returns the cumulative lognormal distribution; replaced by LOGNORM.DIST. | 1450 | 2 → |
| 450 | MDURATION | Returns the modified duration of a security with an assumed par value of 100. | 1550 | 2 → |
| 451 | NEGBINOM.DIST | Returns the negative binomial distribution: the probability of a number of failures before a given number of successes. | 1550 | 2 → |
| 452 | PRICEDISC | Returns the price per 100 face value of a discounted security. | 1550 | 2 → |
| 453 | PRICEMAT | Returns the price per 100 face value of a security that pays interest at maturity. | 1550 | 2 → |
| 454 | TDIST | Returns the Student t distribution; replaced by T.DIST, T.DIST.RT, and T.DIST.2T. | 1450 | 2 → |
| 455 | TINV | Returns the two-tailed inverse of the Student t distribution; replaced by T.INV.2T. | 1450 | 2 → |
| 456 | TTEST | Returns the probability from a Student t-test; replaced by T.TEST. | 1450 | 2 → |
| 457 | WEIBULL.DIST | Returns the Weibull distribution, common in reliability and failure-time analysis. | 1550 | 2 → |
| 458 | YIELDDISC | Returns the annual yield for a discounted security, like a zero-coupon bond. | 1550 | 2 → |
| 459 | YIELDMAT | Returns the annual yield of a security that pays interest at maturity. | 1550 | 2 → |
| 460 | Z.TEST | Returns the one-tailed p-value of a z-test. | 1550 | 2 → |
| 461 | ZTEST | Returns the one-tailed probability of a z-test; replaced by Z.TEST. | 1450 | 2 → |
| 462 | AMORDEGRC | Returns depreciation for each accounting period using the French degressive method with a coefficient. | 1600 | 2 → |
| 463 | AMORLINC | Returns prorated linear depreciation for each accounting period under the French system. | 1600 | 2 → |
| 464 | BETADIST | Returns the cumulative beta distribution; replaced by BETA.DIST. | 1500 | 2 → |
| 465 | BETAINV | Returns the inverse of the cumulative beta distribution; replaced by BETA.INV. | 1500 | 2 → |
| 466 | COMPLEX | Builds a complex number from real and imaginary coefficients. | 1400 | 2 → |
| 467 | FDIST | Returns the right-tailed F probability distribution; replaced by F.DIST.RT. | 1500 | 2 → |
| 468 | FINV | Returns the inverse of the right-tailed F distribution; replaced by F.INV.RT. | 1500 | 2 → |
| 469 | GAMMADIST | Returns the gamma distribution; replaced by GAMMA.DIST. | 1500 | 2 → |
| 470 | GAMMAINV | Returns the inverse of the gamma cumulative distribution; replaced by GAMMA.INV. | 1500 | 2 → |
| 471 | HYPGEOMDIST | Returns the hypergeometric distribution; replaced by HYPGEOM.DIST. | 1500 | 2 → |
| 472 | IMAGINARY | Returns the imaginary coefficient of a complex number. | 1400 | 2 → |
| 473 | IMREAL | Returns the real coefficient of a complex number. | 1400 | 2 → |
| 474 | NEGBINOMDIST | Returns the negative binomial distribution; replaced by NEGBINOM.DIST. | 1500 | 2 → |
| 475 | WEIBULL | Returns the Weibull distribution; replaced by WEIBULL.DIST. | 1500 | 2 → |
| 476 | ACCRINT | Returns accrued interest for a security that pays periodic interest. | 1650 | 2 → |
| 477 | IMABS | Returns the absolute value, or modulus, of a complex number. | 1450 | 2 → |
| 478 | IMCONJUGATE | Returns the complex conjugate of a complex number. | 1450 | 2 → |
| 479 | IMSUB | Returns the difference of two complex numbers. | 1450 | 2 → |
| 480 | IMSUM | Returns the sum of complex numbers. | 1450 | 2 → |
| 481 | ODDFPRICE | Returns the price per 100 face value of a security with an odd first period. | 1650 | 2 → |
| 482 | ODDFYIELD | Returns the yield of a security with an odd first period. | 1650 | 2 → |
| 483 | ODDLPRICE | Returns the price per 100 face value of a security with an odd last period. | 1650 | 2 → |
| 484 | ODDLYIELD | Returns the yield of a security with an odd last period. | 1650 | 2 → |
| 485 | PRICE | Returns the price per $100 face value of a bond. | 1650 | 2 → |
| 486 | YIELD | Returns the yield of a bond from its price. | 1650 | 2 → |
| 487 | ERF | Returns the error function. | 1500 | 2 → |
| 488 | ERF.PRECISE | Returns the error function integrated from 0 to x. | 1500 | 2 → |
| 489 | ERFC | Returns the complementary error function integrated from x to infinity. | 1500 | 2 → |
| 490 | ERFC.PRECISE | Returns the complementary error function with improved precision. | 1500 | 2 → |
| 491 | IMARGUMENT | Returns the argument theta of a complex number, an angle in radians. | 1500 | 2 → |
| 492 | IMCOS | Returns the cosine of a complex number. | 1500 | 2 → |
| 493 | IMDIV | Returns the quotient of two complex numbers. | 1500 | 2 → |
| 494 | IMEXP | Returns the exponential of a complex number. | 1500 | 2 → |
| 495 | IMLN | Returns the natural logarithm of a complex number. | 1500 | 2 → |
| 496 | IMLOG10 | Returns the base-10 logarithm of a complex number. | 1500 | 2 → |
| 497 | IMLOG2 | Returns the base-2 logarithm of a complex number. | 1500 | 2 → |
| 498 | IMPOWER | Returns a complex number raised to an integer power. | 1500 | 2 → |
| 499 | IMPRODUCT | Returns the product of complex numbers. | 1500 | 2 → |
| 500 | IMSIN | Returns the sine of a complex number. | 1500 | 2 → |
| 501 | IMSQRT | Returns the square root of a complex number. | 1500 | 2 → |
| 502 | IMTAN | Returns the tangent of a complex number. | 1500 | 2 → |
| 503 | ISOMITTED | Tests whether an optional LAMBDA parameter was left out. | 1750 | 2 → |
| 504 | IMCOSH | Returns the hyperbolic cosine of a complex number. | 1550 | 2 → |
| 505 | IMCOT | Returns the cotangent of a complex number. | 1550 | 2 → |
| 506 | IMCSC | Returns the cosecant of a complex number. | 1550 | 2 → |
| 507 | IMCSCH | Returns the hyperbolic cosecant of a complex number. | 1550 | 2 → |
| 508 | IMSEC | Returns the secant of a complex number. | 1550 | 2 → |
| 509 | IMSECH | Returns the hyperbolic secant of a complex number. | 1550 | 2 → |
| 510 | IMSINH | Returns the hyperbolic sine of a complex number. | 1550 | 2 → |
| 511 | BESSELI | Returns the modified Bessel function In(x). | 1600 | 2 → |
| 512 | BESSELJ | Returns the Bessel function Jn(x). | 1600 | 2 → |
| 513 | BESSELK | Returns the modified Bessel function Kn(x). | 1600 | 2 → |
| 514 | BESSELY | Returns the Bessel function Yn(x). | 1600 | 2 → |
| 515 | CUBEMEMBER | Returns a member or tuple from an OLAP cube, validating that it exists. | 1600 | 2 → |
| 516 | CUBESETCOUNT | Returns the number of items in a cube set. | 1600 | 2 → |
| 517 | CUBEKPIMEMBER | Returns a key performance indicator property from an OLAP cube and shows its name in the cell. | 1650 | 2 → |
| 518 | CUBEMEMBERPROPERTY | Returns the value of a member property from an OLAP cube. | 1650 | 2 → |
| 519 | CUBERANKEDMEMBER | Returns the nth member of a set from an OLAP cube, like the top-selling product. | 1650 | 2 → |
| 520 | CUBESET | Defines a calculated set of members from an OLAP cube and sends it to the server. | 1650 | 2 → |
Shortcuts · 120
Windows keys; the catalog page has the Mac equivalent.
| # | Topic | What it does | Difficulty | Practice |
|---|---|---|---|---|
| 1 | Ctrl + B | Bold | 750 | 2 → |
| 2 | Ctrl + C | Copy | 750 | 2 → |
| 3 | Ctrl + X | Cut | 750 | 2 → |
| 4 | Ctrl + V | Paste | 750 | 2 → |
| 5 | Ctrl + S | Save | 700 | 2 → |
| 6 | Ctrl + Z | Undo | 750 | 2 → |
| 7 | Esc | Cancel the entry or exit edit mode | 800 | 2 → |
| 8 | Delete | Clear the contents of the selection | 800 | 2 → |
| 9 | Enter | Confirm the entry and move down | 800 | 4 → |
| 10 | Tab | Move one cell to the right | 800 | 3 → |
| 11 | F2 | Edit the active cell | 850 | 2 → |
| 12 | Ctrl + F | Open Find | 850 | 2 → |
| 13 | Ctrl + A | Select the current region, then the whole sheet on a second press | 850 | 3 → |
| 14 | Ctrl + D | Fill down from the top cell of the selection | 900 | 4 → |
| 15 | Alt + = | Insert an AutoSum formula | 900 | 3 → |
| 16 | Ctrl + ; | Insert today's date as a fixed value | 900 | 3 → |
| 17 | Ctrl + Arrow | Jump to the edge of the current data region | 900 | 2 → |
| 18 | Ctrl + H | Open Find and Replace | 900 | 2 → |
| 19 | Ctrl + 1 | Open the Format Cells dialog | 900 | 3 → |
| 20 | Alt + Enter | Start a new line inside the cell | 900 | 2 → |
| 21 | Ctrl + T | Create a Table from the selection | 950 | 2 → |
| 22 | Ctrl + Shift + Arrow | Extend the selection to the edge of the data region | 950 | 2 → |
| 23 | F4 | Toggle absolute and relative references while editing | 950 | 2 → |
| 24 | Ctrl + Shift + L | Toggle AutoFilter | 950 | 3 → |
| 25 | Ctrl + I | Italic | 750 | 2 → |
| 26 | Ctrl + N | New workbook | 750 | 2 → |
| 27 | Ctrl + O | Open a workbook | 750 | 2 → |
| 28 | Ctrl + P | 800 | 2 → | |
| 29 | Shift + Arrow | Extend the selection by one cell | 850 | 2 → |
| 30 | Ctrl + Y (or F4) | Redo, or repeat the last action | 850 | 2 → |
| 31 | Ctrl + R | Fill right from the left cell of the selection | 900 | 2 → |
| 32 | Ctrl + Home | Go to cell A1 | 900 | 2 → |
| 33 | Ctrl + Page Down | Move to the next worksheet | 900 | 2 → |
| 34 | Ctrl + Page Up | Move to the previous worksheet | 900 | 2 → |
| 35 | Alt | Show ribbon key tips | 900 | 2 → |
| 36 | Ctrl + - | Delete cells, rows, or columns | 950 | 2 → |
| 37 | Ctrl + Shift + + | Insert cells, rows, or columns | 950 | 2 → |
| 38 | Ctrl + Space | Select the entire column | 950 | 3 → |
| 39 | Shift + Space | Select the entire row | 950 | 2 → |
| 40 | Ctrl + Enter | Fill every selected cell with the same entry | 1000 | 2 → |
| 41 | Ctrl + Alt + V | Open Paste Special | 1000 | 2 → |
| 42 | Alt + ↓ | Open the filter dropdown or an in-cell list | 1000 | 2 → |
| 43 | Ctrl + Shift + V | Paste values only (newer versions) | 1000 | 2 → |
| 44 | Alt, H, O, I | AutoFit column width | 1050 | 2 → |
| 45 | Ctrl + E | Flash Fill: complete a pattern from adjacent data | 1050 | 3 → |
| 46 | Alt, N, V | Insert a pivot table | 1050 | 2 → |
| 47 | F9 | Recalculate all open workbooks, or evaluate a selected part of a formula | 1050 | 2 → |
| 48 | Ctrl + U | Underline | 750 | 2 → |
| 49 | Alt + F4 | Close Excel | 800 | 2 → |
| 50 | Ctrl + W | Close the workbook | 850 | 2 → |
| 51 | Shift + Tab | Move one cell to the left | 850 | 2 → |
| 52 | F12 | Save As | 850 | 2 → |
| 53 | Ctrl + End | Go to the last used cell on the sheet | 950 | 2 → |
| 54 | Ctrl + K | Insert a hyperlink | 950 | 2 → |
| 55 | Shift + F11 | Insert a new worksheet | 950 | 2 → |
| 56 | Ctrl + Shift + ; | Insert the current time as a fixed value | 950 | 2 → |
| 57 | Ctrl + Tab | Switch to the next open workbook | 950 | 2 → |
| 58 | Ctrl + Shift + $ | Apply currency format with two decimals | 1000 | 2 → |
| 59 | Ctrl + Shift + ! | Apply number format with two decimals and thousands separators | 1000 | 2 → |
| 60 | Ctrl + Shift + % | Apply percentage format with no decimals | 1000 | 2 → |
| 61 | Ctrl + Shift + End | Extend the selection to the last used cell | 1000 | 2 → |
| 62 | Ctrl + 0 | Hide the selected columns | 1000 | 2 → |
| 63 | Ctrl + 9 | Hide the selected rows | 1000 | 2 → |
| 64 | Alt + F1 | Insert a default chart on the current sheet | 1000 | 2 → |
| 65 | Ctrl + G (or F5) | Open the Go To dialog | 1000 | 2 → |
| 66 | Ctrl + ` | Show formulas instead of values in all cells | 1000 | 3 → |
| 67 | Alt, H, W | Toggle wrap text | 1000 | 2 → |
| 68 | Alt, W, F, F | Freeze panes at the active cell | 1050 | 2 → |
| 69 | Ctrl + F3 | Open Name Manager | 1050 | 2 → |
| 70 | Alt + F8 | Open the Macros dialog | 1050 | 2 → |
| 71 | Alt + F11 | Open the VBA editor | 1050 | 2 → |
| 72 | Ctrl + Alt + F5 | Refresh all data connections and pivot tables | 1050 | 2 → |
| 73 | Alt + F5 | Refresh the active pivot table | 1050 | 2 → |
| 74 | Alt + Shift + → | Group the selected rows or columns | 1100 | 2 → |
| 75 | Alt, A, V, V | Open Data Validation | 1100 | 2 → |
| 76 | Alt, A, M | Remove duplicates | 1100 | 2 → |
| 77 | Alt, A, E | Text to Columns | 1100 | 2 → |
| 78 | Alt + ; | Select only the visible cells in the selection | 1150 | 2 → |
| 79 | Ctrl + Shift + Enter | Enter an array formula (legacy Excel) | 1250 | 2 → |
| 80 | Shift + Enter | Confirm the entry and move up | 900 | 2 → |
| 81 | Ctrl + F2 | Print preview | 900 | 2 → |
| 82 | Ctrl + F1 | Collapse or expand the ribbon | 950 | 2 → |
| 83 | Shift + F3 | Open the Insert Function dialog | 950 | 2 → |
| 84 | Ctrl + 5 | Toggle strikethrough | 950 | 2 → |
| 85 | Alt, H, A, C | Center the cell contents | 1000 | 2 → |
| 86 | Ctrl + Shift + U | Expand or collapse the formula bar | 1000 | 2 → |
| 87 | Ctrl + Shift + Home | Extend the selection to A1 | 1000 | 2 → |
| 88 | F11 | Insert a default chart on a new chart sheet | 1000 | 2 → |
| 89 | Shift + F2 | Insert or edit a cell comment or note | 1000 | 2 → |
| 90 | Alt + Page Down | Scroll one screen to the right | 1000 | 2 → |
| 91 | Ctrl + Shift + & | Add an outline border | 1050 | 2 → |
| 92 | Ctrl + Shift + # | Apply date format | 1050 | 2 → |
| 93 | Ctrl + Shift + ~ | Apply General format | 1050 | 2 → |
| 94 | Alt, H, H | Open the fill color menu | 1050 | 2 → |
| 95 | Alt, A, S, S | Open the Sort dialog | 1050 | 2 → |
| 96 | Ctrl + Shift + _ | Remove all borders | 1050 | 2 → |
| 97 | Ctrl + Backspace | Scroll back to the active cell | 1050 | 2 → |
| 98 | Ctrl + Shift + * | Select the current region around the active cell | 1050 | 2 → |
| 99 | Ctrl + Shift + 9 | Unhide rows in the selection | 1050 | 2 → |
| 100 | Alt, H, L | Open the conditional formatting menu | 1100 | 2 → |
| 101 | Shift + F9 | Recalculate the active sheet only | 1100 | 2 → |
| 102 | Alt + Shift + ← | Ungroup the selected rows or columns | 1100 | 2 → |
| 103 | Ctrl + ' | Copy the formula from the cell above without adjusting references | 1150 | 2 → |
| 104 | Ctrl + Shift + " | Copy the value from the cell above | 1150 | 2 → |
| 105 | Alt, M, D | Trace dependents | 1150 | 2 → |
| 106 | Alt, M, P | Trace precedents | 1150 | 2 → |
| 107 | Alt, M, V | Evaluate Formula step by step | 1200 | 2 → |
| 108 | Alt, A, P, T | Open Power Query from a table or range | 1200 | 2 → |
| 109 | Ctrl + ] | Select the cells that refer to this one (dependents) | 1200 | 2 → |
| 110 | Ctrl + [ | Select the cells this formula refers to (precedents) | 1200 | 2 → |
| 111 | F7 | Spell check | 950 | 2 → |
| 112 | Ctrl + F6 | Switch to the next workbook window | 1000 | 2 → |
| 113 | F6 | Cycle between the sheet, ribbon, and task panes | 1100 | 2 → |
| 114 | F3 | Paste a defined name into a formula | 1100 | 2 → |
| 115 | Alt, W, S | Split the window at the active cell | 1100 | 2 → |
| 116 | Shift + F8 | Add another range to the selection without the mouse | 1150 | 2 → |
| 117 | Ctrl + Shift + F3 | Create names from the selection's labels | 1150 | 2 → |
| 118 | Ctrl + Shift + A | Insert argument names after typing a function name | 1150 | 2 → |
| 119 | Ctrl + Shift + * | Select the entire pivot table | 1150 | 2 → |
| 120 | Alt + Shift + → | Expand a pivot field | 1200 | 2 → |
Pivot tables · 40
The features, from the first pivot to calculated fields.
| # | Topic | What it does | Difficulty | Practice |
|---|---|---|---|---|
| 1 | Creating a pivot table | Summarizes a table of rows into totals by any combination of fields, without formulas. | 950 | 5 → |
| 2 | Refreshing | Re-reads the source data; pivots do not update on their own. | 950 | 2 → |
| 3 | The four areas | Rows and Columns define the grid, Values are what gets summarized, Filters limit the whole table. | 950 | 2 → |
| 4 | Changing the summary function | Switches a value field between Sum, Count, Average, Max, Min, and others. | 1000 | 2 → |
| 5 | Grouping dates | Rolls daily dates up into months, quarters, and years. | 1100 | 2 → |
| 6 | Slicers | Clickable buttons that filter one or more pivots at once and show what is filtered. | 1100 | 2 → |
| 7 | The fields pane | The panel where fields are dragged into areas; it disappears when the pivot is not selected. | 900 | 2 → |
| 8 | Drilling to details | Shows the source rows behind any total. | 1000 | 2 → |
| 9 | Multiple value fields | Shows several summaries side by side, like Sum of Revenue and Count of Orders. | 1000 | 2 → |
| 10 | Report filters | Limits the entire pivot to chosen items of a field placed in the Filters area. | 1000 | 2 → |
| 11 | Sorting a pivot | Orders row or column items by label or by their values. | 1000 | 2 → |
| 12 | Subtotals and grand totals | Turns the automatic subtotal rows and grand total row and column on or off. | 1000 | 2 → |
| 13 | Changing the data source | Points the pivot at a bigger or different range when the source grows. | 1050 | 2 → |
| 14 | Number formatting a value field | Formats every cell of a value field at once, and the format survives refresh. | 1050 | 2 → |
| 15 | Report layout: compact, outline, tabular | Controls whether nested row fields stack in one column (compact) or spread across columns (outline, tabular). | 1100 | 2 → |
| 16 | Source data shape | Pivots need one header row and one record per row: no merged cells, no subtotals, no blank header cells. | 1150 | 2 → |
| 17 | Show Values As | Displays a value field as a percentage of the total, running total, difference from, or rank instead of the raw number. | 1250 | 2 → |
| 18 | Pivot charts | A chart wired to the pivot that changes as you filter, group, or rearrange it. | 1100 | 2 → |
| 19 | Preserving formatting on refresh | Keeps column widths and cell formats from resetting every time you refresh. | 1100 | 2 → |
| 20 | Repeat item labels | Fills the row labels on every row instead of only the first of each group, so the output can be used as flat data. | 1100 | 2 → |
| 21 | Label and value filters | Filters row items by their name (contains, begins with) or by their totals (top 10, greater than). | 1150 | 2 → |
| 22 | Timelines | A slicer built for dates that lets you pick years, quarters, months, or days by dragging. | 1150 | 2 → |
| 23 | Top 10 filter | Shows only the largest or smallest N items, or the items that make up a percentage of the total. | 1150 | 2 → |
| 24 | Flattening a pivot to a table | Turns pivot output into a plain table that formulas can reference. | 1200 | 2 → |
| 25 | Grouping numbers into bins | Turns a numeric field into ranges like 0-99, 100-199. | 1200 | 2 → |
| 26 | Calculated fields | Adds a new value field computed from other fields with a formula, like Revenue minus Cost. | 1300 | 2 → |
| 27 | GETPIVOTDATA | A formula that pulls a specific value out of a pivot and keeps pulling the right one when the pivot moves. | 1300 | 2 → |
| 28 | Distinct count | Counts unique values in a field, such as how many customers ordered. | 1350 | 2 → |
| 29 | Recommended PivotTables | Excel suggests layouts for your data. | 900 | 2 → |
| 30 | Blank and error display | Controls what shows in empty cells and error cells of the pivot. | 1050 | 2 → |
| 31 | Removing automatic date grouping | Stops Excel splitting dates into Years, Quarters, and Months automatically. | 1150 | 2 → |
| 32 | Values in rows versus columns | Controls whether multiple value fields sit side by side or stacked. | 1150 | 2 → |
| 33 | Conditional formatting in a pivot | Data bars or color scales that apply to all cells of a value field and survive refresh. | 1200 | 2 → |
| 34 | Manual grouping | Combines chosen items into a custom group, like three regions into one territory. | 1200 | 2 → |
| 35 | The pivot cache | A copy of the source data that the pivot reads from, shared by pivots built from the same source. | 1300 | 2 → |
| 36 | Pivots on external data | Builds a pivot straight from a database, another workbook, or a Power Query result. | 1400 | 2 → |
| 37 | The Data Model | Lets a pivot use several related tables at once and unlocks measures written in DAX. | 1450 | 2 → |
| 38 | DAX measures | Formulas that calculate correctly at any level of the pivot, like a true average or a year-over-year change. | 1550 | 2 → |
| 39 | Defer layout update | Stops the pivot recalculating after every drag when the source is large. | 1150 | 2 → |
| 40 | Calculated items | Adds a new row or column item computed from other items of the same field, like Q1 plus Q2. | 1400 | 2 → |
VBA · 72
The language, not the macros — those are on the VBA snippets page.
| # | Topic | What it does | Difficulty | Practice |
|---|---|---|---|---|
| 1 | Macro-enabled workbooks | Macros only survive in .xlsm (or .xlsb) files; saving as .xlsx strips them. | 900 | 2 → |
| 2 | MsgBox | Shows a message and optionally asks Yes/No. | 900 | 2 → |
| 3 | Declaring variables with Dim | Declares a variable and its type before use. | 950 | 2 → |
| 4 | If ... Then ... Else | Runs code when a condition is true, with optional ElseIf and Else branches. | 950 | 2 → |
| 5 | Range | Refers to a cell or block by address, name, or as an intersection. | 950 | 2 → |
| 6 | Recording a macro | Excel writes the code for whatever you do, a good way to learn object names. | 950 | 2 → |
| 7 | Sub procedures | A block of code that performs actions and returns nothing; every macro is a Sub. | 950 | 2 → |
| 8 | The VBA editor | Where macros are written and run; opened with Alt + F11. | 950 | 2 → |
| 9 | Cells(row, column) | Refers to a cell by numbers, which makes looping easy. | 1000 | 1 → |
| 10 | For ... Next | Repeats a block a set number of times with a counter. | 1000 | 2 → |
| 11 | For Each ... Next | Loops over every item in a collection: cells in a range, sheets in a workbook. | 1050 | 2 → |
| 12 | Set for objects | Object variables (ranges, sheets, workbooks) must be assigned with Set. | 1050 | 2 → |
| 13 | Application.ScreenUpdating | Stops the screen redrawing while code runs, a large speedup for anything that touches many cells. | 1100 | 2 → |
| 14 | Finding the last row | The standard way to find the last used row in a column, mimicking Ctrl + Up from the bottom. | 1150 | 2 → |
| 15 | Comments | An apostrophe starts a comment that VBA ignores. | 850 | 1 → |
| 16 | Assigning a macro to a button | Runs a macro from a shape or form control on the sheet. | 950 | 2 → |
| 17 | Clear methods | ClearContents removes values, ClearFormats removes formatting, Clear removes both. | 950 | 2 → |
| 18 | InputBox | Asks the user to type a value. | 950 | 2 → |
| 19 | String concatenation | Ampersand joins text; & is safer than + because + tries to add numbers. | 950 | 2 → |
| 20 | Breakpoints and stepping | Pause code at a line (F9) and run it one line at a time (F8) while watching variables. | 1050 | 2 → |
| 21 | Copy and PasteSpecial | Copies a range and pastes values, formats, or formulas. | 1050 | 2 → |
| 22 | Data types | Long for whole numbers, Double for decimals, String for text, Boolean for True/False, Date, Variant for anything. | 1050 | 2 → |
| 23 | Debug.Print and the Immediate window | Writes values to the Immediate window (Ctrl + G) while code runs. | 1050 | 2 → |
| 24 | Option Explicit | Forces every variable to be declared, so typos become errors instead of silent new variables. | 1050 | 1 → |
| 25 | Avoiding Select and Activate | Working with ranges directly is faster and more reliable than selecting them first. | 1100 | 2 → |
| 26 | Do ... Loop | Repeats while or until a condition holds, when you do not know the count in advance. | 1100 | 2 → |
| 27 | With ... End With | Runs several statements against one object without repeating its name. | 1100 | 2 → |
| 28 | Worksheets collection | Refers to sheets by name or index; the code name (in the editor) is stable even if the tab is renamed. | 1100 | 2 → |
| 29 | Application.Calculation | Switches to manual calculation during a macro so formulas do not recalculate after every write. | 1150 | 2 → |
| 30 | Function procedures | A block of code that returns a value, usable from other code or as a custom worksheet function. | 1150 | 2 → |
| 31 | ThisWorkbook vs ActiveWorkbook | ThisWorkbook is the file the code lives in; ActiveWorkbook is whichever one is in front. | 1150 | 2 → |
| 32 | WorksheetFunction | Calls Excel functions like SUM, VLOOKUP, or MAX from VBA. | 1150 | 2 → |
| 33 | The object model | Application contains Workbooks, which contain Worksheets, which contain Ranges; you drill down with dots. | 1200 | 2 → |
| 34 | On Error handling | Decides what happens when a runtime error occurs: jump to a handler, or ignore and continue. | 1250 | 2 → |
| 35 | ActiveCell and Selection | The cell the cursor is on and whatever is selected; recorded macros lean on them, good code avoids them. | 1000 | 2 → |
| 36 | Constants | A named value that cannot change, for settings used in many places. | 1000 | 2 → |
| 37 | Macro security | Files from the internet are blocked from running macros until unblocked in file properties or trusted. | 1000 | 2 → |
| 38 | Compile errors | Mistakes caught before running, like a missing End If; Debug > Compile finds them all at once. | 1050 | 2 → |
| 39 | Exit For, Exit Do, Exit Sub | Leaves a loop or procedure early. | 1050 | 1 → |
| 40 | CurrentRegion | The block of data around a cell, bounded by blank rows and columns, like Ctrl + A once. | 1100 | 2 → |
| 41 | Format | Formats a number or date as text, like TEXT in a sheet. | 1100 | 2 → |
| 42 | Offset | A range a number of rows and columns away from another. | 1100 | 2 → |
| 43 | String functions | Left, Right, Mid, Len, Trim, UCase, Replace, InStr, Split: the VBA versions of the text functions. | 1100 | 2 → |
| 44 | UsedRange | Every cell the sheet considers used, including formatted empties. | 1100 | 2 → |
| 45 | Assigning values without copying | Setting one range's Value from another is faster than Copy and Paste. | 1150 | 2 → |
| 46 | Date functions | Date, Now, DateAdd, DateDiff, DateSerial for date math in code. | 1150 | 2 → |
| 47 | Select Case | Chooses between many branches based on one value; cleaner than a long ElseIf chain. | 1150 | 2 → |
| 48 | Variant | A catch-all type that holds anything, including arrays and ranges of values; slower and easier to misuse. | 1150 | 2 → |
| 49 | AutoFilter in code | Applies a filter to a range from code. | 1200 | 2 → |
| 50 | Modules, sheet modules, and class modules | Standard modules hold macros; sheet and ThisWorkbook modules hold events; class modules define objects. | 1200 | 2 → |
| 51 | Sorting in code | Sorts a range by a key column. | 1200 | 2 → |
| 52 | The Err object | Holds the number and description of the last error. | 1200 | 2 → |
| 53 | Workbook_Open | Runs when the file opens; used for setup or reminders. | 1200 | 2 → |
| 54 | Find | Searches a range for a value and returns the first matching cell, or Nothing. | 1250 | 2 → |
| 55 | User-defined worksheet functions | A Function in a standard module can be used in cells like any built-in function. | 1250 | 2 → |
| 56 | Variable scope | Dim inside a procedure is local; Private or Public at the top of a module is module-level or global. | 1250 | 2 → |
| 57 | Arrays | A variable holding many values, indexed by number; reading a range into an array is much faster than cell by cell. | 1300 | 2 → |
| 58 | Worksheet and workbook events | Code that runs automatically when something happens, like a cell changing or the workbook opening. | 1350 | 2 → |
| 59 | Processing in arrays | Read a range into an array, loop in memory, write it back once; far faster than cell-by-cell loops. | 1400 | 2 → |
| 60 | Line continuation | A space and underscore lets a statement continue on the next line. | 1000 | 2 → |
| 61 | Watches and Locals | Windows that show the current value of variables while paused. | 1100 | 1 → |
| 62 | GoTo | Jumps to a label; used almost only with On Error. | 1150 | 1 → |
| 63 | Resize | A range with the same top-left cell but a new size. | 1200 | 2 → |
| 64 | Value, Value2, Text | Value returns the cell value (dates as Date), Value2 the raw number, Text what is displayed. | 1250 | 1 → |
| 65 | Application.InputBox for ranges | An InputBox that lets the user select a range with the mouse. | 1300 | 2 → |
| 66 | Optional arguments | Parameters a caller can leave out, with a default value. | 1300 | 2 → |
| 67 | ByVal and ByRef | ByRef (the default) lets a procedure change the caller's variable; ByVal passes a copy. | 1350 | 2 → |
| 68 | ReDim | Resizes a dynamic array; Preserve keeps the existing values. | 1350 | 2 → |
| 69 | Application.EnableEvents | Turns event handling off so a Change event that writes to the sheet does not trigger itself forever. | 1400 | 2 → |
| 70 | UserForms | Custom dialog boxes with text boxes, dropdowns, and buttons. | 1400 | 1 → |
| 71 | Collection and Dictionary | Containers for lists and key-value pairs; Dictionary (Scripting.Dictionary) gives fast lookups by key. | 1450 | 2 → |
| 72 | Static variables | A local variable that keeps its value between calls. | 1300 | 2 → |
Concepts · 26
The things that aren't one function: errors, references, dates, tables.
| # | Topic | What it does | Difficulty | Practice |
|---|---|---|---|---|
| 1 | Error values | Each error tells you what went wrong: #N/A not found, #REF! deleted reference, #NAME? unknown name, #VALUE! wrong type, #DIV/0! divided by zero, #NUM! bad number, #SPILL! blocked array, ##### too narrow. | 1000 | 21 → |
| 2 | Relative, absolute, and mixed references | A1 shifts when copied; $A$1 never moves; A$1 locks the row and $A1 locks the column. | 1000 | 5 → |
| 3 | Numbers stored as text | Text that looks like a number is skipped by SUM and sorts wrongly; a green triangle flags it. | 1050 | 2 → |
| 4 | How dates and times work | A date is a serial day count from January 1, 1900; a time is a fraction of a day. Formatting only changes the display. | 1050 | 6 → |
| 5 | Excel Tables | A range converted with Ctrl + T that auto-expands, keeps formats and formulas consistent, and lets formulas use column names. | 1050 | 1 → |
| 6 | Pivot tables | A drag-and-drop summary of raw rows by any fields, with no formulas. | 1050 | 0 → |
| 7 | Choosing a lookup function | VLOOKUP looks right only and breaks when columns move; INDEX/MATCH looks anywhere; XLOOKUP does both with exact match by default. | 1250 | 0 → |
| 8 | File types | xlsx has no macros, xlsm keeps them, xlsb is compact binary, csv is plain text with values only. | 900 | 2 → |
| 9 | Number formats and custom formats | Formats change how a value displays, not what it is. Custom codes handle thousands, decimals, percent, dates, and conditional colors. | 1000 | 5 → |
| 10 | Data validation | Restricts what a cell accepts: a list, a number range, a date, or a custom formula. | 1000 | 1 → |
| 11 | Data tools | Text to Columns, Remove Duplicates, Flash Fill, Sort, Filter, and Goal Seek handle most cleanup without formulas. | 1000 | 5 → |
| 12 | Conditional formatting | Cell appearance driven by rules: value ranges, top/bottom, duplicates, data bars, or a formula. | 1050 | 0 → |
| 13 | Charts | Visuals bound to ranges or tables; combo, waterfall, and pivot charts cover most reporting. | 1050 | 1 → |
| 14 | Order of operations | Excel evaluates parentheses, then percent, then exponents, then multiply and divide, then add and subtract, then & and comparisons. A leading minus binds tighter than ^. | 1100 | 11 → |
| 15 | Error handling in formulas | IFERROR catches every error, IFNA only #N/A; catching too much hides real bugs. | 1100 | 0 → |
| 16 | Criteria strings | COUNTIF-family criteria are text: ">10", "<>West", "app*". Comparisons against cells are built with &. | 1150 | 0 → |
| 17 | Dynamic arrays and spilling | A formula that returns several values writes them into neighboring cells automatically; A1# refers to the whole spill. | 1300 | 4 → |
| 18 | Power Query | A tool for importing and reshaping data with recorded, repeatable steps. | 1300 | 1 → |
| 19 | Named ranges | A readable name for a cell or range, used in formulas and as list sources. | 1050 | 1 → |
| 20 | Protecting sheets and workbooks | Locks cells against editing and hides formulas once the sheet is protected. | 1100 | 1 → |
| 21 | Formula auditing | Tools that show what feeds a formula, what depends on it, and how it evaluates step by step. | 1150 | 3 → |
| 22 | Precision and display | 15 significant digits are stored; display rounding does not change the value, ROUND does. | 1150 | 1 → |
| 23 | What-If Analysis | Goal Seek changes one input to hit a target; Data Tables show a formula across many inputs; Scenario Manager stores sets of inputs. | 1250 | 1 → |
| 24 | Calculation and performance | Volatile functions, whole-column array math, and too many lookups slow recalculation. | 1350 | 0 → |
| 25 | Boolean math and SUMPRODUCT | Comparisons return TRUE/FALSE; multiplying or double-negating turns them into 1/0 so they can be summed. | 1450 | 1 → |
| 26 | LET and LAMBDA | LET names intermediate values inside a formula; LAMBDA defines a reusable custom function without VBA. | 1600 | 0 → |
Learn the moves here — or let Wauvel run them on your numbers.
Meet your AI CFO →One CFO-grade Excel tip a week
A short, practical email for finance operators — functions, shortcuts, and the moves that save an afternoon. Free, unsubscribe anytime.