How do I invert a table in Word?

R

Ranjiv

I am using Microsoft Office 2003 Professional. I want to invert a table -
i.e. make the columns into rows, and the rows into columns. How can I do
this?
 
L

Luc

Ranjiv,
As far as I know not in Word, but if it is a relatively straigthforward
table you could copy paste it to Excel and transpose the columns into rows
and vice versa there. Then copy again to Word.
 
J

Jay Freedman

I am using Microsoft Office 2003 Professional. I want to invert a table -
i.e. make the columns into rows, and the rows into columns. How can I do
this?

The technical term for what you want to do is "transpose" rather than
"invert". Word doesn't have a tool for that, but Excel does. Assuming
you have Office with both Word and Excel installed, you can transpose
a table as follows:

- Open both programs.

- Select the entire table in Word and copy it to the clipboard.

- Switch to Excel and paste into the first cell of an empty worksheet.
Each cell of the Word table will be placed into a separate cell of the
worksheet.

- Select the table you just pasted, and copy it to the clipboard.

- Click in an empty area of the worksheet, away from the existing
table.

- Click Edit > Paste > Transpose (I'm not sure exactly what that
sequence is, because I don't have Excel 2003 at the moment).

- Select the transposed table, copy it to the clipboard, and paste it
into the Word document. Delete the original table if necessary.
 
D

Doug Robbins - Word MVP

Here's a macro that will do it in Word

' Transposer Macro
' Macro creaeted 18/01/1999 by Doug Robbins
' to transpose rows and columns in a table
Dim NumCols as Long, NumRows as Long, RowCounter as Long, ColCounter as Long
Dim CellText as String
NumCols = ActiveDocument.Tables(1).Columns.Count
NumRows = ActiveDocument.Tables(1).Rows.Count
ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=NumCols,
NumColumns:= _
NumRows
RowCounter = 0
While RowCounter < NumRows
ColCounter = 0
While ColCounter < NumCols
CellText = ActiveDocument.Tables(1).Cell(RowCounter + 1, ColCounter
+ 1).Range.Text
CellText = Left(CellText, Len(CellText) - 2)
ActiveDocument.Tables(2).Cell(ColCounter + 1, RowCounter +
1).Range.InsertBefore CellText
ColCounter = ColCounter + 1
Wend
RowCounter = RowCounter + 1
Wend


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP, originally posted via msnews.microsoft.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top