У меня есть лист (не очень большой, в настоящее время немногим более 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

Поскольку я несколько ограничен в отображении фактических данных здесь и могу отображать только формулы, я думаю, что спрашиваю, в порядке ли используемые мной формулы, и / или вызывают ли они проблему. Если это не формулы, то возможно ли, что данные или формат данных являются причиной проблемы. Например, мне кто-то сказал, что поскольку в формате даты (в настройках формата) перед ним стоит *, это вызывает проблему.

2 ответа2

1

Это не будут формулы с учетом размера ваших строк и времени вычисления - если исходная таблица фактически не связана с другими источниками, то есть ваши вычисления пытаются связать другую книгу с выходом SQL?

Два предложения, чтобы попытаться очистить ваш файл путем очистки ayd избыточного пространства и возможного повреждения

  1. Загрузите и установите бесплатное дополнение ASAP Utilities. Выберите все листы, запустите утилиту «Листы» как можно скорее, а затем выберите «25 Удалить Unsed пустые конечные строки / столбцы»
  2. Затем выберите все листы, щелкните правой кнопкой мыши вкладку листов, выберите «Переместить или скопировать ...» и выберите «Новая книга».

Если бы вы могли найти где-нибудь загрузить свою проблемную рабочую книгу (при необходимости, продезинфицировать), это также помогло бы

0

Ваши формулы относятся к гораздо большему диапазону, чем вы используете:

Source!$A$5:$A$150000

Затем ваша формула сравнивает каждую ячейку в этом диапазоне с одной ссылочной ячейкой:

Source!$A$5:$A$150000 = 'Provider Weekly-WTD'!$A8

Сократите диапазон ячеек, на которые ссылаются ваши формулы, и вы должны найти улучшение скорости.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .