How to Stack English and French Rows Using Excel LET Function
Question details
The user needs to stack French data rows directly beneath their corresponding English data rows dynamically using Excel array formulas.

- Product
- Excel
- Device & OS
- not provided
- Scenario
- Arranging multilingual data outputs by vertically stacking rows based on specific column headers without manual copy-pasting.
- Observed behavior
- The goal is to automatically extract and sequence the corresponding language columns vertically into a dynamic output.
Ensure you are using a recent version of Excel (such as Microsoft 365 or Office 2021) that supports dynamic array functions. Defining named ranges for your main data body and column headers will make the formula significantly easier to implement and read.
Use LET, XMATCH, and VSTACK to dynamically stack rows
Combine advanced array functions to locate columns by their language headers and stack the translated rows beneath the primary rows sequentially.
This approach uses XMATCH to locate the specific header positions for both the English column and its French counterpart (designated by a custom suffix like 'FR'). By utilizing the LET function, you can assign these lookup values to variables, keeping the complex formula clean and readable.
VSTACK then places the translated French data rows beneath the corresponding English rows. Finally, the FILTER function eliminates any blank results from the stacked dataset, ensuring a continuous flow of data.
Navigate to the cell where you want the new stacked output to begin. Make sure there is enough empty space below and to the right to accommodate the dynamic array spillage.
Input the following formula: =LET(enColIdx,XMATCH("HeaderName",headerRange), frenchIdx,XMATCH("HeaderName FR",headerRange), frColIdx,IFERROR(frenchIdx,enColIdx), rowIdx,SEQUENCE(ROWS(bodyRange)), stacked,VSTACK(INDEX(bodyRange,rowIdx,enColIdx),INDEX(bodyRange,rowIdx,frColIdx)), FILTER(stacked,TAKE(stacked,,1)<>""))
Replace 'HeaderName' with your actual English header text. Update 'headerRange' to reference your spreadsheet's header row, and 'bodyRange' to reference the main dataset below the headers. Press Enter to execute the formula.

Use the REDUCE function for iterating through multiple languages
Leverage REDUCE and LAMBDA functions if you need to iterate through more than two languages, such as English, French, and Spanish.
Easily Use Dynamic Arrays and Advanced Formulas in WPS Spreadsheet
WPS Spreadsheet fully supports advanced array formulas like dynamic stacking, indexing, and matching, allowing you to manipulate and reorganize multilingual datasets seamlessly.
- 1. Download and install WPS Office: Download the official WPS Office suite from the WPS website and install it on your computer.
- 2. Open your dataset in WPS Spreadsheet: Launch WPS Spreadsheet and select your existing Excel workbook containing the multilingual data.
- 3. Apply dynamic array formulas: Click on the target cell and type your LET and VSTACK formulas. WPS Spreadsheet will automatically calculate and spill the dynamic array results.
- 4. Save your work securely: Press Ctrl + S to save the document. Ensure it remains in the standard .xlsx format to retain perfect compatibility whenever sharing with Microsoft Excel users.

Frequently Asked Questions
Why am I getting a #NAME? error when using LET or VSTACK?
The #NAME? error typically occurs if your spreadsheet software version does not support the LET or VSTACK functions. These are dynamic array functions introduced in newer Microsoft 365 or Office 2021 updates. Consider updating your software or migrating to a modern compatible alternative like WPS Spreadsheet.
How does the XMATCH function help in stacking rows?
XMATCH is used to dynamically find the exact column number of your English and French headers. By locating these positions automatically, the formula can extract the exact correct columns of data using the INDEX function, preventing errors if your data columns are ever rearranged.
Can I stack rows if my French headers don't have a consistent suffix like 'FR'?
Yes, but you will need to modify the array formula. Instead of searching for the concatenated suffix (desiredHdr&" FR"), you can hardcode the specific French header name into the XMATCH lookup array, or create a separate reference table that maps English headers to their precise French translations.




