Why Excel Dollar Signs Do Not Reverse Formula Fill Direction
Question details
The user wants to reverse the default formula fill direction (e.g., changing columns when filling down, or rows when filling across) but finds that absolute references cannot achieve this.

- Product
- Spreadsheets
- Device & OS
- not provided
- Scenario
- Using the autofill handle to drag a formula down a column while attempting to reference data horizontally across a row (or vice versa).
- Observed behavior
- Adding dollar signs ($) to references only locks the row or column in place. Filling down continues to increment rows, and filling across continues to increment columns, preventing the desired transposition.
Understand that the dollar sign ($) in a spreadsheet is only designed to lock a cell reference from shifting; it cannot magically swap rows and columns during an autofill. To transpose references, you must use dynamic functions instead.
Use INDIRECT, ADDRESS, ROW, and COLUMN Functions
Create a dynamic reference that translates vertical row movements into horizontal column movements using the INDIRECT function.
By nesting ROW() and COLUMN() inside the ADDRESS function, you can mathematically force the formula to look at a new column when you drag it down a row. The INDIRECT function then converts this text string into a real cell reference.
Click on the cell where you want your new filled data to begin.
Type `=ADDRESS(COLUMN(A1), ROW(A1))` into the formula bar. Notice how the row index is driven by a COLUMN function and vice versa to swap the axes.
Enclose your ADDRESS formula inside the INDIRECT function to make it active: `=INDIRECT(ADDRESS(COLUMN(A1), ROW(A1)))`.
Click the small square at the bottom right of your selected cell and drag it down. The formula will now dynamically pull data across the columns of your source range.

Use the TRANSPOSE Function to Rearrange Data
If you simply need to convert a vertical range of data into a horizontal range (or vice versa) without building complex dynamic references, the TRANSPOSE function is the easiest solution.
Easily Transpose Data and Manage Complex Formulas in WPS Spreadsheet
WPS Spreadsheet provides a robust and free platform for handling advanced data manipulation. Whether you need to build dynamic references with INDIRECT or instantly flip tables with the TRANSPOSE array function, WPS Office handles it seamlessly.
- 1. Open your workbook in WPS: Launch WPS Spreadsheet and open the .xlsx or .csv file containing the data you want to reorient.
- 2. Enter your dynamic formula: Select a blank cell and type in your `=INDIRECT()` or `=TRANSPOSE()` formula using the formula bar.
- 3. Execute and autofill: Press Enter (or Ctrl+Shift+Enter for legacy arrays), then use the fill handle in the bottom-right corner of the cell to drag the formula across your desired range.
- 4. Save with perfect compatibility: Click the Save icon or press Ctrl+S to save your work. Your formulas will work perfectly if the file is later opened in Microsoft Excel.

Frequently Asked Questions
What exactly do the dollar signs ($) do in a spreadsheet formula?
The dollar sign creates an absolute reference. It locks either the row, the column, or both. For example, $A$1 locks the specific cell completely, $A1 locks only column A, and A$1 locks only row 1. This prevents references from shifting during autofill but cannot change the direction (row vs. column) of the shift.
Can I make the spreadsheet change columns when I drag a formula down?
Not natively with basic cell references. Dragging a formula vertically always increments rows. To increment columns while dragging down, you must use a combination of functions like INDEX, OFFSET, or INDIRECT paired with the ROW() function to calculate the new column dynamically.
What is the difference between TRANSPOSE and INDIRECT for this issue?
TRANSPOSE is an array function used to flip an entire block of data from horizontal to vertical (or vice versa) all at once. INDIRECT is a text-based function that lets you build dynamic cell references on a cell-by-cell basis, making it much more flexible for complex, highly specific formula patterns.
Why does my TRANSPOSE formula return a #VALUE! error?
In many spreadsheet tools, TRANSPOSE is treated strictly as an array formula. If you simply type it and press Enter, it may return a #VALUE! error. You must select the entire destination range first, type the formula, and then press Ctrl+Shift+Enter simultaneously to evaluate it properly.




