我的Excel项目中有2张: 在“Sheet1”中,我有一个大数据表,有4列: DataTable [Country],DataTable [Brand],DataTable [Parameter],DataTable [Calculated]。
在“表2”上,我有一个仪表板。我有一个名为FilteredTable的表,它提供来自DataTable的数据。我有一个下拉命令,让用户选择国家,并相应地过滤表。
我希望FilteredTable不仅可以显示原始DataTable中的数据,还可以让用户更改[Parameter]列。在更改它时,我希望两个表中的[Calculated]列都会相应更新。如果用户将更改国家/地区,则FilteredTable将显示存储在DataTable中的[Country]和[Brand]组合的参数。如果用户将返回第一个国家/地区,则显示的参数将是用户输入的最后一个参数。
我有点困惑怎么做。 到目前为止我所做的是:
1)使用公式数组从DataFilter读取FilteredTable行。我这样反映[country],[brand]和[计算]
2)在DataTable [paramter]中,我以相同的方式从FilteredTable [parameter]读取公式数组。
它工作正常,直到我更改国家/地区,然后FilteredTable中的参数已经与新国家/地区不匹配,而在DataTable中,旧国家/地区的参数更改为0。
我在逻辑循环中。有出路吗?
由于
答案 0 :(得分:0)
您是否考虑使用3个表而不是2个?这将是:原始数据表,一个表,它从显示表中提取通过手动输入创建的所有值,以及显示表本身。
在VBA中,创建一个函数,每次在显示表中更改公式时都会运行该函数。该函数应该从用户获取新数据,并将更改的行复制到“手动输入”表中。对于显示表本身,您可以在每次进行更改时通过VBA手动重新计算,或者使用一个公式来查看手册表中是否有数据。如果手动表中有数据,则表示从中提取值。否则,将从原始数据表中提取数据。