У меня есть лист (не очень большой, в настоящее время немногим более 6000 строк K столбцов), который по какой-то причине занимает очень много времени для пересчета, а также для повторного расчета и сохранения. Иногда это занимает 10-15 минут, а другие могут занимать до полдня, не так много времени для расчета. Формулы не очень сложны, и это довольно чисто из того, что я могу сказать. Ссылки на большинство формул представляют собой данные на "исходном" листе в том же рабочем листе, которые извлекаются из SQL и экспортируются в Excel с использованием Cognos Impromptu. У меня есть другой лист, который не имеет такой медленной проблемы с калькуляцией, но его данные экспортируются непосредственно из системы, содержащей данные. Формулы одинаковы, а данные в основном одинаковы по структуре, но поступают из разных мест. Это единственная разница, но один медленный.
Он не извлекает данные из SQL в режиме реального времени, я извлекаю данные из SQL (не используя Excel) и буквально вставляю значения в Excel для вычислений. Под системой я подразумеваю программу, в которой вся информация вводится вручную (не SQL, который обновляется из системы автоматически на ночной основе), то есть демография аккаунта, сборы, платежи, встречи и т.д. Данные, которые я извлекаю в excel Имя провайдера, тип провайдера, ответственный плательщик, сборы, платежи, корректировки и дата. Он извлекается и обновляется ежедневно, что является частью проблемы, каждый раз, когда я добавляю данные нового дня, он должен обрабатываться для включения новых строк.
Вот некоторые формулы
=IF(ISERROR(SUM(IF((Source!$A$5:$A$150000='Provider Weekly-WTD'!$A8)*((Source!$K$5:$K$150000>='Provider Weekly-WTD'!B$6)*(Source!$K$5:$K$150000<('Provider Weekly-WTD'!B$6)+7)),Source!$E$5:$E$150000,""))),"-",SUM(IF((Source!$A$5:$A$150000='Provider Weekly-WTD'!$A8)*((Source!$K$5:$K$150000>='Provider Weekly-WTD'!B$6)*(Source!$K$5:$K$150000<('Provider Weekly-WTD'!B$6)+7)),Source!$E$5:$E$150000,"")))
,
=IF(ISERROR(SUM(IF(($A8=Source!$A$5:$A$150000)*(IF(Source!$K$5:$K$150000=(B$6+6),(B$6+6),MAX(IF((Source!$A$5:$A$150000=$A8)*(Source!$K$5:$K$150000>=B$6)*(Source!$K$5:$K$150000<(B$6+7)),Source!$K$5:$K$150000)))=Source!$K$5:$K$150000),Source!$I$5:$I$150000))),"-",SUM(IF(($A8=Source!$A$5:$A$150000)*(IF(Source!$K$5:$K$150000=(B$6+6),(B$6+6),MAX(IF((Source!$A$5:$A$150000=$A8)*(Source!$K$5:$K$150000>=B$6)*(Source!$K$5:$K$150000<(B$6+7)),Source!$K$5:$K$150000)))=Source!$K$5:$K$150000),Source!$I$5:$I$150000)))
,
=SUMIFS($I$5:$I$150000,$A$5:$A$150000,$A7111,$C$5:$C$150000,$C7111,$K$5:$K$150000,(MAX(IF(($A7111=$A$5:$A$150000)*($C7111=$C$5:$C$150000)*($K7111>$K$5:$K$150000),$K$5:$K$150000))))
, а также
=$D7111+$E7111-$F7111+$G7111-$H7111
Поскольку я несколько ограничен в отображении фактических данных здесь и могу отображать только формулы, я думаю, что спрашиваю, в порядке ли используемые мной формулы, и / или вызывают ли они проблему. Если это не формулы, то возможно ли, что данные или формат данных являются причиной проблемы. Например, мне кто-то сказал, что поскольку в формате даты (в настройках формата) перед ним стоит *, это вызывает проблему.