微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Microsoft Access中的Countif和Sumif

如何解决Microsoft Access中的Countif和Sumif

我来找您有关我的Access数据库的问题。

为简单起见,我有两个表ProductsCustomers

Products table

Customers table

这些表来自我创建的用于跟踪销售情况的简单Excel文件

在此文件中,ItemCount表中的字段TotalBillCustomers是使用countifsumif的计算字段,如下所示:

ItemCount : =COUNTIF(Products[Customer],[@Customer])

TotalBill : =SUMIF(Products[Customer],[@Customer],Products[Price])

我已经绝望地意识到,MS Access在计算字段中没有提供这些功能,但是必须有一种方法可以做到如此基本。

表必须保持分开。

如果有人能以我最感激的方式帮助我

谢谢大家阅读!

解决方法

这看起来像是联接和聚合:

=IF(ISNA(VLOOKUP(A2,$D$2:$D$4,1,FALSE)),"No","Yes")

请注意,您不应使用客户名称来关联这两个表,而应使用客户ID,该ID大概是客户表的主键。

,

您没有提及只是想要结果还是要使用计算值更新Customers表列。因此,如果您要显示所有客户表单customers表,即使Products表上没有交易,那么请使用以下查询

SELECT Customers.CustomerID,Customers.Customer,P.Cnt AS ItemCount,P.Sm AS TotalBill
FROM (SELECT products.customer AS PC,Count(Products.Product) AS Cnt,Sum(Products.Price) AS Sm FROM Products GROUP BY Products.Customer)  AS P 
RIGHT JOIN Customers ON P.PC = Customers.Customer;

尽管MS-Access不鼓励将计算值存储到表中[根据需要运行查询或报告],但是您可以根据需要进行操作。因此,要使用Customers表中的值更新Products表,可以在UPDATE查询下面尝试。

UPDATE Customers SET Customers.ItemCount = 
DCount("Product","Products","Customer= '" & Customers.Customer & "'"),Customers.TotalBill = 
DSum("Price","Customer= '" & [Customers].[Customer] & "'");

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。