Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 1
Default Need transpose? help....

I have a spreadsheet with 151 columns by 49 rows of data. I need to
transpose this data from its current state, to only 1 vertical column. How
can I do this? Thks
  #2   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 834
Default Need transpose? help....

Off the top, untested

With ActiveSheet

LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
For i = LastRow To 1 Step -1

For j = LastCol To 2 Step -1

.Rows(i + 1).Insert
.Cells(i, j).Cut .Cells(i + 1, "A")
Next j
Next i
End With


--

HTH

Bob

"Jethro Bodeene" <Jethro wrote in message
...
I have a spreadsheet with 151 columns by 49 rows of data. I need to
transpose this data from its current state, to only 1 vertical column.
How
can I do this? Thks



  #3   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 698
Default Need transpose? help....

Hi Bob,

I tested your 'lil sonnet and it works fine with Option Explicit edited out.
Then I dimmed LastRow and LastCol as Range and that was fine, but errored
out at i and j, I tried Integer and Range and neither worked. What would
these be declared as??

Is there any good reason to dim these variables? Seems I hear you always
should.

Thanks
Howard

"Bob Phillips" wrote in message
...
Off the top, untested

With ActiveSheet

LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
For i = LastRow To 1 Step -1

For j = LastCol To 2 Step -1

.Rows(i + 1).Insert
.Cells(i, j).Cut .Cells(i + 1, "A")
Next j
Next i
End With


--

HTH

Bob

"Jethro Bodeene" <Jethro wrote in
message ...
I have a spreadsheet with 151 columns by 49 rows of data. I need to
transpose this data from its current state, to only 1 vertical column.
How
can I do this? Thks





  #4   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 22,906
Default Need transpose? help....

Sub rowstocol()
'many columns and rows to one column on a new worksheet
Dim wks As Worksheet
Dim colnos As Long
Dim CopytoSheet As Worksheet

If ActiveSheet.Name = "Copyto" Then
MsgBox "Active Sheet Not Valid" & Chr(13) _
& "Try Another Worksheet."
Exit Sub
Else
Set wks = ActiveSheet
Application.ScreenUpdating = False
For Each Wksht In Worksheets
With Wksht
If .Name = "Copyto" Then
Application.DisplayAlerts = False
Sheets("Copyto").Delete
End If
End With
Next
Application.DisplayAlerts = True
Set CopytoSheet = Worksheets.Add
CopytoSheet.Name = "Copyto"
wks.Activate
Range("A1").Select
colnos = InputBox("Enter Number of Columns to Transpose to Rows")

Do Until ActiveCell.Value = ""
ActiveCell.Offset(1, 0).Select
With ActiveCell
.Resize(1, colnos).Copy
End With
Sheets("Copyto").Select
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, _
SkipBlanks:=False _
, Transpose:=True
Application.CutCopyMode = False
ActiveSheet.Cells(Rows.Count, ActiveCell.Column).End(xlUp).Select
ActiveCell.Offset(1, 0).Select

wks.Activate
ActiveCell.Select
Loop
Sheets("Copyto").Activate
End If
End Sub


Gord Dibben MS Excel MVP

On Mon, 15 Mar 2010 13:55:01 -0700, Jethro Bodeene <Jethro
wrote:

I have a spreadsheet with 151 columns by 49 rows of data. I need to
transpose this data from its current state, to only 1 vertical column. How
can I do this? Thks


  #5   Report Post  
Posted to microsoft.public.excel.worksheet.functions
Max Max is offline
external usenet poster
 
Posts: 9,221
Default Need transpose? help....

Assume your data is in Sheet1, with top left corner cell B2
In another sheet,
Put in any startcell, say in C3:
=OFFSET(Sheet1!$B$2,INT((ROWS($1:1)-1)/151),MOD(ROWS($1:1)-1,151))
Copy C3 down as far as required to exhaust the source data into that col
(copy down by at least: 151 x 49 = 7399 cells). Inspiring? hit the YES below
--
Max
Singapore
---
"Jethro Bodeene" wrote:
I have a spreadsheet with 151 columns by 49 rows of data. I need to
transpose this data from its current state, to only 1 vertical column. How
can I do this? Thks



  #6   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 834
