Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 206
Default custom function

hi all,

i have a range of data that will be something like this:

1 case
10 cases
100 cases

my cell formula is
=SUMPRODUCT((CustomerOrdersCode=H1)*(formatQuantit y(CustomerOrdersQuantity)))
i am using a cell formula with SUMPRODUCT to determine the total number of
cases
i am having trouble stripping the text from the data and converting it to an
integer
i thought to use a function like:

Public Function formatQuantity(q As Range) As Integer
Dim i As Integer, c
For Each c In q.Cells
For i = 1 To Len(c.value)
If Mid(c.value, i, 1) = " " Then Exit For
Next i
formatQuantity = CInt(Mid(c.value, 1, i))
Next
End Function

i'm not exactly sure how to modify it to accept/return the correct values.

any help - or possibly a better idea?

tia!

J
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 4,339
Default custom function

Hi,

The follwing will work assuming there is a blank between the number and text)

=INT(LEFT(A1,FIND(" ",A1,1)))

Caters for any integer numeric value

OR as a UDF


Public Function formatQuantity(q As Range) As Integer
Dim i As Integer
i = InStr(1, q.Value, " ")
formatQuantity = CInt(Left(q.Value, i - 1))

End Function

OR your original

Remove the "For each c " loop and then enter the UFD in each cell and copy
down.
Routine assumes values are always start with 1 - is this correct for always?

=formatQuantity(A1)


Public Function formatQuantity(q As Range) As Integer
Dim i As Integer, c

For i = 1 To Len(q.Value)
If Mid(q.Value, i, 1) = " " Then Exit For
Next i
formatQuantity = CInt(Mid(q.Value, 1, i))

End Function


HTH

"Gixxer_J_97" wrote:

hi all,

i have a range of data that will be something like this:

1 case
10 cases
100 cases

my cell formula is
=SUMPRODUCT((CustomerOrdersCode=H1)*(formatQuantit y(CustomerOrdersQuantity)))
i am using a cell formula with SUMPRODUCT to determine the total number of
cases
i am having trouble stripping the text from the data and converting it to an
integer
i thought to use a function like:

Public Function formatQuantity(q As Range) As Integer
Dim i As Integer, c
For Each c In q.Cells
For i = 1 To Len(c.value)
If Mid(c.value, i, 1) = " " Then Exit For
Next i
formatQuantity = CInt(Mid(c.value, 1, i))
Next
End Function

i'm not exactly sure how to modify it to accept/return the correct values.

any help - or possibly a better idea?

tia!

J

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 206
Default custom function

Hi,

thanks for the help - using the LEFT and FIND worked without the need to
create a UDF.

thanks again!

J

"Toppers" wrote:

Hi,

The follwing will work assuming there is a blank between the number and text)

=INT(LEFT(A1,FIND(" ",A1,1)))

Caters for any integer numeric value

OR as a UDF


Public Function formatQuantity(q As Range) As Integer
Dim i As Integer
i = InStr(1, q.Value, " ")
formatQuantity = CInt(Left(q.Value, i - 1))

End Function

OR your original

Remove the "For each c " loop and then enter the UFD in each cell and copy
down.
Routine assumes values are always start with 1 - is this correct for always?

=formatQuantity(A1)


Public Function formatQuantity(q As Range) As Integer
Dim i As Integer, c

For i = 1 To Len(q.Value)
If Mid(q.Value, i, 1) = " " Then Exit For
Next i
formatQuantity = CInt(Mid(q.Value, 1, i))

End Function


HTH

"Gixxer_J_97" wrote:

hi all,

i have a range of data that will be something like this:

1 case
10 cases
100 cases

my cell formula is
=SUMPRODUCT((CustomerOrdersCode=H1)*(formatQuantit y(CustomerOrdersQuantity)))
i am using a cell formula with SUMPRODUCT to determine the total number of
cases
i am having trouble stripping the text from the data and converting it to an
integer
i thought to use a function like:

Public Function formatQuantity(q As Range) As Integer
Dim i As Integer, c
For Each c In q.Cells
For i = 1 To Len(c.value)
If Mid(c.value, i, 1) = " " Then Exit For
Next i
formatQuantity = CInt(Mid(c.value, 1, i))
Next
End Function

i'm not exactly sure how to modify it to accept/return the correct values.

any help - or possibly a better idea?

tia!

J

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,163
Default custom function

I think you can do it without the need for a custom function:
=SUMPRODUCT((CustomerOrdersCode=H1)*(VALUE(LEFT(Cu stomerOrdersQuantity,FIND(" ",CustomerOrdersQuantity)))))
--
- K Dales


"Gixxer_J_97" wrote:

hi all,

i have a range of data that will be something like this:

1 case
10 cases
100 cases

my cell formula is
=SUMPRODUCT((CustomerOrdersCode=H1)*(formatQuantit y(CustomerOrdersQuantity)))
i am using a cell formula with SUMPRODUCT to determine the total number of
cases
i am having trouble stripping the text from the data and converting it to an
integer
i thought to use a function like:

Public Function formatQuantity(q As Range) As Integer
Dim i As Integer, c
For Each c In q.Cells
For i = 1 To Len(c.value)
If Mid(c.value, i, 1) = " " Then Exit For
Next i
formatQuantity = CInt(Mid(c.value, 1, i))
Next
End Function

i'm not exactly sure how to modify it to accept/return the correct values.

any help - or possibly a better idea?

tia!

J

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 206
Default custom function

Yup! that's exactly what i was looking for!

thanks!

J

"K Dales" wrote:

I think you can do it without the need for a custom function:
=SUMPRODUCT((CustomerOrdersCode=H1)*(VALUE(LEFT(Cu stomerOrdersQuantity,FIND(" ",CustomerOrdersQuantity)))))
--
- K Dales


"Gixxer_J_97" wrote:

hi all,

i have a range of data that will be something like this:

1 case
10 cases
100 cases

my cell formula is
=SUMPRODUCT((CustomerOrdersCode=H1)*(formatQuantit y(CustomerOrdersQuantity)))
i am using a cell formula with SUMPRODUCT to determine the total number of
cases
i am having trouble stripping the text from the data and converting it to an
integer
i thought to use a function like:

Public Function formatQuantity(q As Range) As Integer
Dim i As Integer, c
For Each c In q.Cells
For i = 1 To Len(c.value)
If Mid(c.value, i, 1) = " " Then Exit For
Next i
formatQuantity = CInt(Mid(c.value, 1, i))
Next
End Function

i'm not exactly sure how to modify it to accept/return the correct values.

any help - or possibly a better idea?

tia!

J



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
Custom Function: Detecting the cell the function is used in g-boy Excel Programming 2 June 11th 05 06:46 PM
Emulate Index/Match combo function w/ VBA custom function Spencer Hutton Excel Worksheet Functions 2 May 2nd 05 05:26 PM
custom function - with built-in function VilMarci Excel Programming 14 January 25th 05 04:15 PM
Help with Custom Function Flamikey[_7_] Excel Programming 1 November 11th 04 04:13 PM
Adding a custom function to the default excel function list DonutDel Excel Programming 3 November 21st 03 03:41 PM


All times are GMT +1. The time now is 02:14 PM.

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"