Here’s an overview of a matrix in Excel and the functions that create inverse matrices.
Download the Practice Workbook
What Does an Inverse Matrix Mean in Excel?
A matrix’s inverse, represented as A-1, has the following characteristics:
A * A^-1 = A^-1 * A = I,
The Identity Matrix I is a square matrix with ones on its major diagonal and zeroes everywhere else.
How to Calculate an Inverse Matrix in Excel: 3 Simple Methods
Method 1 – Using the MINVERSE Function to Calculate an Inverse Matrix in Excel
Case 1.1 – Calculate the Inverse Matrix of a 2×2 Matrix
We have a 2-by-2 matrix (2×2) in the dataset range C6:D7.
- Insert the following formula in a new cell and hit Enter.
=MINVERSE(C6:D7)
- For older versions of Excel, you have to press Ctrl + Shift + Enter instead of Enter because it’s an array formula.
Case 1.2 – Calculate the Inverse Matrix of a 3×3 Matrix
- We put the matrix in C6:E8.
- Apply the following formula:
=MINVERSE(C6:E8)
Case 1.3 – Calculate the Inverse Matrix of a 4×4 Matrix
- If the matrix is in C6:F9, use the following formula a few rows below.
=MINVERSE(C6:F9)
Method 2 – Using a Manual Formula to Determine the Inverse Matrix
We will calculate the Adjoint Matrix and then divide it by the Determinant of the Matrix to get the Inverse.
- We put the matrix in C6:E8 (3×3 matrix).
- Apply the following formula in a cell to get the Adjoint Matrix. We put it in B11.
=MINVERSE(C6:E8) * (MDETERM(C6:E8) *(-1) ^ (ROW() + COLUMN()))
- Insert the following formula next to the new matrix to get the Determinant. We used the cell E11.
=MDETERM(C6:E8)
- Use the following formula in a cell to get the desired inverse matrix:
=B11#/E11
The values here are used from the cells we set for the Adjoint Matrix and the Determinant, respectively. Since the B11 cell contains a range of values that is displayed over a 3×3 array, the result is a similar 3×3 matrix.
Method 3 – Creating a VBA User-Defined Function to Find the Inverse Matrix in Excel
- Open the VBA Window and Insert a New Module. Follow the link if you don’t know the way already.
- Use the following code in a new module.
Code:
Function inverseMatrixA(rng As Range) As Variant
Dim matrix() As Variant
Dim inverse() As Variant
Dim size As Integer
Dim i As Integer, j As Integer
Dim app As Object
size = rng.rows.Count
ReDim matrix(1 To size, 1 To size)
ReDim inverse(1 To size, 1 To size)
' Convert the range values to a 2D array
matrix = rng.Value
' Create an instance of the Excel Application object
Set app = CreateObject("Excel.Application")
' Disable alerts and screen updating to speed up the calculation
app.DisplayAlerts = False
app.ScreenUpdating = False
' Use the MINVERSE function of the Excel Application object to calculate the inverse
inverse = app.WorksheetFunction.MInverse(matrix)
' Enable alerts and screen updating
app.DisplayAlerts = True
app.ScreenUpdating = True
' Clean up and release the Excel Application object
Set app = Nothing
' Return the inverse matrix
inverseMatrixA = inverse
End Function
Code Breakdown:
- The function takes a range (rng) as input and declares variables for the matrices, size, and loop counters.
- The size of the matrix is determined by the number of rows in the input range.
- Arrays (matrix and inverse) are initialized with the appropriate dimensions based on the matrix size.
- The values of the input range are assigned to the matrix array.
- An instance of the Excel Application object (app) is created.
- Alerts and screen updating in Excel are disabled to improve performance.
- The MINVERSE function of the Excel Application object is used to calculate the inverse matrix, and the result is assigned to the inverse array.
- Alerts and screen updating in Excel are enabled again.
- The Excel Application object is released by setting it to Nothing.
- The function returns the inverse matrix as the output.
- Save the file.
- Use the created custom function in the worksheet to get the inverse matrix.
=inverseMatrixA(C6:E8)
How to Do Inverse Matrix Multiplication to Find an Identity Matrix in Excel?
We will multiply a matrix with its inverse matrix to get the Identity Matrix.
- Create a dataset with a matrix in C6:E8.
- Find its inverse matrix in C13:E15 by following one of the methods above.
- Use the MMULT function to get the identity matrix:
=MMULT(C6:E8,C13:E15)
Frequently Asked Questions
What happens if the matrix cannot be inverted?
When using the MINVERSE function in Excel to try to find the inverse of a non-invertible matrix, an error such as #VALUE! or #NUM! will appear. A matrix with a determinant of 0 or which isn’t a square matrix doesn’t have an inverse.
Is it possible to locate the inverse matrix in Excel using VBA?
The calculations required to find the inverse matrix can be done by a VBA MInverse function. The function accepts a matrix as an argument, runs the necessary computations, and outputs the inverse matrix.
Is the inverse matrix unique?
Every invertible matrix has a unique inverse matrix. The inverse’s matrix inverse is the original matrix.
Things to Remember
- Save the workbook as a .xlsm file after inserting any VBA code.
- Be careful about using absolute and normal cell references.
- Only a square matrix is a valid input for an Inverse Matrix.