我有一个总计列表,然后是另一个摘要总计列表 我需要找到总列中哪些单元格与摘要总数不匹配,并且列表太大而无法通过眼睛和计算器完成所有操作! 这是我的总计列表的开头
275
815
1655
9783.46
3393
4487.26
1691
2376.66
1997
100
6167.91
675
8843
我的总结总数
1090
1655
9783.46
9571.26
2376.66
1997
100
620.3
15685.91
您可以看到620.3尚未匹配的原因:
Totals Summary Totals
275+815 1090
1655 1655
9783.46 9783.46
3393+4487.26+1691 9571.26
2376.66 2376.66
1997 1997
100 100
??? 620.3
6167.91+675+8843 15685.91
我需要找到这样的其他人。我可以用的任何公式吗?
答案 0 :(得分:1)
将其粘贴在当前工作簿的模块中:
Function SummaryMatch(Totals As Range, SummaryTotals As Range) As Variant()
Dim Sum As Double
Dim T As Long, S As Long, I As Long
Dim Result() As Variant
Result = SummaryTotals.Value
T = 1: S = 1
Do
If T > Totals.Rows.Count _
Or S > SummaryTotals.Rows.Count _
Then Exit Do
Sum = 0: I = T
Do
Sum = Sum + Totals(I)
I = I + 1
If Abs(Sum - SummaryTotals(S)) < 0.001 Then
Debug.Print SummaryTotals(S) & " T "
Result(S, 1) = True
T = I
S = S + 1
Exit Do
ElseIf Sum > SummaryTotals(S) + 0.001 Then
Debug.Print SummaryTotals(S) & " F "
Result(S, 1) = False
S = S + 1
Exit Do
End If
Loop While True
Loop While True
SummaryMatch = Result
End Function
如果您的总数在A2:A14中,并且汇总总数在C2:C10中,那么您将突出显示E2:E10并输入= SummaryMatch(A2:A14,C2:C10)到E2并按Control-Shift-Enter,因为该函数返回一个数组。公式将显示为{= SummaryMatch(A2:A14,C2:C10)},并将为每个汇总总计返回一个真/假值,表示是否有总计加起来该值。
A B C D E
1 Totals Summary Match
2 275 1090 TRUE
3 815 1655 TRUE
4 1655 9783.46 TRUE
5 9783.46 9571.26 TRUE
6 3393 2376.66 TRUE
7 4487.26 1997 TRUE
8 1691 100 TRUE
9 2376.66 620.3 FALSE
10 1997 5685.91 TRUE
11 100
12 6167.91
13 675
14 8843
该脚本保存一个指向两个列表的指针(T表示Totals列表,S表示Summary Totals列表)以及一个向前扫描Totals列表的索引(I)。最初,T和S都设置为从顶部开始(每个列表的第1行),然后启动循环。
循环首先检查我们是否位于其中一个列表的底部,然后将当前Sum设置为零并开始向前扫描,将当前Total添加到Sum中,然后将Sum与当前Summary Total进行比较。
如果Sum与当前的Summary Total匹配,那么我们将S递增到下一个Summary Total并将当前Total设置为当前索引(这样我们就不再对这些值求和)然后我们启动主循环试。
如果Sum超过当前的Summary Total,则当前的Summary Total不匹配,我们继续下一个,而不将当前的Total更改为当前的Indegx(因此我们再次开始扫描当前的Total)
答案 1 :(得分:0)
某些较新版本的Excel有&#34;删除重复项&#34;数据菜单中提供的功能。我将您的列表粘贴到Excel for Mac 2011中,选择Remove Duplicates,并留下以下数据。这有帮助吗?
Values
如果有必要,您可以先在每个组中删除重复项,然后在列出的两个组中删除重复项,但我不确定它对您的应用程序是否重要。