Solved

Is there a way to do the equivalent of Excel's Sumifs() in an Access Expression (or VBA)

Posted on 2010-11-26
9
1,184 Views
Last Modified: 2012-05-10

I have a table in Access with information (see attached).  I'm trying to figure out if there is a way to get the sum of a column (field) where a certain criteria in two other fields is met.  For example, I'd like to get year to date (YTD) totals for a given account.  So, I'd need the total sales for a given account (criteria #1) for all months between Jan. and the current records Month.  Does anyone know if there is a way to do this in Access?
Sumifs-AccessEquivalent.xlsx
0
Comment
Question by:BBlu
  • 5
  • 2
  • 2
9 Comments
 
LVL 44

Accepted Solution

by:
GRayL earned 200 total points
Comment Utility
This do it?

SELECT Sum([Field] from myTable WHERE Year(AcctDate) = Year(Date()) AND AcctNo = [Enter Acct No];
0
 

Author Comment

by:BBlu
Comment Utility
Probably pretty close, but I'd like they date criteria to be for any date on or before the date of the current record.  How would that change the code? Also, that is a SQL statement.  Is there an expression that I could use in a a query to add a field with that data?
0
 
LVL 11

Expert Comment

by:Missus Miss_Sellaneus
Comment Utility
you need something like this..

SELECT acct, SUM(IIF(Month >= january AND Month <= currentmonth, Sales, 0)) AS YTDSales
 FROM table1
 HAVING YTDSales <> 0



0
 

Author Comment

by:BBlu
Comment Utility
Thank you very much.  But that would be the sql for a query, right?  Is there a way to do it in an expression.
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 11

Assisted Solution

by:Missus Miss_Sellaneus
Missus Miss_Sellaneus earned 200 total points
Comment Utility
Maybe I got a little too fixated on the IIF part of your question.

Do you want to see only those rows that had sales during the given date range? If so, you only need to use a WHERE clause like GRavL showed you.

If you want to include customer records that may not have sales in that date range, you'll need the SUM/IIF.

Do you want to prompt the user for the date range?
0
 

Author Comment

by:BBlu
Comment Utility
I'm actually trying to reproduce an excel file our sales team has been manually doing for years.  We have all of the data in two access tables.  For each account we have a matrix with columns for all months in the current period.  We then have rows for Sales, YTD sales, Payments, YTD Payments.  (If I can figure out one, I can do both; that's why I didn't mention the pmts. part).  Anyhow, I was thinking I could mimic the excel file by:

1. creating a query and adding a field/column for the YTD total for each record.  For example, if the record has:
a. Account= 1234
b. Month=3/1/10 (March 2010)
c. Sales= $340
I could add a field
d. YTDSales = $640 (if Jan was $200 and Feb was $100, for example)

2. I could then do a Union Query something like
Select "Sales" as Category, Account, Month, Sales from SalesTable
Union All
Select "YTD" as Category, Account, Month, YTDSales from SalesQuery

And if I I had a table that ordered the 'Category' Field, I could reproduce what I'm going after (see attached)
DesiredReport.xlsx
0
 

Author Comment

by:BBlu
Comment Utility
I almost figured it out..I guess the real question is:
Is there a way to have multiple criteria in DSum?

DSum("UnitPrice", "Order Details", "OrderID = 10248")
0
 

Author Comment

by:BBlu
Comment Utility
I figured out that you can use "AND" to add multiple criteria.  But I did not know how to do it in SQL either, so you helped.  Thanks.
0
 
LVL 44

Expert Comment

by:GRayL
Comment Utility
Thanks, glad to help.
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
Select2 jquery help 9 40
Query output to Excel producing error 7 27
Splitting out Data 14 26
Error in SQL Query 36 33
The first two articles in this short series — Using a Criteria Form to Filter Records (http://www.experts-exchange.com/A_6069.html) and Building a Custom Filter (http://www.experts-exchange.com/A_6070.html) — discuss in some detail how a form can be…
If you find yourself in this situation “I have used SELECT DISTINCT but I’m getting duplicates” then I'm sorry to say you are using the wrong SQL technique as it only does one thing which is: produces whole rows that are unique. If the results you a…
Familiarize people with the process of utilizing SQL Server views from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Access…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now