2015-11-04 103 views
2

我是一名研究生,追求我的地质学硕士(又名:我不是Excel专家),目前正在研究我的论文已经遇到了问题。计算过滤数据的模式

我的论文的主要观点是要传达在路易斯安那州陆上区留下大量未被发现的碳氢化合物。我试图通过显示路易斯安那州的大部分油田在1980年以前运营来量化这一点(自1980年以来,技术在这个行业真正起飞了,并且有许多新技术可以帮助重新开放这些旧领域中的一些)。

我有大约1850页的Excel工作簿。每个页面都包含一个字段的井数据。有些油田已经钻了数千口井,而其他油田只有少数井。这些表格中包含的许多数据之一是许可证的日期。我想计算这些许可证的模式年份,以确定每个油田达到“高峰期发展”的年份。

我目前正在使用一个过滤器来消除大量不必要的数据,并尝试使自己的计算/宏创建更容易。许可日期位于列I中。我使用Q列中的年份函数从日期中删除日期和月份,以便能够计算模式年份。但是,Excel会拒绝计算该模式,因为它会一直尝试使用过滤的信息进行计算,从而返回错误。没有模式的小计功能,我无法找到适用于我的因特网环境的解决方案。

甲过滤片看起来像这样:

Before Filtering

对于该解决方案,我需要的公式来计算模式对整个Q柱为允许数据的范围将由场而变化。

After Filtering

+0

您想要的模式,但仅限于过滤的值?在你上面的例子中,结果是1947年?澄清...有助于消除“不必要”数据的过滤条件是什么?我知道这超出了你的项目范围,但是一个数据库,即使是像SQLite或MS Access这样的简单数据库也可能会缩短这项工作的时间,并且比Excel更具扩展性。 – Hambone

+0

顺便说一下,显然有小计式模式公式的黑客攻击:http://www.mrexcel.com/forum/excel-questions/371589-mode-subtotal.html – Hambone

+0

@Hambone是的我想模式仅适用于过滤值,是的,显示字段的mdoe是1947。我附加了过滤器之前的数据。它基本上取出标题,一些生产信息和其他一些东西 –

回答

0

概括地说,我认为你需要你的公式从=Year()更改为包括条件,看是否该行是“必要的”行还是不行。根据您发布的最新截图,我认为最简单的解决办法可能是做这样的事情在今年(Q)列,其中,这是在Q2的公式:

=if(isnumber(H2),Year(I2),"") 

这将导致毛坯任何无效行,您的模式功能可能只是:

=MODE(Q:Q) 

哪一个会知道忽略空白。

现在,我上面的公式的机率大于0%的可能性太过于简单,并且您的过滤条件无法用公式复制。如果你有,你可以创建一个自定义VBA函数来判断一个行被隐藏(过滤行将已隐藏= TRUE),这将是这个样子:

Function Hidden(CellValue As Range) As Boolean 
    Hidden = Rows(CellValue.Row).Hidden 
End Function 

而相应年份Q2中的函数将变为:

=IF(Hidden(A2),"",YEAR(B2)) 

并且将应用相同的模式函数。我在一个小电子表格上测试了它。过滤之前,该数据模式是2006年:

enter image description here

如果我在C列过滤掉非空白,消除我的已知的模式,在E1的公式也更改为下一个模式,这表明过滤的值将被忽略:

enter image description here