Default Need transpose? help....

Howard,

They should be Longs.

Yes, you should always dimension your variables, you can always get caught
out with mis-spellings if you don't. I always do in my own code, I just miss
them sometimes in posts, especially if responding to someone who doesn't do
so.

--

HTH

Bob

"L. Howard Kittle" wrote in message
...
Hi Bob,

I tested your 'lil sonnet and it works fine with Option Explicit edited
out. Then I dimmed LastRow and LastCol as Range and that was fine, but
errored out at i and j, I tried Integer and Range and neither worked.
What would these be declared as??

Is there any good reason to dim these variables? Seems I hear you always
should.

Thanks
Howard

"Bob Phillips" wrote in message
...
Off the top, untested

With ActiveSheet

LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
For i = LastRow To 1 Step -1

For j = LastCol To 2 Step -1

.Rows(i + 1).Insert
.Cells(i, j).Cut .Cells(i + 1, "A")
Next j
Next i
End With


--

HTH

Bob

"Jethro Bodeene" <Jethro wrote in
message ...
I have a spreadsheet with 151 columns by 49 rows of data. I need to
transpose this data from its current state, to only 1 vertical column.
How
can I do this? Thks







  #7   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 698
Default Need transpose? help....

Thanks Bob.

Your advice rings familiar and I appreciate the reminder from an MVP to a
hobby lurker.

So it has to be a Long because the possible 'scope' of the value of i or j,
given the code, may exceed the value of an Integer?

Regards,
Howard


"Bob Phillips" wrote in message
...
Howard,

They should be Longs.

Yes, you should always dimension your variables, you can always get caught
out with mis-spellings if you don't. I always do in my own code, I just
miss them sometimes in posts, especially if responding to someone who
doesn't do so.

--

HTH

Bob

"L. Howard Kittle" wrote in message
...
Hi Bob,

I tested your 'lil sonnet and it works fine with Option Explicit edited
out. Then I dimmed LastRow and LastCol as Range and that was fine, but
errored out at i and j, I tried Integer and Range and neither worked.
What would these be declared as??

Is there any good reason to dim these variables? Seems I hear you always
should.

Thanks
Howard

"Bob Phillips" wrote in message
...
Off the top, untested

With ActiveSheet

LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
For i = LastRow To 1 Step -1

For j = LastCol To 2 Step -1

.Rows(i + 1).Insert
.Cells(i, j).Cut .Cells(i + 1, "A")
Next j
Next i
End With


--

HTH

Bob

"Jethro Bodeene" <Jethro wrote in
message ...
I have a spreadsheet with 151 columns by 49 rows of data. I need to
transpose this data from its current state, to only 1 vertical column.
How
can I do this? Thks








  #8   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 834
Default Need transpose? help....

Partly Howard, but windows under the covers converts integers to Long,
processes the request, then converts the long back to the integer as passed.
So by declaring as integer you are causing two unnecessary conversions, so
it is just more efficient. Many API calls require an integer as the
parameter type, but in your/my code, there is no real reason to use integer
unless you want to use it as some sort of number validation (which I would
argue is the wrong way to do it).

--

HTH

Bob

"L. Howard Kittle" wrote in message
...
Thanks Bob.

Your advice rings familiar and I appreciate the reminder from an MVP to a
hobby lurker.

So it has to be a Long because the possible 'scope' of the value of i or
j, given the code, may exceed the value of an Integer?

Regards,
Howard


"Bob Phillips" wrote in message
...
Howard,

They should be Longs.

Yes, you should always dimension your variables, you can always get
caught out with mis-spellings if you don't. I always do in my own code, I
just miss them sometimes in posts, especially if responding to someone
who doesn't do so.

--

HTH

Bob

"L. Howard Kittle" wrote in message
...
Hi Bob,

I tested your 'lil sonnet and it works fine with Option Explicit edited
out. Then I dimmed LastRow and LastCol as Range and that was fine, but
errored out at i and j, I tried Integer and Range and neither worked.
What would these be declared as??

