View Single Post
  #10   Report Post  
Posted to microsoft.public.excel.programming
Jerry W. Lewis Jerry W. Lewis is offline
external usenet poster
 
Posts: 16
Default return "nothing" from UDF

SLOPE() ignores all non-numeric data other than Excel error values.
Therefore what I think you said should not be possible. If that is what is
happening, then you need to give complete information to reproduce the
situation. Also include the version of Excel that you are using.

Jerry

"Rob Kings" wrote:

Jerry

Sorry, that doesn't help. If there is an N/A in the range L3:L47 then the if
returns "" and slope still returns #N/A

Rob

"Jerry W. Lewis" wrote in message
...
=SLOPE(IF(ISNA(L3:L47),,L3:L47),IF(ISNA(H3:H47),,H 3:H47))

array entered (Ctrl-Shift-Enter)

Jerry

"Rob Kings" wrote:

Nick

Unfortunately that doesn't really help. If I put a value #N/A then
certainly
the point isn't plotted. The line is drawn on the chart skipping that
point
and the trendline appears. I can show the equation of the trendline (in
the
form Y=MX+C) on the chart.

What I'm wanting to do is to have another sheet with a column showing the
direction of the trendline (up or down) to do this I'm using the
worksheet
function SLOPE( ) this is in the form

=SLOPE(L3:L47,H3:H47)

where L3:47 and H3:47 are the ranges from my chart. This should have the
effect of returning the M value (from the equation Y=MX+C) without the
user
needing to see the chart. I don't really want to go into all the details
of
my workbook and the reasons behind it here, but it does all make sense.

The presence on the #N/A in the L column, whilst fine from the chart and
trendline, makes the SLOPE function return #N/A

Now, this value (be it #N/A or 0 or null) is from my UDF. Yet if I go to
the
cell and delete the formula then it does pretty well what I want. So it
seems that I can't have a UDF that returns a value equivalent to there
being
absolutely nothing in the cell.

The only way at the moment I can see is to write my own least squares
function which is "#N/A proof" but that, coupled with all the other usual
hoops through which I'm being made to jump have the affect of turning a
relatively simple bit of work into a programming epic.

Either that, or an extra column one for the chart, and one for the SLOPE
function. But there are 3 charts, so that means 3 more ugly columns of
numbers in what is meant to be a simple tool. Time to go and sleep on it.

Cheers

Rob
All the way over in sunny Essex. England


"Nick Hodge" wrote in message
...
Rob

Certainly you will have to return #N/A to stop the chart line dropping
to
zero. Outside of code you would use ISERROR or ISNA to trap this #N/A
returning a value of say, 0...not sure about how your SLOPE construct
is
built, but hope that gets you in the correct direction and re-assures
you
that you have the right route with the chart with #N/A

--
HTH
Nick Hodge
Microsoft MVP - Excel
Southampton, England
www.nickhodge.co.uk
HIS


"Rob Kings" wrote in message
...
I'm having problems with a User Defined function.

I have a chart (line graph) based upon a column of data calculated by
a
UDF. I also have another cell that is the slope of a range of the
column
using the SLOPE function.

Now, if for any reason I can't calculate a value in my column (e.g.
some
of the parameters are missing) I'm not sure what to do:

1. If I return #N/A (Using CVErr(xlErrNA)) then my graph is OK, but
the
SLOPE function also returns #N/A (Though the chart has a trend-line
which
does have a slope calculated and displayed)

2. If I return "" then the line drops to zero

3. If I return Null then this is being taken as 0 and once again the
line
drops to zero.

4. If I delete the formula from the cell then it appears as blank, and
there is a dis-joint in the line

So, how do I get the chart to appear OK (with no disjoint) without
mucking up SLOPE() and what is the difference between a cell with no
value and a UDF that returns Null (or a zero-length string)

Help. I'm very confused.

Rob