Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.misc,microsoft.public.excel.programming
external usenet poster
 
Posts: 13
Default Named Ranges - Slow Workbooks!

I posted this earlier, but it went in a different direction...

I have several workbooks where I replaced array formulas with named ranges
to pull data from a tab that imports data from an Access database. There
were several thousand of these formulas. An example would be:

=IF($D$97<=E$11,IF($B$5=E$12,SUM(IF((Subdivision= $B$3)*(Builder=$B28)*(Date
=E$9)*(Date<F$9),(Count),0)),""),"")


I created the names since I wanted to have a dynamic range of values to
search since the database would return varying rows of data depending on
what was input in the database:

=OFFSET(Database!$E$3,0,0,COUNTA(Database!$E:$E),1 )

When I replaced the original formulas:

=IF($D$97<=E$11,IF($B$5=E$12,SUM(IF((Database!$C$ 3:$C$2500=$B$3)*(Database!
$D$3:$D$2500=$B28)*(Database!$E$3:$E$2500=E$9)*(D atabase!$E$3:$E$2500<=F$9)
,(Database!$E$3:$E$2500),0)),""),""))

with the named ranges, the workbooks have ground to a halt. It now takes
forever for them to update (they weren't speed demons in the first place
with so many arrays) and Macros run incredibly slow (5 minutes or more to
run!).

Did I do something wrong? Are there limitations to named ranges? Is there
something with a dynamically named range that would create this problem? I
thought I was trying to make the workbooks more efficient and allow for an
expanding range of data without having to 'anticipate' how many rows to
include in the array making less monitoring for me.

Help! Thanks!


  #2   Report Post  
Posted to microsoft.public.excel.misc,microsoft.public.excel.programming
external usenet poster
 
Posts: 968
Default Named Ranges - Slow Workbooks!

OFFSET is volatile. This means that every formula that contains OFFSET or is
dependent on a formula that contains OFFSET will always calculate at every
recalculation.
COUNTA is quite slow because it scans every cell in the used range of the
column you are counting.
Array formula are quite slow because each formula requires the creation and
calculation of virtual columns/rows, and all of the formulae in these
virtual columns/rows have to be calculated each time the array formulae is
calculated.

The solution is one or more of
- use a completely different approach (ie pivot tables or do your filtering
in ACCESS or ...)
- minimise the amount of repeated calculation by using helper cells/columns
(only do your COUNTA once, only do Database!$C$3:$C$2500=$B$3 once etc)
- sort your data and do subset calculations
- use more efficient formulae (DSUM, SUMPRODUCT, ...)

regards
Charles
______________________
Decision Models
FastExcel Version 2 now available.
www.DecisionModels.com/FxlV2WhatsNew.htm

"Karl Burrows" wrote in message
...
I posted this earlier, but it went in a different direction...

I have several workbooks where I replaced array formulas with named ranges
to pull data from a tab that imports data from an Access database. There
were several thousand of these formulas. An example would be:


=IF($D$97<=E$11,IF($B$5=E$12,SUM(IF((Subdivision= $B$3)*(Builder=$B28)*(Date
=E$9)*(Date<F$9),(Count),0)),""),"")


I created the names since I wanted to have a dynamic range of values to
search since the database would return varying rows of data depending on
what was input in the database:

=OFFSET(Database!$E$3,0,0,COUNTA(Database!$E:$E),1 )

When I replaced the original formulas:


=IF($D$97<=E$11,IF($B$5=E$12,SUM(IF((Database!$C$ 3:$C$2500=$B$3)*(Database!

$D$3:$D$2500=$B28)*(Database!$E$3:$E$2500=E$9)*(D atabase!$E$3:$E$2500<=F$9)
,(Database!$E$3:$E$2500),0)),""),""))

with the named ranges, the workbooks have ground to a halt. It now takes
forever for them to update (they weren't speed demons in the first place
with so many arrays) and Macros run incredibly slow (5 minutes or more to
run!).

Did I do something wrong? Are there limitations to named ranges? Is

there
something with a dynamically named range that would create this problem?

I
thought I was trying to make the workbooks more efficient and allow for an
expanding range of data without having to 'anticipate' how many rows to
include in the array making less monitoring for me.

Help! Thanks!




  #3   Report Post  
Posted to microsoft.public.excel.misc,microsoft.public.excel.programming
external usenet poster
 
Posts: 13
Default Named Ranges - Slow Workbooks!

Our group couldn't handle Pivot Tables (as much as I have tried!), plus we
need to print these for 15 monthly status reports (linked to Word).

So how would I create helper cells for arrays and the dynamic named ranges?
I counted and I think there are about 4500 array formulas (each month for a
5 year range for 5 or 6 builders on each worksheet x 15 worksheets) that are
almost identical (the only thing that changes is the current month date
range search). The array searches by Subdivision, then builder, then start
and end of month range. There are 15 sheets that are duplicates of each
other separating each subdivision. Each array includes the dynamic named
ranges for subd, builder, start and end date.

If you have any suggestions, it would be greatly appreciated! I have been
working to improve this for several years now!

