2015-11-04 6 views
2

Я аспирант, преследующий моих магистров по геологии (ака, я не являюсь гуру Excel) и в настоящее время работаю над диссертацией, столкнулся с проблемой.Расчет режима отфильтрованных данных

Главное мое тезисное сообщение состоит в том, чтобы сообщить, что в прибрежной части Луизианы осталось большое количество незакрытых углеводородов. Я пытаюсь количественно оценить это, показывая, что большинство нефтяных месторождений в Луизиане эксплуатировалось до 1980 года (с 1980 года технология действительно удалась в отрасли и появилось множество новых методов, которые могли бы помочь вновь открыть некоторые из этих старых месторождений).

У меня есть книга Excel объемом около 1850 страниц. Каждая страница содержит данные скважины для одного поля. На некоторых месторождениях были пробурены тысячи скважин, в то время как у других было только несколько. Одна из многих частей данных, содержащихся в этих листах, - это даты разрешений на скважину. Я хотел бы рассчитать год режима этих разрешений на скважины, чтобы определить годы, в которые каждое нефтяное месторождение достигло своего «пикового развития».

В настоящее время я использую фильтр, чтобы устранить множество ненужных данных и попытаться сделать вычисления/создание макросов проще для себя. Дата разрешения находится в столбце I. Я использовал функцию Year в столбце 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, чтобы сказать, если строка скрыта или нет (фильтрованная строку скрыла = истина), что будет выглядеть примерно так:

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

Если я отфильтровать не-заготовку в колонке С, чтобы исключить мой известный режим, формула Е1 действительно меняется к следующему режиму, демонстрируя, что отфильтрованные значения игнорируются:

enter image description here

Смежные вопросы