|
Working With Lists
|
Excel is ideal for working with lists of data. This page describes a
number of worksheet formulas for extracting basic information about a list --
sums, minimums, maximums, and so on. It also show you how to
restrict these functions to only certain values in the list, such as values
greater than zero, or values between two other values.
Also, there are a few formulas for transposing a list (changing a row into a
column) and reversing the order of a list, or both. Finally there
are a few miscellaneous formulas that didn't see to fit on other pages.
All of the
formulas on this page are array formulas, so you must
press Ctrl+Shift+Enter rather than just Enter when you enter the formula, and
whenever you edit it later.
|
|
| |
SUM, MIN, MAX, and AVERAGE
|
|
|
In this section, we will refer to a list of data named List. For more
information about naming a range, click here.
You are already familiar with the basic SUM, MIN, MAX, and
AVERAGE formulas, so they won't be explained here. Refer to the on-line
help manual for basic information about these functions. Instead, for each
function, use the function to use only the following values from List:
- Values Not Equal To Zero
- Values Greater Than Zero
- Values Between An Upper And Lower Limit
For example, you can find the average of those values in
the List that are greater than zero, or between 10 and 20.
|
|
|
In
all of these formulas, we will be using a range called List, which refers to the
data show in the figure to the left.
Of course, your actual data will be different, and
your List can be of any length. The values in this example will clearly
show the different results when we're calculating the results using only
non-zero values, or values between an upper and a lower limit.
|
|
|
|
Non-Zero Values
You can restrict the values used by the functions to only
those values (positive and negative) that are not equal to zero. Remember,
all these formulas are array formulas.
=SUM(IF(List<>0,List,FALSE))
returns the sum of non-zero values, or 11. Of course, summing non-zero
values is never really necessary (since the 0 values don't contribute to the sum
in any case), but the formula is illustrative nonetheless.
=AVERAGE(IF(List<>0,List,FALSE))
returns the average of non-zero values, or 1.1. If we used the AVERAGE
function on the entire list, the result would be 0.73, because the 5 zero values
would be included. In this function, they are not included.
=MIN(IF(List<>0,List,FALSE))
returns the minimum of non-zero values, or -4.
=MAX(IF(List<>0,List,FALSE))
returns the maximum of non-zero values, or 6.
|
|
|
Positive Values
You can restrict the values used by the functions to only
positive values -- those that are greater than zero. Remember, all these
formulas are array formulas.
=SUM(IF(List>0,List,FALSE))
returns the sum of positive values, or 21. The negative numbers are not
included in the sum.
=AVERAGE(IF(List>0,List,FALSE))
returns the average of positive values, or 3.5.
=MIN(IF(List>0,List,FALSE))
returns the minimum of positive values, or 1.
=MAX(IF(List>0,List,FALSE))
returns the maximum of positive values, or 6.
|
|
|
Values In An Interval
You can restrict the values used by the functions to only
values between two other values. In these formulas, we will use two more
named cells -- LLim which is the lower limit, and ULim, which is the upper
limit. When we say "between" two numbers, we mean inclusively
between. In other words, the numbers 2, 3, and 4 are all between 2 and
4. If you want to have the formulas work with exclusively between
intervals (only the number 3 is between 2 and 4), change the <= and >=
operators to < and >, respectively. Remember, all these
formulas are array formulas. In the examples, assume that LLim
contains 2 and ULim contains 5.
=SUM(IF((List>=LLim)*(List<=ULim),List,FALSE))
returns the sum of values between 2 and 5, or 14.
=AVERAGE(IF((List>=LLim)*(List<=ULim),List,FALSE))
returns the average of values between 2 and 5, or 3.5.
=MIN(IF((List>=LLim)*(List<=ULim),List,FALSE))
returns the minimum of values between 2 and 5, or 2.
=MAX(IF((List>=LLim)*(List<=ULim),List,FALSE))
returns the maximum of values between 2 and 5, or 5.
|
|
|
Reversing The Order Of
A List
You can use array formulas to reverse the order of a
list.
Reversing the Order Of A Column
Still using the List from the previous section, we can
reverse its order, which will give us the list shown below. This formula
uses a named range called RevList, which refers to the range of the new,
reversed list.
|
|
|
Enter
this array formula in the first cell of the RevList range, then select the
entire RevList range, and use Fill Down from the Edit menu to copy this formula
down into all the cells in the RevList range. Remember this is an array
formula.
=OFFSET(List,MAX(ROW(RevList))-ROW(),0)
This formula will work only for reversing the order of a
column. To reverse the order of a row, see the next section.
|
|
|
|
Reversing The Order Of A Row
To reverse the order of a row, use the following array
formula:
=OFFSET(RowList,0,MAX(COLUMN(RevRowList))-COLUMN())
In this formula, RowList refers to the original row of
data, and RevRowList refers to the range containing the reversed list.
Enter this array formula into the first (left-most) cell of RevRowList, select
the entire RevRowList range, and use Fill Right from the Edit menu to copy this
formula into all the cells in the RevRowList range.
|
|
| |
Example RowList and RevRowList ranges are here.
|
|
|
|
Transposing A List Of Data
You can use array formulas to transpose a list of
data. Transposing a range means turning a row into a column, and turning a
column into a row. In other words, it rotates the orientation of the data
by 90 degrees. Using the techniques from the Reversing The Order
Of A List sections above, we can keep the data in the original order during
the transpose, or we can reverse the order. The next sections
describe the techniques to do both.
Transposing A Column Into A Row
These functions will transpose a column list, CList, into
a row. To keep the data in the original order, create a named range called
RList referring to the cells in a row that is to contain the transposed
data. Then use the following array formula:
=OFFSET(CList,COLUMN()-MIN(COLUMN(RList)),0)
Fill this formula into the entire RList range.
To reverse the order of the value in CList, create a named
range called RevRList, and use the following array formula:
=OFFSET(CList,MAX(COLUMN(RevRList))-COLUMN(),0)
Fill this formula into the entire RevRList range.
|
|
| |
Examples of data in CList, RList, and RevRList are shown
in the figure here.
|
|
|
|
Transposing A Row Into A Column
These functions will transpose a row list, RowList, into a
column. To keep the data in the original order, create a named range
called TXList referring to the cells in a column that is to contain the
transposed data. Then use the following array formula:
=OFFSET(RowList,0,ROW()-MIN(ROW(TXList)))
Fill this formula into the entire TXList range.
To reverse the order of the value in RowList, create a
named range called TList, and use the following array formula:
=OFFSET(RowList,0,MAX(ROW(TList))-ROW())
|
|
| |
Fill this formula into the entire TList range.
Examples of data in RowList, TXList, and TList are shown
in the figure below.
|
|
|
|
Other List Formulas
Most Or Least Common
Value In A List
The following formula will return the most frequent value
in a range:
=INDEX(Rng,MATCH(MAX(COUNTIF(Rng,Rng)),COUNTIF(Rng,Rng),0))
where Rng
is the range of the list.
The following formula will return the least frequent
value in a range:
=INDEX(Rng,MATCH(MIN(COUNTIF(Rng,Rng)),COUNTIF(Rng,Rng),0))
where Rng
is the range of the list.
In both of the these formulas, if there are two different
values, each of which occurs the minimum or maximum number of times, the formula
will return the one which appears earlier in the list.
|
|
|
Additional information about working with data in lists
can be found on the following pages:
Duplicate And Unique Items In Lists
Eliminating Blank Cells From Lists
More advanced techniques of transposing ranges are described
on the following page:
Array To Columns
|
|
|
|
|
|