Does your FastExcel program work on other users computers if I run it to
improve performance and then it is opened by another computer? In other
words, can I generate improved workbooks and then share them or do they have
to have the add-in to run some of the features?

Thanks!


"Charles Williams" wrote in message
...
OFFSET is volatile. This means that every formula that contains OFFSET or

is
dependent on a formula that contains OFFSET will always calculate at every
recalculation.
COUNTA is quite slow because it scans every cell in the used range of the
column you are counting.
Array formula are quite slow because each formula requires the creation

and
calculation of virtual columns/rows, and all of the formulae in these
virtual columns/rows have to be calculated each time the array formulae is
calculated.

The solution is one or more of
- use a completely different approach (ie pivot tables or do your

filtering
in ACCESS or ...)
- minimise the amount of repeated calculation by using helper

cells/columns
(only do your COUNTA once, only do Database!$C$3:$C$2500=$B$3 once etc)
- sort your data and do subset calculations
- use more efficient formulae (DSUM, SUMPRODUCT, ...)

regards
Charles
______________________
Decision Models
FastExcel Version 2 now available.
www.DecisionModels.com/FxlV2WhatsNew.htm

"Karl Burrows" wrote in message
...
I posted this earlier, but it went in a different direction...

I have several workbooks where I replaced array formulas with named

ranges
to pull data from a tab that imports data from an Access database.

There
were several thousand of these formulas. An example would be:



=IF($D$97<=E$11,IF($B$5=E$12,SUM(IF((Subdivision= $B$3)*(Builder=$B28)*(Date
=E$9)*(Date<F$9),(Count),0)),""),"")


I created the names since I wanted to have a dynamic range of values to
search since the database would return varying rows of data depending on
what was input in the database:

=OFFSET(Database!$E$3,0,0,COUNTA(Database!$E:$E),1 )

When I replaced the original formulas:



=IF($D$97<=E$11,IF($B$5=E$12,SUM(IF((Database!$C$ 3:$C$2500=$B$3)*(Database!


$D$3:$D$2500=$B28)*(Database!$E$3:$E$2500=E$9)*(D atabase!$E$3:$E$2500<=F$9)
,(Database!$E$3:$E$2500),0)),""),""))

with the named ranges, the workbooks have ground to a halt. It now

takes
forever for them to update (they weren't speed demons in the first place
with so many arrays) and Macros run incredibly slow (5 minutes or more

to
run!).

Did I do something wrong? Are there limitations to named ranges? Is

there
something with a dynamically named range that would create this problem?

I
thought I was trying to make the workbooks more efficient and allow for

an
expanding range of data without having to 'anticipate' how many rows to
include in the array making less monitoring for me.

Help! Thanks!






  #4   Report Post  
Posted to microsoft.public.excel.misc,microsoft.public.excel.programming
external usenet poster
 
Posts: 968
Default Named Ranges - Slow Workbooks!

Hi Karl,

Since I don't know the layout of your sheets you may need to adjust this a
little, but here is my suggestion:

- Sort the data by month within builder within subdivision so that all the
data is in a contiguous block of rows for each "array formula"
- calculate the start and end row number for each block of rows in helper
rows/columns somewhere (this is the only difficult bit, you can use
functions like MATCH and COUNTIF etc if there are varying numbers of
builders within each subdivision).
- use OFFSET and the start end end row numbers to return a range which is
the contiguous block of rows
- this process should have reduced the number of conditions to either zero
(so use SUM) or 1 (use SUMIF) so that you dont need to use an array formula
- If you still have multiple conditions within the contiguous block of rows
then you have to use an array formula, but it will only cover a very small
number of rows and fewer conditions and so will calculate much faster.

There is an example of this technique described at
http://www.DecisionModels.com/optspeedk.htm
Also there is another example of using this technique in the FastExcel
sample problem which you will find at
http://www.DecisionModels.com/Downloads.htm

You can use FastExcel to analyse and improve workbooks and you will only
need it installed on the other users computers if you choose to use the
additional FastExcel functions or the additional FastExcel Excel calculation
modes.


regards
Charles
______________________
Decision Models
FastExcel Version 2 now available.
www.DecisionModels.com/FxlV2WhatsNew.htm

"Karl Burrows" wrote in message
...
Our group couldn't handle Pivot Tables (as much as I have tried!), plus we
need to print these for 15 monthly status reports (linked to Word).

So how would I create helper cells for arrays and the dynamic named

ranges?
I counted and I think there are about 4500 array formulas (each month for

a
5 year range for 5 or 6 builders on each worksheet x 15 worksheets) that

are
almost identical (the only thing that changes is the current month date
range search). The array searches by Subdivision, then builder, then

start
and end of month range. There are 15 sheets that are duplicates of each
other separating each subdivision. Each array includes the dynamic named
ranges for subd, builder, start and end date.

If you have any suggestions, it would be greatly appreciated! I have been
working to improve this for several years now!

Does your FastExcel program work on other users computers if I run it to
improve performance and then it is opened by another computer? In other
words, can I generate improved workbooks and then share them or do they

have
to have the add-in to run some of the features?

Thanks!


"Charles Williams" wrote in message
...
OFFSET is volatile. This means that every formula that contains OFFSET