Is there any good reason to dim these variables? Seems I hear you
always should.

Thanks
Howard

"Bob Phillips" wrote in message
...
Off the top, untested

With ActiveSheet

LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
For i = LastRow To 1 Step -1

For j = LastCol To 2 Step -1

.Rows(i + 1).Insert
.Cells(i, j).Cut .Cells(i + 1, "A")
Next j
Next i
End With


--

HTH

Bob

"Jethro Bodeene" <Jethro wrote in
message ...
I have a spreadsheet with 151 columns by 49 rows of data. I need to
transpose this data from its current state, to only 1 vertical column.
How
can I do this? Thks










  #9   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 698
Default Need transpose? help....

Thanks for the info, nice of you of take the time.

Regards,
Howard

"Bob Phillips" wrote in message
...
Partly Howard, but windows under the covers converts integers to Long,
processes the request, then converts the long back to the integer as
passed. So by declaring as integer you are causing two unnecessary
conversions, so it is just more efficient. Many API calls require an
integer as the parameter type, but in your/my code, there is no real
reason to use integer unless you want to use it as some sort of number
validation (which I would argue is the wrong way to do it).

--

HTH

Bob

"L. Howard Kittle" wrote in message
...
Thanks Bob.

Your advice rings familiar and I appreciate the reminder from an MVP to a
hobby lurker.

So it has to be a Long because the possible 'scope' of the value of i or
j, given the code, may exceed the value of an Integer?

Regards,
Howard


"Bob Phillips" wrote in message
...
Howard,

They should be Longs.

Yes, you should always dimension your variables, you can always get
caught out with mis-spellings if you don't. I always do in my own code,
I just miss them sometimes in posts, especially if responding to someone
who doesn't do so.

--

HTH

Bob

"L. Howard Kittle" wrote in message
...
Hi Bob,

I tested your 'lil sonnet and it works fine with Option Explicit edited
out. Then I dimmed LastRow and LastCol as Range and that was fine, but
errored out at i and j, I tried Integer and Range and neither worked.
What would these be declared as??

Is there any good reason to dim these variables? Seems I hear you
always should.

Thanks
Howard

"Bob Phillips" wrote in message
...
Off the top, untested

With ActiveSheet

LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
For i = LastRow To 1 Step -1

For j = LastCol To 2 Step -1

.Rows(i + 1).Insert
.Cells(i, j).Cut .Cells(i + 1, "A")
Next j
Next i
End With


--

HTH

Bob

"Jethro Bodeene" <Jethro wrote in
message ...
I have a spreadsheet with 151 columns by 49 rows of data. I need to
transpose this data from its current state, to only 1 vertical
column. How
can I do this? Thks












  #10   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 1
Default Need transpose? help....

Max, Thanks for your help!

That worked perfectly!

Now onto other projects....

"Max" wrote:

Assume your data is in Sheet1, with top left corner cell B2
In another sheet,
Put in any startcell, say in C3:
=OFFSET(Sheet1!$B$2,INT((ROWS($1:1)-1)/151),MOD(ROWS($1:1)-1,151))
Copy C3 down as far as required to exhaust the source data into that col
(copy down by at least: 151 x 49 = 7399 cells). Inspiring? hit the YES below
--
Max
Singapore
---
"Jethro Bodeene" wrote:
I have a spreadsheet with 151 columns by 49 rows of data. I need to
transpose this data from its current state, to only 1 vertical column. How
can I do this? Thks

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Transpose Maybe? Dan Oakes Excel Worksheet Functions 7 March 16th 07 12:12 AM
Help using Transpose [email protected] Excel Discussion (Misc queries) 1 May 26th 06 05:38 PM
Want to Transpose PaulW Excel Discussion (Misc queries) 3 March 10th 06 01:07 PM
I WANT TO TRANSPOSE LINKS, AS WE TRANSPOSE VALUES Umair Aslam Excel Worksheet Functions 1 September 22nd 05 01:19 PM
TRANSPOSE() bill_morgan_3333 Excel Worksheet Functions 4 November 4th 04 01:10 PM


All times are GMT +1. The time now is 05:35 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"