Quote:> The subject line says it all...
Here's a slick utility I wrote in Excel 4.0 where is checks
the identity of two values and if there the same..it sums
up some values in other columns, deletes the initial row
and inserts a row between the two...it may be a little
confusing at first...but study it...it's all there..
SUM_UP()
=ECHO(FALSE)
new_count=0
db_rows=ROWS(!Database)
=FOR("count99",1,db_rows)
= select_db_row()
= IF(count99>1)
=
select_db_row(current_record+((count99-1)+new_count))
= END.IF()
= SET.NAME("selected_record",SELECTION())
= IF(ISBLANK(ACTIVE.CELL()))
= select_db_row(current_record+1)
= SET.NAME("selected_record",SELECTION())
= END.IF()
= SET.NAME("series",OFFSET(selected_record,,1,1,1))
= FOR.CELL("count9",OFFSET(!Database,,1,,1))
= select_db_row(current_record+1)
= SET.NAME("trial_record",SELECTION())
db_row=ROW(trial_record)
= IF(ROWS(!Database)>db_rows)
db_rows=ROWS(!Database)
= END.IF()
= IF(db_row>ROWS(!Database))
= BREAK()
= END.IF()
= IF(REFTEXT(trial_record)=REFTEXT(selected_record))
current_record=current_record+1
= select_db_row(current_record)
= END.IF()
= IF(ISBLANK(ACTIVE.CELL()))
= select_db_row(current_record+1)
= END.IF()
= SET.NAME("trial_record",SELECTION())
= SET.NAME("dup_series",OFFSET(trial_record,,1,1,1))
= IF(ISBLANK(dup_series))
= RETURN()
= END.IF()
= IF(ISBLANK(series))
= RETURN()
= END.IF()
= IF(dup_series<>series)
= INSERT(2)
new_count=new_count+1
= BREAK()
= END.IF()
= IF(dup_series=series)
=sum_FUNDS()
= EDIT.DELETE(2)
= select_db_row(current_record-1)
= END.IF()
= IF(ROW(selected_record)>db_rows)
= BREAK()
= END.IF()
= NEXT()
=NEXT()
=RETURN()
select_db_row()
=ARGUMENT("record_no",1)
=IF(ISERROR(record_no))
record_no=1
=ELSE.IF(record_no<1)
record_no=1
=ELSE.IF(db_rows<=record_no)
record_no=db_rows-1
=END.IF()
=SELECT(OFFSET(!Database,(record_no),,1))
current_record=record_no
=RETURN()
sum_FUNDS()
=MATCH("ALLOCATED FUNDS",INDEX(!Database,1,),0)
=FORMULA("=("&OFFSET(trial_record,,B83-1,1,1)&"+"&OFFSET(se
lected_record,,B83-1,1,1)&")",OFFSET(selected_record,,B83-1
,1,1))
=SELECT(selected_record)
=COPY()
=PASTE.SPECIAL(3)
=SELECT(trial_record)
=RETURN()
there are 3 functions here...one calling another...check it
out and good luck!
Ed