The Math.max[]
function returns the largest of the numbers given as input parameters, or -Infinity
if there are no parameters.Try it
Syntax
Math.max[]
Math.max[value0]
Math.max[value0, value1]
Math.max[value0, value1, /* … ,*/ valueN]
Parameters
value1
, value2
, … , valueN
Zero or more numbers among which the largest value will be selected and returned.
Return value
The largest of the given numbers. Returns NaN
if any of the parameters is or is converted into NaN
. Returns
-Infinity
if no parameters are provided.
Description
Because max[]
is a static method of Math
, you always use it as
Math.max[]
, rather than as a method of a Math
object you created [Math
is not a constructor].
Math.max.length
is 2, which weakly signals that it's designed to handle at least two parameters.
Examples
Using Math.max[]
Math.max[10, 20]; // 20
Math.max[-10, -20]; // -10
Math.max[-10, 20]; // 20
Getting the maximum element of an array
Array.prototype.reduce[]
can be used to find the maximum element in a numeric array, by comparing each value:
const arr = [1, 2, 3];
const max = arr.reduce[[a, b] => Math.max[a, b], -Infinity];
The following function uses Function.prototype.apply[]
to get the maximum of an array. getMaxOfArray[[1, 2, 3]]
is equivalent to Math.max[1, 2, 3]
, but you can use getMaxOfArray[]
on programmatically constructed arrays. This should only be used for arrays with relatively few elements.
function getMaxOfArray[numArray] {
return Math.max.apply[null, numArray];
}
The spread syntax is a shorter way of writing the apply
solution to get the maximum of an array:
const arr = [1, 2, 3];
const max = Math.max[...arr];
However, both spread [...
] and apply
will either fail or return the wrong result if the array has too many elements,
because they try to pass the array elements as function parameters. See Using apply and built-in functions for more details. The reduce
solution does not have this problem.
Specifications
ECMAScript Language Specification # sec-math.max |
Browser compatibility
BCD tables only load in the browser
See also
MIN and MAX with Criteria
In Excel 2019, or Excel for Office 365, you can use the MINIFS and MAXIFS functions, shown below, to find a minimum value, or maximum value, based on one or more criteria.
For earlier versions of Excel, the MINIFS and MAXIFS functions are not available, so you can use the MIN IF Formula or the MAXIFS Function shown below.
MINIFS Function
Use the MINIFS function to find the lowest number, based on one or more criteria.
MINIFS has 3 required arguments in its syntax:
- min_range: The range where the minimum value will be found
- range1: The first range to check for a criterion
- criteria1: The first criterion
MINIFS - One Criterion
For example, this formula [for Excel 365] finds the minimum quantity for the product name in cell B6.
- =MINIFS[tblProdCust[Qty], tblProdCust[Product], B4#]
There's a spill formula in cell B4 to create a unique list of products. The MINIFS formula has a spill operator [#] at the end of that cell reference -- B4# -- so the MINIFS results spill down too.
Excel 2019: Spill formulas are not available in Excel 2019. In that version, refer to cell B4, without the spill operator, and copy the formula down manually.
- =MINIFS[tblProdCust[Qty], tblProdCust[Product], B4]
MINIFS - Two Criteria
To use two or more criteria with MINIFS, use the optional arguments for additional criteria ranges and criteria.
MINIFS has optional pairs of arguments in its syntax, for criteria ranges and criteria:
- range1 to range126: optional ranges to check for a criterion
- criteria1 to criteria126: optional criteria, for the matching criteria ranges
For example, this formula [for Excel 365] finds the minimum quantity for the customer selected in cell C3, and the product name in cell B6.
- =MINIFS[tblProdCust[Qty], tblProdCust[Product], B6#, tblProdCust[Cust], $C$3]
There's a spill formula in cell B6 to create a unique list of products. The MINIFS formula refers to that cell with the spill operator -- B6# -- so the MINIFS results spill down too.
Excel 2019: Spill formulas are not available in Excel 2019. In that version, refer to cell B6, without the spill operator, and copy the formula down manually.
- =MINIFS[tblProdCust[Qty], tblProdCust[Product], B6, tblProdCust[Cust], $C$3]
MAXIFS Function
In Excel 2019, or Excel for Office 365, you can use the MAXIFS function to find a maximum value, based on one or more criteria. For earlier versions of Excel, use the MAXIFS Function shown below.
MAXIFS has 3 required arguments in its syntax:
- max_range: The range where the maximum value will be found
- range1: The first range to check for a criterion
- criteria1: The first criterion
MAXIFS - One Criterion
MAXIFS has optional pairs of arguments in its syntax, for criteria ranges and criteria:
- range1 to range126: optional ranges to check for a criterion
- criteria1 to criteria126: optional criteria, for the matching criteria ranges
For example, this formula [for Excel 365] finds the maximum quantity for the product name in cell B6.
- =MAXIFS[tblProdCust[Qty], tblProdCust[Product], B4#]
There's a spill formula in cell B6 to create a unique list of products. The MAXIFS formula has a spill operator [#] at the end of that cell reference -- B4# -- so the MAXIFS results spill down too.
Excel 2019: Spill formulas are not available in Excel 2019. In that version, refer to cell B4, without the spill operator, and copy the formula down manually.
- =MAXIFS[tblProdCust[Qty], tblProdCust[Product], B4]
MAXIFS - Two Criteria
To use two or more criteria witn MAXIFS, use the optional arguments for additional criteria ranges and criteria.
For example, this formula [for Excel 365] finds the maximum quantity for the customer selected in cell C3, and the product name in cell B6.
- =MAXIFS[tblProdCust[Qty], tblProdCust[Product], B6#, tblProdCust[Cust], $C$3]
There's a spill formula in cell B6 to create a unique list of products. The MAXIFS formula refers to that cell with the spill operator -- B6# -- so the MAXIFS results spill down too.
Excel 2019: Spill formulas are not available in Excel 2019. In that version, refer to cell B6, without the spill operator, and copy the formula down manually.
- =MAXIFS[tblProdCust[Qty], tblProdCust[Product], B6, tblProdCust[Cust], $C$3]
MIN IF Formula
Although Excel has a SUMIF function and a COUNTIF function, there is no MINIF function. To create your own MINIF, you can combine the MIN and IF functions in an array formula.
In this example, we'll find the lowest value for a specific product in a sales list with multiple products. The formula will be entered in cell D2, then copied down to D5.
First, enter the MIN and IF functions, and their opening brackets:
- =MIN[IF[
Next, select the product names in the sales list, and press the F4 key, to lock the reference.
- =MIN[IF[$G$2:$G$17
Type an equal sign, and click on the cell with the product name criteria. This reference will not be locked.
- =MIN[IF[$G$2:$G$17=C2
Type a comma, then select the quantity cells in the sales list. Press the F4 key, to lock this reference.
- =MIN[IF[$G$2:$G$17=C2,$H$2:$H$17
To finish the formula, type two closing brackets, and then press Ctrl+Shift+Enter to array-enter the formula.
- =MIN[IF[$G$2:$G$17=C2,$H$2:$H$17]]
In the formula in the Formula Bar, shown above, you can see that curly brackets were automatically added at the start and end of the formula, because it was array-entered.
If you don't see those curly brackets, you pressed Enter, instead of Ctrl + Shift + Enter. To fix it, click somewhere in the formula bar, and press Ctrl + Shift + Enter.
Then, copy the formula down, to the rows below, to see the minumum for each of the products.
MAX IF Formula
Although Excel has a SUMIF function and a COUNTIF function, there is no MAXIF function. To create your own MAXIF, you can combine the MAX and IF functions in an array formula.
In this example, we'll find the highest value for a specific product in a sales list with multiple products.
First, enter the MAX and IF functions, and their opening brackets:
- =MAX[IF[
Next, select the product names in the sales list, and press the F4 key, to lock the reference.
- =MAX[IF[$G$2:$G$17
Type an equal sign, and click on the cell with the product name criteria. This reference will not be locked.
- =MAX[IF[$G$2:$G$17=C2
Type a comma, then select the quantity cells in the sales list. Press the F4 key, to lock this reference.
- =MAX[IF[$G$2:$G$17=C2,$H$2:$H$17
To finish the formula, type two closing brackets, and then press Ctrl+Shift+Enter to array-enter the formula.
- =MAX[IF[$G$2:$G$17=C2,$H$2:$H$17]]
In the formula in the Formula Bar, shown above, you can see that curly brackets were automatically added at the start and end of the formula, because it was array-entered.
If you don't see those curly brackets, you pressed Enter, instead of Ctrl + Shift + Enter. To fix it, click somewhere in the formula bar, and press Ctrl + Shift + Enter.
Then, copy the formula down, to the rows below, to see the minumum for each of the products.
MAX IF With Multiple Criteria
In the previous example, we found the highest quantity for a specific product, so there was just one criterion -- the product name.
You can also use the MAX IF technique with multiple criteria, by including additional IF functions in the formula. For example, if the data includes a customer name, we could find the highest quantity for each product, for a specific customer.
The customer name is entered in cell D1. In cells C4:C7, the product names are listed.
Enter the following formula in cell D4, and array-enter it, by pressing Ctrl+Shift+Enter. Then, copy the formula down to cell D7.
- =MAX[IF[$H$2:$H$17=C4,IF[$I$2:$I$17=$D$1,$J$2:$J$17]]]
- The formula checks column H for product names that match the entry in cell C4.
- Then, it checks column I for customer names that match the name in cell D1.
- For those rows, it finds the highest amount in column J.
Get Latest Product Price
If you have a list of product prices and dates, you can use a formula to find the latest pricing date for a specific product:
- MAXIFS [Excel 365 or Excel 2019]
- MAX/IF [earlier versions]
Then, use SUMIFS or SUMPRODUCT to get the price for that product, on that date.
Latest Price with MAXIFS Function
In Excel 2019, or Excel for Office 365, you can use this MAXIFS formula, to find the latest price.
In this example, there is a price table with product, customer, date and price.
You could use two formulas in the solution - one to find the latest price, and one to find the price for that date.
This formula in C4 returns the latest date for the selected product and customer:
- =MAXIFS[tblPrice[Date], tblPrice[Product], A4, tblPrice[Cust], B4]
Next, this formula in cell D4 returns the price for that date, and the selected product and customer:
- =SUMIFS[tblPrice[Price], tblPrice[Product],A4, tblPrice[Cust],B4, tblPrice[Date],C4]
Or, use this all-in-one formula, in cell D6, to find the price for the latest date:
- =SUMIFS[tblPrice[Price], tblPrice[Product], A4, tblPrice[Cust], B4, tblPrice[Date], MAXIFS[tblPrice[Date], tblPrice[Product], A4, tblPrice[Cust], B4]]
Latest Price with MAX/IF Formula
In this example, there is a price list with product, date and price.
To find the latest price for a specific product, start by using MAX and IF, to get the latest date for that product. The product name -- Pens -- is entered in cell A12.
To find the latest pricing date for that product, enter the following formula in cell B12, and press Ctrl + Shift + Enter:
- =MAX[IF[$A$2:$A$9=A12, $B$2:$B$9]]
Next, to find the price for that product, on that date, enter the following SUMIFS formula in cell C12:
- =SUMIFS[$C$2:$C$9, $A$2:$A$9,A12, $B$2:$B$9,B12]
The SUMIFS function is available in Excel 2007, and later versions. For earlier versions of Excel, you can use the SUMPRODUCT function:
- =SUMPRODUCT[[$A$2:$A$9=A12] *[$B$2:$B$9=B12] *[$C$2:$C$9]]
MIN IF and MAX IF with a Pivot Table
With some data, an easy way to find the lowest and highest values for a specific item, is to use a pivot table. It automatically creates a list of all the items, and you can show amounts as Min or Max.
This video shows the steps, and there are written instructions below the video.
Pivot Table MIN IF and MAX IF
In the screen shot below, the TotalPrice field has been added twice to the values area. In one column, the pivot field's summary function has been changed to MIN and in the other column it was changed to MAX.
From this pivot table, you can quickly see the minimum and maximum amounts based on a product name. For example:
- MIN IF Bran - 48.62
- MAX IF Pretzels - 97.65
Pivot Table MINIFS and MAXIFS
With a pivot table, you can also see minimum and maximum abounts based on multiple criteria -- like the Excel's new MINIFS and MAXIFS functions. For example:
- MINIFS East, Bars - 20
- MAXIFS West, Snacks - 114
Pull MIN and MAX from Pivot Table
If you need to use the Min and Max values from a pivot table in other formulas, use the GetPivotData Function. This video shows how to use the GetPivotData function, and there are written instructions below the video.
Get MINIFS and MAXIFS with GETPIVOTDATA
To pull values from a pivot table, use the GetPivotData Function. In this example, you can select a region name in cell A4, and a category name in cell B4.
This formula is in cell C4, to pull the minimum quantity for the selected region and category:
- =GETPIVOTDATA["Min Qty",$A$7, "Region",A4, "Category",B4]
This formula is in cell D4, to pull the maximum quantity for the selected region and category:
- =GETPIVOTDATA["Max Qty",$A$7, "Region",A4, "Category",B4]