Excel for Windows (Desktop Application)
Welcome to the Excel for Windows (Desktop Application) feedback forum! This is the place for users to send us suggestions and ideas on how to improve. If you think you have found a bug, please send us feedback inapp instead! To do so, please click “File”, then “Feedback”, then “Send a Frown” in Excel. This way, we will get detailed information that will help us better diagnose the problem.
To help us build the best version of Excel ever, we have partnered with UserVoice, a thirdparty service, to create this site to hear your suggestions and ideas for the next version of Excel. Your use of the portal and your submission is subject to the UserVoice Terms of Service & Privacy Policy, including the license terms. Please do not send any novel or patentable ideas, copyrighted materials, samples or demos for which you do not want to grant a license to Microsoft.

Add a Split dynamic array function
Add a dynamic array function to split apart a delimited range. See attached file for an example.
201 votes 
SUMCOLS and SUMROWS functions for Dynamic Arrays
Create new functions that SUM each column in a dynamic array (SUMCOLS(Ref#)) to produce a row of totals, and SUM each row to produce a column of totals (SUMROWS(Ref#))
Also COUNTCOLS, COUNTROWS, AVERAGECOLS, AVERAGEROWS, but these are less important than SUMCOLS & SUMROWS.
235 votes 
Translate XLOOKUP and XMATCH to PROCX and CORRESPX in Portuguese
That's it: PROCX and CORRESPX in Portuguese versions of Excel to keep the same standard of the other functions.
🇧🇷🇵🇹🇦🇴🇲🇿🇨🇻
310 votesThanks for posting this issue and up voting it! I’ve passed this along to our localization team. – Joe McDaid

SUBSTITUTES function supporting arrays of "find" and "replace" parameters
From time to time, users need to remove multiple characters from a string. For example, you might want to remove all punctuation, or all accented characters.
Right now, you have to do that with a lengthy nested formula using the SUBSTITUTE function. Such formulas are hard to read and challenging for a novice to debug. Or you could write a VBA userdefined function that performs each of the substitutions for you.
The better approach would be a SUBSTITUTES function that works like SUBSTITUTE but accepts an array (or range of cells) for the Find parameter, and possibly also for the…
92 votes 
Release XLOOKUP to the world!
Why only release to 15 percent of users?! Let the world have XLOOKUP and XMATCH now()!
174 votes 
Allow UNIQUE() to operate on a rectangular range, returning all unique values
The new Dynamic Array function UNIQUE is awesome. It can return all of the unique items in a column or in a row. But it would be nice if the second argument could accept a 3 to indicate cellbycell.
For example, see the screenshot below.68 votes 
"Excel found a problem with one or more formula references"  Please tell me where!
One of my least favorite messages that Excel provides is:
"Excel found a problem with one or more formula references in this worksheet. Check that the cell references, range names, defined names, and links to other workbooks in your formulas are all correct."
But I can never find the bad references. It's usually buried somewhere very deep, in a chart series formula, or in a name definition, or who knows where else.
If Excel finds a problem, please Excel, tell us where it is.
209 votes 
Please create a FILTERJSON (FILTROJSON) worksheet function
Hi. How about creating a FILTERJSON function? It would make our life easier allowing us to get JSON data with less workarounds.
Oi. Que tal criarem uma função de planilha FILTROJSON? Tornaria a nossa vida mais fácil nos permitindo obter dados em formato JSON com menos soluções alternativas.
🇺🇸 English: FILTERXML > FILTERJSON
🇨🇿 Czech: FILTERXML > FILTERJSON
🇩🇰 Danish: FILTRERXML > FILTRERJSON
🇳🇱 Dutch: XML.FILTEREN > JSON.FILTEREN
🇫🇮 Finnish: SUODATA.XML > SUODATA.JSON
🇫🇷 French: FILTRE.XML > FILTRE.JSON
🇩🇪 German: XMLFILTERN > JSONFILTERN
🇬🇷 Greek: FILTERXML > FILTERJSON
🇭🇺 Hungarian: XMLSZŰRÉS > JSONSZŰRÉS
🇮🇹 Italian: FILTRO.XML > FILTRO.JSON
🇳🇴 Norwegian:…80 votes 
Add Corkscrew function for dynamic arrays
Corkscrew accounting is fundamental to Financial Modeling. It is where opening balances are carried over from closing balance of prior periods..
=OpeningBalance(FirstPeriodBalance, PriorBalances)
Where FirstPeriodBalance is the first period's opening balance and PriorBalances is an array of closing balances for each period.
The cell containing this function will return FirstPeriodBalance. The SPILL range will contain the n1 closing balance array value.
https://corporatefinanceinstitute.com/resources/excel/study/corkscrewcalculation/
17 votes 
Add "Header" Argument to FILTER and UNIQUE Dynamic Array Functions
I'm proposing that header argument be added to the FILTER and UNIQUE Dynamic Array Functions just like we have seen in the STOCKHISTORY function
8 votes 
Implement / expose object orientation
Would be great to be able to manipulate values returned by Excel formulas as objects with properties.
E.g. if I create select an array of cells (=A1:C20), I'd like to be able to manipulate that array as follows
=A1:C20().count counts the number of items in the array
=A1:C20().sort(index1,desc) sorts first index of array in descending order
=A1:C20().filter(index2,filterclause) filters array on index2 of array on filterclause
=A1:C20().filter(index2,filterclause)[:2] filters array on index2 of array on filterclause, and returns/slicereturns last two columns of array
=A1:C20()[1] returns/slicereturns first column of arrayAnd it would be even better to be able…
11 votes 
Create Array that joins two arrays
Create a function called ArrayJoin() or ArrayConcat(), this would join two or more arrays together to make one array. This could be used on spreadsheet directly or embedded in inputs of other functions eg to dynamically organise inputs for MMULT().
13 votes 
XLOOKUP to return an array of ranges
Currently XLOOKUP can return an array of return values, given an array of search values, OR a range corresponding to a single search value. Like other functions, it does not return an array of ranges but, rather, truncates the calculation.
This may have been acceptable in the past when the expectation was to copy formulas across to return values that logically form an array. As dynamic arrays receive increasing use, the expectation will change and the failure of a range to spill will be far more problematic.
17 votes 
Make it to where you can use cell color as a reference point
I don't know of a way to use the cell color as a reference point in a formula, i.e. =IF(A2=Color X,(B2/C2),D2) I would like this capability.
5 votes 
Add a CHOOSECELL function
Add a CHOOSECELL function. It should look like this: CHOOSECELL(columnletter,rownumber) and it will give you the cell you chose.
2 votes 
SORT function with sort_order argument 0 as random
Hi. You could create a new option 0 as the sort_order argument of the SORT function. Today we have 1 for Ascending, 1 for Descending and then we would have 0 representing shuffle, random order.
15 votes 
Moving average function for dynamic arrays
With increasing use of dynamic arrays for time series data such as stock prices we need a way of doing moving averages with dynamic arrays.
I suggest something likeMOVAVG (RangeArray, N, MAMethod [, Down] [,StartExp])
where N is the number of periods in the moving average and MAMethod controls the MA calculation method method (Simple, Central, Cumulative, Weighted, Exponential, Double Exponential etc)
5 votes 
DIFF function for Dynamic Arrays
In addition to an ACCUMULATE function to enable cumulative sums and corkscrew calculations we also nee a DIFF function to calculate differences between values in a dynamic array.
Something like
DIFF (Range_Array [,StartValue] [,Lag] [,Order] [,Align] [,Down] )5 votes 
2 votes

Build formula from string with reference to other cell/s with operator
I would like to be able to have a formula where in a formula can be build with operators in another cell. As an example where =formula(a1&b1&c1) where the cells would have 1 + 1. in other words b1 would have a + in it. This will make it possible to change operator in a large amount of formulas with only changing input in one cell.
2 votes
 Don't see your idea?