我有一个礼品卡号数据库,每个交易都与每个号码相关联。有些是免费的,有些则有 5 或 6 个。我需要想出一个公式来表示:
如果此列中某个卡号与另一个卡号匹配,则计算“费用”列中相应行的费用。我尝试了 SUMIF 函数的变体,得到了结果,但不是我想要的结果。主要问题之一是卡号单元格是扫描范围的一部分。所以它总是能识别自己。
任何帮助都将不胜感激。提前谢谢您。
编辑:很抱歉。我目前尝试的方法是:=SUMIF(D2:D30895,A2=A2:A30895)
说问题与范围有关的人是对的。因为 A2 在本例中位于 A 列,所以它会自行恢复。我也尝试过 If-Then 语句,但这些都以灾难告终。
编辑 2:使用建议的公式:=SUMIF($D$2:D2,A2,A$2:A2) 并将其向下拖动,结果为全零。我有一个小范围和一个示例,您可以在其中看到应该有余额的卡,但公式显示为 0。我知道这是一个奇怪的具体请求,我感谢所有帮助。
编辑 3:撤消上一次编辑。移至数据透视表,大部分数据都符合我的需要。一些包含多笔交易的卡计算不正确。我附上了一张包含 3 个独立页面的屏幕截图。
1-主要原始数据2-数据透视表“错误”3-通过单击数据透视表行创建新表。
答案1
正如我在评论中提到的那样,既然您已经给出了一个例子,请将第 2 行的公式更改为:
=SUMIF($D$2:D2,A2, A$2$:A2)
$ 锚定公式的顶部,现在将公式向下拖动,您将看到公式展开,因此在第 35 行您应该看到:
=SUMIF($D$2:D35,A35, A$2$:A35)
如果这不起作用请告诉我。
- - 编辑 - - - - - -
请注意,此公式样式假设日期按时间顺序排列(就好像每次有人使用礼品卡时,您都会在工作表底部添加一个新行)。如果数据没有排序,则数据透视表将是首选方法。