ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   Single statement database/range processing with criteria (https://www.excelbanter.com/excel-worksheet-functions/89695-single-statement-database-range-processing-criteria.html)

DoctorG

Single statement database/range processing with criteria
 
Although Excel provides Database processing (DSUM etc) it does so with
"external" criteria - "external" meaning that they are defined in cells
outside the Database function.

I have seen posts that process ranges with really complex criteria defined
in a single statement. Having all search conditions within the cell statement
is preferable as far as I am concerned as it results in less messy
spreadsheets. Can anyone provide links to articles describing ways to process
ranges/databases with criteria such as the following in a single statement?

Capitalized words represent Fieldnames (column headings).

- find in PRICES_DATABASE the PRICE where ITEM = Search_Item and Search_Date
is = to PRICE_VALID_FROM and <= to PRICE_VALID_TO

- sum all AMOUNT in TRANSACTIONS_DATABASE where YEAR = 2006 and TRNS_TYPE =
"Sales"

Thanks in advance


Tom Ogilvy

Single statement database/range processing with criteria
 
If you want to extract the records or hide non conforming records, then it
would be unlikely that a worksheet function would be the usual approach. If
you want to sum the prices

=Sumproduct(--(Item=Search_Item),--(Price_Valid_From<=Search_Date),--(Price_
Valid_To=Search_Date),Prices))

=Sumproduct(--(Year(DateColumn)=2006),--(Trans_Type="Sales"),Amount)


These could be defined names (insert=Name=Define) or replaced by actual
ranges.

--
Regards,
Tom Ogilvy



"DoctorG" wrote in message
...
Although Excel provides Database processing (DSUM etc) it does so with
"external" criteria - "external" meaning that they are defined in cells
outside the Database function.

I have seen posts that process ranges with really complex criteria defined
in a single statement. Having all search conditions within the cell

statement
is preferable as far as I am concerned as it results in less messy
spreadsheets. Can anyone provide links to articles describing ways to

process
ranges/databases with criteria such as the following in a single

statement?

Capitalized words represent Fieldnames (column headings).

- find in PRICES_DATABASE the PRICE where ITEM = Search_Item and

Search_Date
is = to PRICE_VALID_FROM and <= to PRICE_VALID_TO

- sum all AMOUNT in TRANSACTIONS_DATABASE where YEAR = 2006 and TRNS_TYPE

=
"Sales"

Thanks in advance




DoctorG

Single statement database/range processing with criteria
 
Tom I don't want to extract or hide lines. I only need to sum values in a
database and locate a value (as is the price of an item on a given date).
Anyway, the summing method would be applicable to locate a value provided
there is only one matching record.

What I do not see in your answer, unfortunately, is a way to provide a
database range and the appropriate column headings (fieldnames ??) instead of
having to set up named ranges for every column I wish to use as a criterion.
I guess it's because we are using a range function instead of a database
function and only databases use the first row as field names. Any comment on
this is welcome.

I guess I'll stick to the SUMPRODUCT function. One last thing though...
When/why do we use the "--" outside the parentheses? What does it stand for?


All times are GMT +1. The time now is 08:35 AM.

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