Расчет различий между двумя листами (вопрос эффективности)

262
urdearboy

Текущая настройка для сравнения истории на финансовых данных AR:
-Два листа Excel с одинаковыми заголовками. Диапазон: A1 to AL250,000
-На одном из листов мы добавили 13 столбцов, в которых есть уравнения для сравнения между Sheet1 и Sheet2.
Уравнение 1: VLOOKUP от Листа1 до Листа2 (Вход: Счет-фактура №, Выход: Текущий баланс)
Уравнение 2. Если все операторы на Листе1 все ссылаются на VLOOKUPрезультат по просроченным сегментам старения

Это означает, что я в настоящее время вычисляю 3,25 MIL уравнения ( 13 Col X 250 000 строк ). В результате Excel работает очень медленно (текущий размер файла: 124 МБ ).

Я отключил автоматический расчет, но с Excel все равно возникают проблемы, так как он постоянно зависает. Эти данные слишком велики для Excel?

Предполагая, что я ограничен MSO, есть ли лучший способ сделать это? Pivot? Power Pivot? Канал передачи данных? Макрос для вычисления и вставки значений в виде текста? Оставить мою работу?

Просто ищите более опытного пользователя Excel, чтобы дать информацию о наиболее эффективном маршруте, а не о том, как реализовать тот или иной маршрут.

1
Использование этого количества данных приведет к огромному лагу. Excel не предназначен для обработки данных такого размера. Ваша лучшая альтернатива - программа базы данных. Вы можете использовать Access или создать базу данных на основе XML самостоятельно. Kevin Anthony Oppegaard Rose 5 лет назад 1
Так как Excel работает медленнее или иногда зависает (зависает), это означает проблему с памятью и процессором, лучше добавьте несколько модулей памяти или обновите систему. Rajesh S 5 лет назад 0
Вы делаете это в макросе или вручную? Это файл Excel .xls или .xlsx? music2myear 5 лет назад 0
Для Excel «слишком много» - это в основном функция доступных системных ресурсов. Используя современный, но отнюдь не высокопроизводительный компьютер, бывший финансовый директор, которого я поддерживал, регулярно выполнял действия сводной таблицы, а также макросы и формулы для таблицы с более чем 900 тысячами строк данных и сотнями столбцов. Компьютер имел 8 ГБ оперативной памяти, и хотя лист не был демоном скорости, он никогда не падал и был вполне способен. music2myear 5 лет назад 0
Я собираюсь предположить, что это ** slsx ** (файл находится на рабочем компьютере и его выходные дни). В этом файле не выполняется никаких макросов - считаете ли вы, что стоит выполнить вычисления в макросе, чтобы очистить формулы от листа. К сожалению, я ограничен рабочим компьютером, и, поскольку он содержит конфиденциальные финансовые данные, мне не разрешается перемещать файл из локальной сети. У меня дома гораздо более мощный компьютер, но я не могу использовать его здесь: / urdearboy 5 лет назад 0

1 ответ на вопрос

-1
Tbez

Может быть, вы можете экспортировать свои данные на менее подробном уровне. Для instace не перечисляйте каждую транзакцию, а только суммы каждого счета-фактуры или клиента, затем используйте 13 столбцов с формулами в меньшем списке.

Может быть, создать функцию, чтобы копаться в детали одного клиента в отдельной вкладке.

Если вы не можете уменьшить размер данных, вы можете попытаться очистить свои формулы, чтобы сделать их быстрее. Я ощутил существенное улучшение, написав выражение if, где True - простая формула, а false - более требовательная.

[= IF (A1 <> 1, "", .. тяжелая формула ..)] внутри [= IF (A1 = 1, .. тяжелая формула .., "")]

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

Удачи тебе :)

Похожие вопросы