Page 389 - Excel 2007 Bible
P. 389

23_044039 ch18.qxp  11/21/06  11:09 AM  Page 346
                                   Part II
                                              Working with Formulas and Functions
                                             The IFERROR function is new to Excel 2007. For compatibility with older versions, use this formula:
                                                  {=IF(ISERR(SMALL(IF(Data>0,ROW(INDIRECT(“1:”&ROWS(Data)))),
                                                  ROW(INDIRECT(“1:”&ROWS(Data))))),””,INDEX(Data,SMALL(IF
                                                  (Data>0,ROW(INDIRECT(“1:”&ROWS(Data)))),ROW(INDIRECT
                                                  (“1:”&ROWS(Data))))))}
                                       FIGURE 18.9
                                      Using an array formula to return only the positive values in a range.








                                             Returning nonblank cells from a range
                                             The following formula is a variation on the formula in the preceding section. This array formula works with
                                             a single-column vertical range named Data. The array formula is entered into a range of the same size as
                                             Data and returns only the nonblank cell in the Data range.

                                                  {=IFERROR(INDEX(Data,SMALL(IF(Data<>””,ROW(INDIRECT(“1:”&ROWS(Data)))),
                                                  ROW(INDIRECT(“1:”&ROWS(Data))))),””)}
                                             For compatibility with versions prior to Excel 2007, use this formula:
                                                  {=IF(ISERR(SMALL(IF(Data<>””,ROW(INDIRECT(“1:”&ROWS(Data)))),
                                                  ROW(INDIRECT(“1:”&ROWS(Data))))),””,INDEX(Data,SMALL(IF(Data
                                                  <>””,ROW(INDIRECT(“1:”&ROWS(Data)))),ROW(INDIRECT(“1:”&ROWS
                                                  (Data))))))}






                                      346
   384   385   386   387   388   389   390   391   392   393   394