我有一个数据库(附带示例),可以按月从其他70个文件中自动更新。
我想根据不同的标准提取十大订购产品。(附带示例)该文件将更加复杂,只是为了使演示保持简单。
我使用了一些公式=LARGE('Part numbers'!A3:A301,ROW(INDIRECT("1:"&ROWS('Part numbers'!A3:A301))))
& =SUMPRODUCT((Combine!B1:B10000='DATA '!Y3)*(Combine!C1:AB1=A1)*(Combine!D1:D10000=AC2),Combine!C1:AB10000)
当我使用INDEX MATCH
来提取产品的名称时,如果有两个相同的值,公式总是在第一个产品名称上弯曲+我需要添加一个新标准,即month
提前感谢您提出任何建议
如果是宏或公式
,则可以答案 0 :(得分:0)
也许枢轴表可以帮到你吗? 有一些自动过滤器显示顶部x 如果你想在数据透视表上设置一个动态过滤器你可以使用:
Sub UpdateFilter()
Dim m As String
m = Month(Now())
[filPivot] = m
End Sub
答案 1 :(得分:0)
问题解决得更少。
我现在遇到的另一个问题是公式=SUMPRODUCT((Combine!$B$1:$B$5000='DATA '!Y3)*(Combine!$C$1:$AB$1=$C$1)*(Combine!$D$1:$D$5000=$AC$2),Combine!$C$1:$AB$5000)
最初我有公式 = 5000 的范围,但每当我的数据库更新时,这个数字会减少,直到达到 = 10 强>
我的数据库是由每次删除空白的宏更新的,我相信这可能是个问题。
如何让 = 5000 范围稳定?
答案 2 :(得分:0)
尝试使用INDIRECT
- 函数
=SUMPRODUCT((INDIRECT("Combine!$B$1:$B$5000")='DATA '!Y3)*(Combine!$C$1:$AB$1=$C$1)*(INDIRECT("Combine!$D$1:$D$5000")=$AC$2),INDIRECT("Combine!$C$1:$AB$5000"))
这可确保您引用的范围,例如例如,当删除第2行时,$B$1:$B$5000
不会成为$B$1:$B$4999
。