Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
ExcelMonkey
 
Posts: n/a
Default Sort Function Without Using VBA

Is it possible to create a Sort Function for text in Excel
using Array Formuals? I want to do a Sort without
employing VBA. I can build a simple sort but it only
works off the first letter in the text string. I use the
code funtion to get code of first character of each text
item. Then I rank this item relative to entire array of
text. Lastly, I use the small formula to order the ranks
from smallest to largest. But as you can see, I get
duplicates in the Small column because I have duplicate
first letters in the rows that make up the text items.


Code Rank Small
Jim 74 4 1
Dean 68 2 2
Allen 65 1 2
Rue 82 7 4
Dave 68 2 5
Sydney 83 11 5
Mary 77 5 7
Rodney 82 7 7
Tom 84 12 7
Rob 82 7 7
Murray 77 5 11
Ron 82 7 12

I was orignally thinking that if I could calculate the Code
() number for each letter in each text string then I could
multiply them togeter like. For Example with Rob and Ron:

Code(R)*Code(o)*Code(b)= 891,996
Code(R)*Code(o)*Code(n)= 1,001,220

I could then apply the rank and small functions on this
number and get an accurate sort. I need to pull the
entire text string into a cell and apply some sort of
array formula to accomodate the mulitple code() funtions.
Is this possible

Thanks
  #2   Report Post  
Jason Morin
 
Posts: n/a
Default

I'm confused. Why not just use Data Sort? Doing so does
not involve VBA.

HTH
Jason
Atlanta, GA

-----Original Message-----
Is it possible to create a Sort Function for text in

Excel
using Array Formuals? I want to do a Sort without
employing VBA. I can build a simple sort but it only
works off the first letter in the text string. I use

the
code funtion to get code of first character of each text
item. Then I rank this item relative to entire array of
text. Lastly, I use the small formula to order the

ranks
from smallest to largest. But as you can see, I get
duplicates in the Small column because I have duplicate
first letters in the rows that make up the text items.


Code Rank Small
Jim 74 4 1
Dean 68 2 2
Allen 65 1 2
Rue 82 7 4
Dave 68 2 5
Sydney 83 11 5
Mary 77 5 7
Rodney 82 7 7
Tom 84 12 7
Rob 82 7 7
Murray 77 5 11
Ron 82 7 12

I was orignally thinking that if I could calculate the

Code
() number for each letter in each text string then I

could
multiply them togeter like. For Example with Rob and

Ron:

Code(R)*Code(o)*Code(b)= 891,996
Code(R)*Code(o)*Code(n)= 1,001,220

I could then apply the rank and small functions on this
number and get an accurate sort. I need to pull the
entire text string into a cell and apply some sort of
array formula to accomodate the mulitple code()

funtions.
Is this possible

Thanks
.

  #3   Report Post  
ExcelMonkey
 
Posts: n/a
Default

Yes but I want to sort on a frequent basis. Everytime my
list updates I want to sort it in another column. To do
this, I will have to either :

1) Do it mannually
2) trigger the Sort with VBA code.

I do not want to do either. I am trying to find a way to
frequently Sort without relying on manual process or VBA
code.



-----Original Message-----
I'm confused. Why not just use Data Sort? Doing so does
not involve VBA.

HTH
Jason
Atlanta, GA

-----Original Message-----
Is it possible to create a Sort Function for text in

Excel
using Array Formuals? I want to do a Sort without
employing VBA. I can build a simple sort but it only
works off the first letter in the text string. I use

the
code funtion to get code of first character of each text
item. Then I rank this item relative to entire array of
text. Lastly, I use the small formula to order the

ranks
from smallest to largest. But as you can see, I get
duplicates in the Small column because I have duplicate
first letters in the rows that make up the text items.


Code Rank Small
Jim 74 4 1
Dean 68 2 2
Allen 65 1 2
Rue 82 7 4
Dave 68 2 5
Sydney 83 11 5
Mary 77 5 7
Rodney 82 7 7
Tom 84 12 7
Rob 82 7 7
Murray 77 5 11
Ron 82 7 12

I was orignally thinking that if I could calculate the

Code
() number for each letter in each text string then I

could
multiply them togeter like. For Example with Rob and

Ron:

Code(R)*Code(o)*Code(b)= 891,996
Code(R)*Code(o)*Code(n)= 1,001,220

I could then apply the rank and small functions on this
number and get an accurate sort. I need to pull the
entire text string into a cell and apply some sort of
array formula to accomodate the mulitple code()