or
is
dependent on a formula that contains OFFSET will always calculate at

every
recalculation.
COUNTA is quite slow because it scans every cell in the used range of

the
column you are counting.
Array formula are quite slow because each formula requires the creation

and
calculation of virtual columns/rows, and all of the formulae in these
virtual columns/rows have to be calculated each time the array formulae

is
calculated.

The solution is one or more of
- use a completely different approach (ie pivot tables or do your

filtering
in ACCESS or ...)
- minimise the amount of repeated calculation by using helper

cells/columns
(only do your COUNTA once, only do Database!$C$3:$C$2500=$B$3 once etc)
- sort your data and do subset calculations
- use more efficient formulae (DSUM, SUMPRODUCT, ...)

regards
Charles
______________________
Decision Models
FastExcel Version 2 now available.
www.DecisionModels.com/FxlV2WhatsNew.htm

"Karl Burrows" wrote in message
...
I posted this earlier, but it went in a different direction...

I have several workbooks where I replaced array formulas with named

ranges
to pull data from a tab that imports data from an Access database.

There
were several thousand of these formulas. An example would be:




=IF($D$97<=E$11,IF($B$5=E$12,SUM(IF((Subdivision= $B$3)*(Builder=$B28)*(Date
=E$9)*(Date<F$9),(Count),0)),""),"")

I created the names since I wanted to have a dynamic range of values

to
search since the database would return varying rows of data depending

on
what was input in the database:

=OFFSET(Database!$E$3,0,0,COUNTA(Database!$E:$E),1 )

When I replaced the original formulas:




=IF($D$97<=E$11,IF($B$5=E$12,SUM(IF((Database!$C$ 3:$C$2500=$B$3)*(Database!



$D$3:$D$2500=$B28)*(Database!$E$3:$E$2500=E$9)*(D atabase!$E$3:$E$2500<=F$9)
,(Database!$E$3:$E$2500),0)),""),""))

with the named ranges, the workbooks have ground to a halt. It now

takes
forever for them to update (they weren't speed demons in the first

place
with so many arrays) and Macros run incredibly slow (5 minutes or more

to
run!).

Did I do something wrong? Are there limitations to named ranges? Is

there
something with a dynamically named range that would create this

problem?
I
thought I was trying to make the workbooks more efficient and allow

for
an
expanding range of data without having to 'anticipate' how many rows

to
include in the array making less monitoring for me.

Help! Thanks!








  #5   Report Post  
Posted to microsoft.public.excel.misc,microsoft.public.excel.programming
external usenet poster
 
Posts: 459
Default Named Ranges - Slow Workbooks!

Go pay homage to the site which is Charles Williams's Calculation Secrets:

http://www.decisionmodels.com/calcsecrets.htm

There's lots of details info there, including tips for better dynamic ranges.

--

"Karl Burrows" wrote in message ...
I posted this earlier, but it went in a different direction...

I have several workbooks where I replaced array formulas with named ranges
to pull data from a tab that imports data from an Access database. There
were several thousand of these formulas. An example would be:

=IF($D$97<=E$11,IF($B$5=E$12,SUM(IF((Subdivision= $B$3)*(Builder=$B28)*(Date
=E$9)*(Date<F$9),(Count),0)),""),"")


I created the names since I wanted to have a dynamic range of values to
search since the database would return varying rows of data depending on
what was input in the database:

=OFFSET(Database!$E$3,0,0,COUNTA(Database!$E:$E),1 )

When I replaced the original formulas:

=IF($D$97<=E$11,IF($B$5=E$12,SUM(IF((Database!$C$ 3:$C$2500=$B$3)*(Database!
$D$3:$D$2500=$B28)*(Database!$E$3:$E$2500=E$9)*(D atabase!$E$3:$E$2500<=F$9)
,(Database!$E$3:$E$2500),0)),""),""))

with the named ranges, the workbooks have ground to a halt. It now takes
forever for them to update (they weren't speed demons in the first place
with so many arrays) and Macros run incredibly slow (5 minutes or more to
run!).

Did I do something wrong? Are there limitations to named ranges? Is there
something with a dynamically named range that would create this problem? I
thought I was trying to make the workbooks more efficient and allow for an
expanding range of data without having to 'anticipate' how many rows to
include in the array making less monitoring for me.

Help! Thanks!



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
Stop named ranges from copying into other workbooks Mike Excel Worksheet Functions 1 April 2nd 08 04:23 PM
Formula To Use A Dynamic Named Ranges With VLOOKUP On Different Workbooks Minitman Excel Worksheet Functions 6 August 28th 07 12:18 AM
Named ranges which seem to reference old workbooks/worksheets mhudsonak Excel Discussion (Misc queries) 2 September 11th 06 03:42 PM
Like 123, allow named ranges, and print named ranges WP Excel Discussion (Misc queries) 1 April 8th 05 06:07 PM
How to Link named ranges from multiple Workbooks into a single Wo. PMAP_HELP Excel Discussion (Misc queries) 1 December 14th 04 05:51 PM


All times are GMT +1. The time now is 12:47 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"