ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Copy/Paste array formulae from the newsgroup (https://www.excelbanter.com/excel-discussion-misc-queries/180838-copy-paste-array-formulae-newsgroup.html)

MartinW

Copy/Paste array formulae from the newsgroup
 
Hi Group,

Can anyone explain this behaviour? Often when I copy
and paste an array formula from the newsgroups, the
formula will work straight away even though it hasn't
been committed with Ctrl+Shift+Enter and there are no
curly braces around it. If I then do an F2+Enter the formula
will fall down and requires a C+S+E to recommit it.

Take this example from a recent Bob Phillips post.

=MAX(IF(A1:A1000<"",ROW(A1:A1000)))

If I paste it anywhere outside column A, and then start
putting data in column A, the formula will correctly
return last row that has a number in col A, even though
it is an array formula and has not been committed
with C+S+E and there are no curly braces around it.

Any ideas why?

Regards
Martin



T. Valko

Copy/Paste array formulae from the newsgroup
 
Are you sure it's working *exactly* as described?

If I enter the formula (normally entered) in E4 and I then enter a random
number in A1 the result of the formula is 0. If I then start entering random
numbers in cell A2 and continue down the column, the formula continues to
return 0 until there is an entry in cell A4. Then the formula result is 1
which is correct.

This due to what's called the implicit intersection rule in regards to
arrays.

The formula and a piece of data are entered on the same row (could also be a
column) and the data cell is within the referenced range of the formula.
This is called an implicit intersection. Since the formula references an
array but is not array entered it only evaluates the first element of the
array.

=MAX(IF(A1<"",ROW(A1)))

Here's another example of an implicit intersection.

Enter the numbers 1,2,3,4,5 in A1:A5.

(Normally) enter this formula in B6:

=OFFSET(A1,,,5)

The result will be an error. Now, drag the formula up to B5 and note the
result, then drag up to B4, B3, B2, B1.

Now, drag the formula back down to B5 then F2CSE. Note the result.

These were 2 different formulas doing 2 totally different things so the
results are different but the implicit intersection rule dictated those
results.


--
Biff
Microsoft Excel MVP


"MartinW" wrote in message
...
Hi Group,

Can anyone explain this behaviour? Often when I copy
and paste an array formula from the newsgroups, the
formula will work straight away even though it hasn't
been committed with Ctrl+Shift+Enter and there are no
curly braces around it. If I then do an F2+Enter the formula
will fall down and requires a C+S+E to recommit it.

Take this example from a recent Bob Phillips post.

=MAX(IF(A1:A1000<"",ROW(A1:A1000)))

If I paste it anywhere outside column A, and then start
putting data in column A, the formula will correctly
return last row that has a number in col A, even though
it is an array formula and has not been committed
with C+S+E and there are no curly braces around it.

Any ideas why?

Regards
Martin




MartinW

Copy/Paste array formulae from the newsgroup
 
Thanks for the reply Biff,

As you say when you enter the formula normally it will
return 0 until you put data in A5 and it will then return 1.

However if you copy the formula from my post and
paste it into F4 and go through the same trial you will see
it correctly returns the row number of the last value.
If I then put a value in A37 the normally entered
formula in E4 will show 1, but the pasted version in F4
shows 37 the same as it would if it was committed
properly with CSE.

I'll have a play with your implicit intersection
examples and see if I can get a handle on that.

Thanks
Martin


"T. Valko" wrote in message
...
Are you sure it's working *exactly* as described?

If I enter the formula (normally entered) in E4 and I then enter a random
number in A1 the result of the formula is 0. If I then start entering
random numbers in cell A2 and continue down the column, the formula
continues to return 0 until there is an entry in cell A4. Then the formula
result is 1 which is correct.

This due to what's called the implicit intersection rule in regards to
arrays.

The formula and a piece of data are entered on the same row (could also be
a column) and the data cell is within the referenced range of the formula.
This is called an implicit intersection. Since the formula references an
array but is not array entered it only evaluates the first element of the
array.

=MAX(IF(A1<"",ROW(A1)))

Here's another example of an implicit intersection.

Enter the numbers 1,2,3,4,5 in A1:A5.

(Normally) enter this formula in B6:

=OFFSET(A1,,,5)

The result will be an error. Now, drag the formula up to B5 and note the
result, then drag up to B4, B3, B2, B1.

Now, drag the formula back down to B5 then F2CSE. Note the result.

These were 2 different formulas doing 2 totally different things so the
results are different but the implicit intersection rule dictated those
results.


--
Biff
Microsoft Excel MVP


"MartinW" wrote in message
...
Hi Group,

Can anyone explain this behaviour? Often when I copy
and paste an array formula from the newsgroups, the
formula will work straight away even though it hasn't
been committed with Ctrl+Shift+Enter and there are no
curly braces around it. If I then do an F2+Enter the formula
will fall down and requires a C+S+E to recommit it.

Take this example from a recent Bob Phillips post.

=MAX(IF(A1:A1000<"",ROW(A1:A1000)))

If I paste it anywhere outside column A, and then start
putting data in column A, the formula will correctly
return last row that has a number in col A, even though
it is an array formula and has not been committed
with C+S+E and there are no curly braces around it.

Any ideas why?

Regards
Martin






T. Valko

Copy/Paste array formulae from the newsgroup
 
However if you copy the formula from my post

I did!

I can't reproduce what you're describing.


--
Biff
Microsoft Excel MVP


"MartinW" wrote in message
...
Thanks for the reply Biff,

As you say when you enter the formula normally it will
return 0 until you put data in A5 and it will then return 1.

However if you copy the formula from my post and
paste it into F4 and go through the same trial you will see
it correctly returns the row number of the last value.
If I then put a value in A37 the normally entered
formula in E4 will show 1, but the pasted version in F4
shows 37 the same as it would if it was committed
properly with CSE.

I'll have a play with your implicit intersection
examples and see if I can get a handle on that.

Thanks
Martin


"T. Valko" wrote in message
...
Are you sure it's working *exactly* as described?

If I enter the formula (normally entered) in E4 and I then enter a random
number in A1 the result of the formula is 0. If I then start entering
random numbers in cell A2 and continue down the column, the formula
continues to return 0 until there is an entry in cell A4. Then the
formula result is 1 which is correct.

This due to what's called the implicit intersection rule in regards to
arrays.

The formula and a piece of data are entered on the same row (could also
be a column) and the data cell is within the referenced range of the
formula. This is called an implicit intersection. Since the formula
references an array but is not array entered it only evaluates the first
element of the array.

=MAX(IF(A1<"",ROW(A1)))

Here's another example of an implicit intersection.

Enter the numbers 1,2,3,4,5 in A1:A5.

(Normally) enter this formula in B6:

=OFFSET(A1,,,5)

The result will be an error. Now, drag the formula up to B5 and note the
result, then drag up to B4, B3, B2, B1.

Now, drag the formula back down to B5 then F2CSE. Note the result.

These were 2 different formulas doing 2 totally different things so the
results are different but the implicit intersection rule dictated those
results.


--
Biff
Microsoft Excel MVP


"MartinW" wrote in message
...
Hi Group,

Can anyone explain this behaviour? Often when I copy
and paste an array formula from the newsgroups, the
formula will work straight away even though it hasn't
been committed with Ctrl+Shift+Enter and there are no
curly braces around it. If I then do an F2+Enter the formula
will fall down and requires a C+S+E to recommit it.

Take this example from a recent Bob Phillips post.

=MAX(IF(A1:A1000<"",ROW(A1:A1000)))

If I paste it anywhere outside column A, and then start
putting data in column A, the formula will correctly
return last row that has a number in col A, even though
it is an array formula and has not been committed
with C+S+E and there are no curly braces around it.

Any ideas why?

Regards
Martin








MartinW

Copy/Paste array formulae from the newsgroup
 
I'll try to explain it step by step what I am doing
as it certainly is strange....to me anyway.
I'm using XL2000 though that shouldn't matter (I think)

In a fresh worksheet I copy and paste the formula
separately into E4 F4 and G4.
I then,
Select E4, press F2 and commit with Enter
Select F4, press F2 and commit with C+S+E
Leave G4 as pasted.
All three formulae are showing 0

I then put a 1 in A1 which shows
E4 = 0
F4 = 1
G4 = 1
I continue to put 1 down col A, when I get to A4
the formulae are showing
E4 = 1
F4 = 4
G4 = 4
I then skip to A37 and put a 1 (or any number), the
formulae now show
E4 = 1
F4 = 37
G4 = 37
Skip again to A739 and put a number in, shows
E4 = 1
F4 = 739
G4 = 739

The pasted formula in G4 works in perfect unison
with the CSE formula in F4 even though it
has not been committed as an array.

Can you duplicate that or have I got something
really screwy happening here?

Regards
Martin

"T. Valko" wrote in message
...
However if you copy the formula from my post


I did!

I can't reproduce what you're describing.


--
Biff
Microsoft Excel MVP


"MartinW" wrote in message
...
Thanks for the reply Biff,

As you say when you enter the formula normally it will
return 0 until you put data in A5 and it will then return 1.

However if you copy the formula from my post and
paste it into F4 and go through the same trial you will see
it correctly returns the row number of the last value.
If I then put a value in A37 the normally entered
formula in E4 will show 1, but the pasted version in F4
shows 37 the same as it would if it was committed
properly with CSE.

I'll have a play with your implicit intersection
examples and see if I can get a handle on that.

Thanks
Martin


"T. Valko" wrote in message
...
Are you sure it's working *exactly* as described?

If I enter the formula (normally entered) in E4 and I then enter a
random number in A1 the result of the formula is 0. If I then start
entering random numbers in cell A2 and continue down the column, the
formula continues to return 0 until there is an entry in cell A4. Then
the formula result is 1 which is correct.

This due to what's called the implicit intersection rule in regards to
arrays.

The formula and a piece of data are entered on the same row (could also
be a column) and the data cell is within the referenced range of the
formula. This is called an implicit intersection. Since the formula
references an array but is not array entered it only evaluates the first
element of the array.

=MAX(IF(A1<"",ROW(A1)))

Here's another example of an implicit intersection.

Enter the numbers 1,2,3,4,5 in A1:A5.

(Normally) enter this formula in B6:

=OFFSET(A1,,,5)

The result will be an error. Now, drag the formula up to B5 and note the
result, then drag up to B4, B3, B2, B1.

Now, drag the formula back down to B5 then F2CSE. Note the result.

These were 2 different formulas doing 2 totally different things so the
results are different but the implicit intersection rule dictated those
results.


--
Biff
Microsoft Excel MVP


"MartinW" wrote in message
...
Hi Group,

Can anyone explain this behaviour? Often when I copy
and paste an array formula from the newsgroups, the
formula will work straight away even though it hasn't
been committed with Ctrl+Shift+Enter and there are no
curly braces around it. If I then do an F2+Enter the formula
will fall down and requires a C+S+E to recommit it.

Take this example from a recent Bob Phillips post.

=MAX(IF(A1:A1000<"",ROW(A1:A1000)))

If I paste it anywhere outside column A, and then start
putting data in column A, the formula will correctly
return last row that has a number in col A, even though
it is an array formula and has not been committed
with C+S+E and there are no curly braces around it.

Any ideas why?

Regards
Martin










T. Valko

Copy/Paste array formulae from the newsgroup
 
Can you duplicate that or have I got something
really screwy happening here?


I *can not* duplicate that and I followed your steps exactly. I'm using
Excel 2002 (all service packs installed)

See inline comments

--
Biff
Microsoft Excel MVP


"MartinW" wrote in message
...
I'll try to explain it step by step what I am doing
as it certainly is strange....to me anyway.
I'm using XL2000 though that shouldn't matter (I think)

In a fresh worksheet I copy and paste the formula
separately into E4 F4 and G4.
I then,
Select E4, press F2 and commit with Enter
Select F4, press F2 and commit with C+S+E
Leave G4 as pasted.
All three formulae are showing 0

I then put a 1 in A1 which shows
E4 = 0
F4 = 1
G4 = 1


The results I get a

E4 = 0
F4 = 1
G4 = 0

I continue to put 1 down col A, when I get to A4
the formulae are showing
E4 = 1
F4 = 4
G4 = 4


The results I get a

E4 = 1
F4 = 4
G4 = 1

I then skip to A37 and put a 1 (or any number), the
formulae now show
E4 = 1
F4 = 37
G4 = 37


The results I get a

E4 = 1
F4 = 37
G4 = 1

Skip again to A739 and put a number in, shows
E4 = 1
F4 = 739
G4 = 739


The results I get a

E4 = 1
F4 = 739
G4 = 1


The pasted formula in G4 works in perfect unison
with the CSE formula in F4 even though it
has not been committed as an array.

Can you duplicate that or have I got something
really screwy happening here?


Well, I can't duplicate that and I don't have an explanation as to why it's
doing that for you. It shouldn't.

Hopefully others will see this thread and try it then let us know how it
worked for them.


Regards
Martin

"T. Valko" wrote in message
...
However if you copy the formula from my post


I did!

I can't reproduce what you're describing.


--
Biff
Microsoft Excel MVP


"MartinW" wrote in message
...
Thanks for the reply Biff,

As you say when you enter the formula normally it will
return 0 until you put data in A5 and it will then return 1.

However if you copy the formula from my post and
paste it into F4 and go through the same trial you will see
it correctly returns the row number of the last value.
If I then put a value in A37 the normally entered
formula in E4 will show 1, but the pasted version in F4
shows 37 the same as it would if it was committed
properly with CSE.

I'll have a play with your implicit intersection
examples and see if I can get a handle on that.

Thanks
Martin


"T. Valko" wrote in message
...
Are you sure it's working *exactly* as described?

If I enter the formula (normally entered) in E4 and I then enter a
random number in A1 the result of the formula is 0. If I then start
entering random numbers in cell A2 and continue down the column, the
formula continues to return 0 until there is an entry in cell A4. Then
the formula result is 1 which is correct.

This due to what's called the implicit intersection rule in regards to
arrays.

The formula and a piece of data are entered on the same row (could also
be a column) and the data cell is within the referenced range of the
formula. This is called an implicit intersection. Since the formula
references an array but is not array entered it only evaluates the
first element of the array.

=MAX(IF(A1<"",ROW(A1)))

Here's another example of an implicit intersection.

Enter the numbers 1,2,3,4,5 in A1:A5.

(Normally) enter this formula in B6:

=OFFSET(A1,,,5)

The result will be an error. Now, drag the formula up to B5 and note
the result, then drag up to B4, B3, B2, B1.

Now, drag the formula back down to B5 then F2CSE. Note the result.

These were 2 different formulas doing 2 totally different things so the
results are different but the implicit intersection rule dictated those
results.


--
Biff
Microsoft Excel MVP


"MartinW" wrote in message
...
Hi Group,

Can anyone explain this behaviour? Often when I copy
and paste an array formula from the newsgroups, the
formula will work straight away even though it hasn't
been committed with Ctrl+Shift+Enter and there are no
curly braces around it. If I then do an F2+Enter the formula
will fall down and requires a C+S+E to recommit it.

Take this example from a recent Bob Phillips post.

=MAX(IF(A1:A1000<"",ROW(A1:A1000)))

If I paste it anywhere outside column A, and then start
putting data in column A, the formula will correctly
return last row that has a number in col A, even though
it is an array formula and has not been committed
with C+S+E and there are no curly braces around it.

Any ideas why?

Regards
Martin












MartinW

Copy/Paste array formulae from the newsgroup
 
Thanks for trying Biff. It's all very strange. Like you
say it shouldn't happen like that. Hopefully another
2000 user can confirm whether or not they get
the same behaviour.

Thanks again
Martin


"T. Valko" wrote in message
...
Can you duplicate that or have I got something
really screwy happening here?


I *can not* duplicate that and I followed your steps exactly. I'm using
Excel 2002 (all service packs installed)

See inline comments

--
Biff
Microsoft Excel MVP


"MartinW" wrote in message
...
I'll try to explain it step by step what I am doing
as it certainly is strange....to me anyway.
I'm using XL2000 though that shouldn't matter (I think)

In a fresh worksheet I copy and paste the formula
separately into E4 F4 and G4.
I then,
Select E4, press F2 and commit with Enter
Select F4, press F2 and commit with C+S+E
Leave G4 as pasted.
All three formulae are showing 0

I then put a 1 in A1 which shows
E4 = 0
F4 = 1
G4 = 1


The results I get a

E4 = 0
F4 = 1
G4 = 0

I continue to put 1 down col A, when I get to A4
the formulae are showing
E4 = 1
F4 = 4
G4 = 4


The results I get a

E4 = 1
F4 = 4
G4 = 1

I then skip to A37 and put a 1 (or any number), the
formulae now show
E4 = 1
F4 = 37
G4 = 37


The results I get a

E4 = 1
F4 = 37
G4 = 1

Skip again to A739 and put a number in, shows
E4 = 1
F4 = 739
G4 = 739


The results I get a

E4 = 1
F4 = 739
G4 = 1


The pasted formula in G4 works in perfect unison
with the CSE formula in F4 even though it
has not been committed as an array.

Can you duplicate that or have I got something
really screwy happening here?


Well, I can't duplicate that and I don't have an explanation as to why
it's doing that for you. It shouldn't.

Hopefully others will see this thread and try it then let us know how it
worked for them.


Regards
Martin

"T. Valko" wrote in message
...
However if you copy the formula from my post

I did!

I can't reproduce what you're describing.


--
Biff
Microsoft Excel MVP


"MartinW" wrote in message
...
Thanks for the reply Biff,

As you say when you enter the formula normally it will
return 0 until you put data in A5 and it will then return 1.

However if you copy the formula from my post and
paste it into F4 and go through the same trial you will see
it correctly returns the row number of the last value.
If I then put a value in A37 the normally entered
formula in E4 will show 1, but the pasted version in F4
shows 37 the same as it would if it was committed
properly with CSE.

I'll have a play with your implicit intersection
examples and see if I can get a handle on that.

Thanks
Martin


"T. Valko" wrote in message
...
Are you sure it's working *exactly* as described?

If I enter the formula (normally entered) in E4 and I then enter a
random number in A1 the result of the formula is 0. If I then start
entering random numbers in cell A2 and continue down the column, the
formula continues to return 0 until there is an entry in cell A4. Then
the formula result is 1 which is correct.

This due to what's called the implicit intersection rule in regards to
arrays.

The formula and a piece of data are entered on the same row (could
also be a column) and the data cell is within the referenced range of
the formula. This is called an implicit intersection. Since the
formula references an array but is not array entered it only evaluates
the first element of the array.

=MAX(IF(A1<"",ROW(A1)))

Here's another example of an implicit intersection.

Enter the numbers 1,2,3,4,5 in A1:A5.

(Normally) enter this formula in B6:

=OFFSET(A1,,,5)

The result will be an error. Now, drag the formula up to B5 and note
the result, then drag up to B4, B3, B2, B1.

Now, drag the formula back down to B5 then F2CSE. Note the result.

These were 2 different formulas doing 2 totally different things so
the results are different but the implicit intersection rule dictated
those results.


--
Biff
Microsoft Excel MVP


"MartinW" wrote in message
...
Hi Group,

Can anyone explain this behaviour? Often when I copy
and paste an array formula from the newsgroups, the
formula will work straight away even though it hasn't
been committed with Ctrl+Shift+Enter and there are no
curly braces around it. If I then do an F2+Enter the formula
will fall down and requires a C+S+E to recommit it.

Take this example from a recent Bob Phillips post.

=MAX(IF(A1:A1000<"",ROW(A1:A1000)))

If I paste it anywhere outside column A, and then start
putting data in column A, the formula will correctly
return last row that has a number in col A, even though
it is an array formula and has not been committed
with C+S+E and there are no curly braces around it.

Any ideas why?

Regards
Martin















All times are GMT +1. The time now is 11:17 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com