funtions.
Is this possible

Thanks
.

.

  #4   Report Post  
Jason Morin
 
Posts: n/a
Default

Well, I guess you could try telekinesis to tell Excel to
sort. Otherwise, you have 2 options - do it yourself
(manual) or program Excel to do it (VBA). There simply is
no other way.

Jason

-----Original Message-----
Yes but I want to sort on a frequent basis. Everytime

my
list updates I want to sort it in another column. To do
this, I will have to either :

1) Do it mannually
2) trigger the Sort with VBA code.

I do not want to do either. I am trying to find a way

to
frequently Sort without relying on manual process or VBA
code.



-----Original Message-----
I'm confused. Why not just use Data Sort? Doing so

does
not involve VBA.

HTH
Jason
Atlanta, GA

-----Original Message-----
Is it possible to create a Sort Function for text in

Excel
using Array Formuals? I want to do a Sort without
employing VBA. I can build a simple sort but it only
works off the first letter in the text string. I use

the
code funtion to get code of first character of each

text
item. Then I rank this item relative to entire array

of
text. Lastly, I use the small formula to order the

ranks
from smallest to largest. But as you can see, I get
duplicates in the Small column because I have

duplicate
first letters in the rows that make up the text items.


Code Rank Small
Jim 74 4 1
Dean 68 2 2
Allen 65 1 2
Rue 82 7 4
Dave 68 2 5
Sydney 83 11 5
Mary 77 5 7
Rodney 82 7 7
Tom 84 12 7
Rob 82 7 7
Murray 77 5 11
Ron 82 7 12

I was orignally thinking that if I could calculate the

Code
() number for each letter in each text string then I

could
multiply them togeter like. For Example with Rob and

Ron:

Code(R)*Code(o)*Code(b)= 891,996
Code(R)*Code(o)*Code(n)= 1,001,220

I could then apply the rank and small functions on

this
number and get an accurate sort. I need to pull the
entire text string into a cell and apply some sort of
array formula to accomodate the mulitple code()

funtions.
Is this possible

Thanks
.

.

.

  #5   Report Post  
ExcelMonkey
 
Posts: n/a
Default

If I can find a way to calculate character code for an
entire text string then I should be able to do it. But I
may have to use VB(custom function) to do this.


-----Original Message-----
Well, I guess you could try telekinesis to tell Excel to
sort. Otherwise, you have 2 options - do it yourself
(manual) or program Excel to do it (VBA). There simply is
no other way.

Jason

-----Original Message-----
Yes but I want to sort on a frequent basis. Everytime

my
list updates I want to sort it in another column. To do
this, I will have to either :

1) Do it mannually
2) trigger the Sort with VBA code.

I do not want to do either. I am trying to find a way

to
frequently Sort without relying on manual process or VBA
code.



-----Original Message-----
I'm confused. Why not just use Data Sort? Doing so

does
not involve VBA.

HTH
Jason
Atlanta, GA

-----Original Message-----
Is it possible to create a Sort Function for text in
Excel
using Array Formuals? I want to do a Sort without
employing VBA. I can build a simple sort but it only
works off the first letter in the text string. I use
the
code funtion to get code of first character of each

text
item. Then I rank this item relative to entire array

of
text. Lastly, I use the small formula to order the
ranks
from smallest to largest. But as you can see, I get
duplicates in the Small column because I have

duplicate
first letters in the rows that make up the text items.


Code Rank Small
Jim 74 4 1
Dean 68 2 2
Allen 65 1 2
Rue 82 7 4
Dave 68 2 5
Sydney 83 11 5
Mary 77 5 7
Rodney 82 7 7
Tom 84 12 7
Rob 82 7 7
Murray 77 5 11
Ron 82 7 12

I was orignally thinking that if I could calculate the
Code
() number for each letter in each text string then I
could
multiply them togeter like. For Example with Rob and
Ron:

Code(R)*Code(o)*Code(b)= 891,996
Code(R)*Code(o)*Code(n)= 1,001,220

I could then apply the rank and small functions on

this
number and get an accurate sort. I need to pull the
entire text string into a cell and apply some sort of
array formula to accomodate the mulitple code()
funtions.
Is this possible

Thanks
.

.

.

.



  #6   Report Post  
Jason Morin
 
Posts: n/a
Default

You are contradicating yourself. You said no VBA, yet
writing a custom function *is* using VBA. What you want
is worksheet_change event that will sort your data any
time there is a change to a pre-defined set of cells.

Jason

-----Original Message-----
If I can find a way to calculate character code for an
entire text string then I should be able to do it. But

I
may have to use VB(custom function) to do this.


-----Original Message-----
Well, I guess you could try telekinesis to tell Excel

to
sort. Otherwise, you have 2 options - do it yourself
(manual) or program Excel to do it (VBA). There simply

is
no other way.

Jason

-----Original Message-----
Yes but I want to sort on a frequent basis. Everytime

my
list updates I want to sort it in another column. To

do
this, I will have to either :

1) Do it mannually
2) trigger the Sort with VBA code.

I do not want to do either. I am trying to find a way

to
frequently Sort without relying on manual process or

VBA
code.



-----Original Message-----
I'm confused. Why not just use Data Sort? Doing so

does
not involve VBA.

HTH
Jason
Atlanta, GA

-----Original Message-----
Is it possible to create a Sort Function for text in
Excel
using Array Formuals? I want to do a Sort without
employing VBA. I can build a simple sort but it

only
works off the first letter in the text string. I

use
the
code funtion to get code of first character of each

text
item. Then I rank this item relative to entire

array
of
text. Lastly, I use the small formula to order the
ranks
from smallest to largest. But as you can see, I get
duplicates in the Small column because I have

duplicate
first letters in the rows that make up the text

items.


Code Rank Small
Jim 74 4 1
Dean 68 2 2
Allen 65 1 2
Rue 82 7 4
Dave 68 2 5
Sydney 83 11 5
Mary 77 5 7
Rodney 82 7 7
Tom 84 12 7
Rob 82 7 7
Murray 77 5 11
Ron 82 7 12

I was orignally thinking that if I could calculate

the
Code
() number for each letter in each text string then I
could
multiply them togeter like. For Example with Rob

and
Ron:

Code(R)*Code(o)*Code(b)= 891,996
Code(R)*Code(o)*Code(n)= 1,001,220

I could then apply the rank and small functions on

this
number and get an accurate sort. I need to pull the
entire text string into a cell and apply some sort

of
array formula to accomodate the mulitple code()
funtions.
Is this possible

Thanks
.

.

.

.

.

  #7   Report Post  
Bernd Plumhoff
 
Posts: n/a
Default

If your text is in A1:A12, then enter into B1:
=SUMPRODUCT(--(A1$A$1:$A$12))+COUNTIF($A$1:A1,A1)

Enter into C1:
=INDEX(A:A,MATCH(ROW(),B:B,FALSE))

Then copy down B1:C1 to B2:C12

Your sorted text will be in C1:C12.

HTH,
Bernd
  #8   Report Post  
Myrna Larson
 
Posts: n/a
Default

Hi, Bernd:

Very clever approach! Based on your example, I was able to shorten the first
formula a bit, to

=COUNTIF($A:$A,"<"&A1)+COUNTIF($A$1:A1,A1)

Myrna Larson

On Wed, 9 Feb 2005 05:40:26 -0800, "Bernd Plumhoff"
wrote:

If your text is in A1:A12, then enter into B1:
=SUMPRODUCT(--(A1$A$1:$A$12))+COUNTIF($A$1:A1,A1)

Enter into C1:
=INDEX(A:A,MATCH(ROW(),B:B,FALSE))

Then copy down B1:C1 to B2:C12

Your sorted text will be in C1:C12.

HTH,
Bernd


  #9   Report Post  
Bernd Plumhoff
 
Posts: n/a
Default

Hi Myrna,

Thanks - your solution seems to be optimal now!

Regards,
Bernd
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
Excel subtotals, add a sort option, and BOLD the function answers crescent97526 New Users to Excel 4 December 21st 05 04:30 PM
In Excel, why sort function fails when applied to a list of date? Excel heavy user Excel Discussion (Misc queries) 1 January 18th 05 06:37 PM
"-" ignored in sort Mike H Excel Discussion (Misc queries) 8 January 2nd 05 07:48 AM
Excel Sort function should not sort the cell formatting! Lisa D.N.1 Excel Worksheet Functions 1 December 28th 04 08:37 PM
Data > Sort function amnesia? Dave D Excel Discussion (Misc queries) 1 November 29th 04 10:44 PM


All times are GMT +1. The time now is 04:43 AM.

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

About Us

"It's about Microsoft Excel"