Foreversoft.ru

IT Справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Размер листа excel

Размер листа в Excel

11 ответов

Скорее всего на одном листе больше строк хранить нельзя, т.к. это потребует изменения типа числовой переменной Excel, в которой хранится номер строки.
Ты можешь использовать другие листы (книги) Excel. Но в принципе для работы с БД Microsoft придумала Access

Все точно, 65635 это техн. максимум.
На счет Access тебе правильно посоветовали, ипортни свой xls файл в базу Access и делай там что тебе надо. Когда надо будет вывести результат, в Access есть в Сервисе — анализ данных в MSExcel. Если надо будет вывести итоговую таблицу в Excel размером больше 65 тыс строк, то я обычно делаю так: делаю запрос на создание новой таблицы, потом эту таблицу делю на две/три и т.д. (чтобы в каждой не больше 65 тыс строк было), а потом правой кнопкой щелкаешь — экспорт в Excel-файл. После чего эти 65 тыс. листы можно собрать в одну книгу, если очень хочется.

Смысла работать с данными в Excel при таком объеме — никакого, тормоза полнейшие.

Смысла работать с данными в Excel при таком объеме — никакого, тормоза полнейшие.

Вы будите смеяться, но я эти данные копирую из Access’а в Ехсеl. Делаю так для того чтобы пользоваться VBA, т.к. работать в Access’е с VBA допетрить не могу, может, тогда подскажете мне как реализовать следующее:
Есть така таблица:
REGNOM DATO
10165 15.02.01
10165 22.05.01
10165 01.09.01
1023 01.04.01
1023 22.12.01
10292 05.08.01
10292 20.10.01
и т.д.
так вот нужно сделать другой столбец в котором определялось бы количество дней между смежными датами для одного и тогоже номера. Для следующего номера все с опять с нуля. Далее из полученного столбца нужно ссделать еще два в которых бы было: кол-во повторяющихся дней и скольких дней (нпример. 1 день — 15раз, 2 дня — 55раз и т.д.) этих записей будет меньше чем исходных. Как это сделать в Access’е ума не приложу.
Посоветуйте!

Вы будите смеяться, но я эти данные копирую из Access’а в Ехсеl. Делаю так для того чтобы пользоваться VBA, т.к. работать в Access’е с VBA допетрить не могу, может, тогда подскажете мне как реализовать следующее:
Есть така таблица:
REGNOM DATO
10165 15.02.01
10165 22.05.01
10165 01.09.01
1023 01.04.01
1023 22.12.01
10292 05.08.01
10292 20.10.01
и т.д.
так вот нужно сделать другой столбец в котором определялось бы количество дней между смежными датами для одного и тогоже номера. Для следующего номера все с опять с нуля. Далее из полученного столбца нужно ссделать еще два в которых бы было: кол-во повторяющихся дней и скольких дней (нпример. 1 день — 15раз, 2 дня — 55раз и т.д.) этих записей будет меньше чем исходных. Как это сделать в Access’е ума не приложу.
Посоветуйте!

если кодишь в VB, то подключи бд access и используй DBGRID, и динамически его коверкай как хочешь..
А если делать это непосредственно в accesse, то используй функцию diffdate и создавай поля с помощью функции createfield, это делается так:

Set fil = tbl.CreateField(«date», dbDate)
tbl.Fields.Append fil
и все.
Удачи!!

Вы будите смеяться, но я эти данные копирую из Access’а в Ехсеl. Делаю так для того чтобы пользоваться VBA, т.к. работать в Access’е с VBA допетрить не могу, может, тогда подскажете мне как реализовать следующее:
Есть така таблица:
REGNOM DATO
10165 15.02.01
10165 22.05.01
10165 01.09.01
1023 01.04.01
1023 22.12.01
10292 05.08.01
10292 20.10.01
и т.д.
так вот нужно сделать другой столбец в котором определялось бы количество дней между смежными датами для одного и тогоже номера. Для следующего номера все с опять с нуля. Далее из полученного столбца нужно ссделать еще два в которых бы было: кол-во повторяющихся дней и скольких дней (нпример. 1 день — 15раз, 2 дня — 55раз и т.д.) этих записей будет меньше чем исходных. Как это сделать в Access’е ума не приложу.
Посоветуйте!

Странно что у тебя какие-то проблемы с VBE в Access, он практически такой же как и VBA Word, Excel, по крайне мере в той части что касается работы с датами, строками и т.д.

Что касается твоей задачки, то сразу возникает несколько вопросов:
непонятно структура твоей таблицы, это интересно в какие же строки надо писать кол-во дней между смежными датами одного и того же номера.
REGNOM DATO
10165 15.02.01 ?
10165 22.05.01 ?
10165 01.09.01 ?
1023 01.04.01 ?
1023 22.12.01 ?
10292 05.08.01 ?
10292 20.10.01 ?
ну и с другими столбцами тоже что-то не очень понятно:
» скольких дней этих записей будет меньше чем исходных» — каких исходных? откуда че берется и как енто вычисляется?

Что касается способа решения, то в Access лучше всего для таких задач использовать язык запросов SQL (с выражениями на VB), для того он и создавался чтобы работать с табличными данными.

Читать еще:  Excel не открывает xls

To SergeySV.
На самом деле, я не так хорошо разбираюсь в VBA, поэтому не знаю всех возможностей :(.
По поводу задачки:
Есть таблица (она на самом деле больше):
10165 15.02.01
10165 22.05.01
10165 01.09.01
1023 02.01.00
1023 26.02.00
1023 26.04.00
1023 29.04.00
1023 22.06.00

Из неё я получаю такой столбец:
0 ->(«0» Для заполнения пустой строки и только)
96 (здесь уже пошли операции вычитания)
102 (здесь уже пошли операции вычитания)
0
55
60
3
54

«непонятно структура твоей таблицы, это интересно в какие же строки надо писать кол-во дней между смежными датами одного и того же номера.» — это не очень то и важно, главное результирующие столбцы.

Из этого столбца я получаю следующие два (рузультирующие):
0 «скольких дней» 2 (повторяются 2 раза, тот же Count)
3 1 раз
54 1 раз
55 1 раз
и т.д.
И вот эти два столбца и есть те которые мне нужны.
Подскажи, как это реализовать.

To vladsoft.
Я попробую динамически подключить, хотя я в этом пока не смыслю. Буду разбираться 🙂

Ну вот например так можно сделать.

Я завел в базе таблицу с полями REGNOM и DATO, а также добавил еще поле счетчик «kod». ВАЖНО: номера в этом поле «kod», должны идти подряд, без пропусков, так и будет если только вручную не начать удалять записи. (В принципе можно и без этого поля обойтись — через статическую переменную, тогда придется немного усложнить код доп. проверками по обнулению этой переменной в функции в случае повторного запуска запроса. Код станет не таким наглядным а функциональность не поменяется)

На вкладке «Запросы» два запроса(Запрос1 и Запрос2)
Запрос1- высчитывает кол-во дней между двумя соседними REGNOM и показывает их в поле CountDays
Запрос2 — основан на запросе «Запрос1» и группирует данные по полю CountDays (т.е. записи с одинаковыми значениями в CountDays собирает в одну строку) и при этом вычисляет кол-во этих одинаковых CountDays (результат выводит в поле CountIntervals)/ Ну вообщем стандартный запрос с группировкой данных.

Как узнать размер листа в Excel?

есть таблица на листе..
как узнать сколько столбцов до первого пустого столбца.. и соответственно строк — до первой пустой строки

но например в первой строке заполнено 6 столбцов, а во второй — 10

т.е. вот абстрактный пример:

пусть знак решетки — это заполненные ячейки таблицы

есть какие-нибудь стандартные функции?

Добавлено через 1 минуту
криво пример вставился

13.04.2011, 13:45

Как узнать имя активного листа в Excel-е?
И еще вопрос до кучи. Как узнать имя активного листа в Excel-е?

Как узнать Item листа в книге Excel
есть большая книга (листов больше 1000) Не ругайте — так удобнее мне для своих целей Name листов.

Как узнать точную высоту листа в Excel?
Суммирование всех ячеек до первого HPageBreak не подходит.

Как сделать размер листа А6 в Excel (из Delphi)
Здравствуйте! Как сделать размер листа А6 в экселе, подскажите пожалуйста

13.04.2011, 14:322
Visual Basic
13.04.2011, 14:44 [ТС]3

а я пробую ручками проверять, у меня просто стрелкой переходи вправа или вниз, на одну ячейку

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

13.04.2011, 14:594
13.04.2011, 15:10 [ТС]5

код не хочет работать((

Добавлено через 33 секунды
у меня 10 офис, может в этом проблема?

13.04.2011, 15:276
13.04.2011, 15:32 [ТС]7
Visual Basic
13.04.2011, 15:348
Visual Basic
13.04.2011, 15:47 [ТС]9
13.04.2011, 15:5410
13.04.2011, 16:00 [ТС]11
13.04.2011, 18:4412

Чтобы увидеть результат: ViewImmediate Window.

Но чтобы информация была достоверная, сначала надо сохранить книгу (это связано с тем, что после удаления текста, где-то сохраняется информация в Excel о количестве строк и столбцов до удаления). После сохранения книги — эта информация уходит.

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

Visual Basic
13.04.2011, 18:52 [ТС]13

во, толковый ответ, осталось его проверить)

Добавлено через 1 минуту
всё работает, спасибо

14.04.2011, 10:1514
Visual Basic
14.04.2011, 10:1715
14.04.2011, 10:2916
14.04.2011, 10:3417
14.04.2011, 10:5718

Это не универсальный способ, но тоже как вариант.

Да, было бы классно иметь в объектной модели больше удобных универсальных средств!

Visual Basic
14.04.2011, 10:57
14.04.2011, 10:57

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как задать соответствие одних значений, одного листа Excel, значениям другого листа Excel
Есть лист Excel ,значения в нем постоянны и находятся на одном месте (в одном столбце и в одной.

Размер листа Excel при экспорте
а не подскажите как сделать при экспорте из делфи в excel вот такую настройку

Как узнать размер строки как размер массива
const char* test_str = «01234×00 789»; //очевидно, что strlen(test_str) == 5; sizeof(test_str).

Считать данные с листа EXCEL в Listview. Выбор листа в Combobox
Как считать с листа Excel — где его имя — выбранное значение из combobox. Если я правильно понял то.

Как уменьшить размер файла и ускорить его

Если в один прекрасный момент вы осознаете, что ваш основной рабочий файл в Excel разбух до нескольких десятков мегабайт и во время открытия файла можно смело успеть налить себе кофе, то попробуйте пробежаться по описанным ниже пунктам — возможно один или несколько из них укоротят вашего «переростка» до вменяемых размеров и разгонят его «тормоза» 🙂

Проблема 1. Используемый диапазон листа больше, чем нужно

Если ваша таблица занимает 5 на 5 ячеек, то это отнюдь не означает, что Excel запоминает при сохранении этого файла только 25 ячеек с данными. Если вы в прошлом использовали какие-либо ячейки на этом листе, то они автоматически включаются в используемый диапазон (так называемый Used Range), который и запоминается при сохранении книги. Проблема в том, что при очистке используемых ячеек Excel далеко не всегда автоматически исключает их из используемого диапазона, т.е. начинает запоминать в файле больше данных, чем реально имеется.

Проверить это просто – нажмите на клавиатуре сочетание клавиш Ctrl+End и посмотрите куда переместится активная ячейка. Если она прыгнет на фактическую последнюю ячейку с данными на листе – отлично. А если вдруг ускачет сильно правее и/или ниже «в пустоту» – дело плохо: все эти ненужные пустые ячейки Excel тоже запоминает внутри файла.

Лечится это, тем не менее, достаточно легко:

  1. Выделите первую пустую строку под вашей таблицей
  2. Нажмите сочетание клавиш Ctrl+Shift+стрелка вниз – выделятся все пустые строки до конца листа.
  3. Удалите их, нажав на клавиатуре Ctrl+знак минус или выбрав на вкладке Главная – Удалить – Удалить строки с листа (Home – Delete – Delete rows) .
  4. Повторите то же самое со столбцами.
  5. Повторите все вышеописанные процедуры на каждом листе, где при нажатии на Ctrl+End активная ячейка перемещается не на фактическую последнюю ячейку с данными а «в пустоту» ниже и/или правее.
  6. Сохраните файл (обязательно, иначе изменения не вступят в силу!)

Если в вашей книге очень много таких листов, то проще, наверное, использовать короткий макрос.

Проблема 2. Используется старый формат XLS вместо новых XLSX, XLSM и XLSB

Много лет и версий подряд еще с начала девяностых в Excel был один формат файлов — XLS. Это, конечно, убирало проблемы совместимости, но, сам по себе, этот формат давно устарел и имел много неприятных недостатков (большой размер, непрозрачность внутренней структуры данных, легкую повреждаемость и т.д.)

Начиная с верии Excel 2007 Microsoft ввела новые форматы сохранения файлов, использование которых заметно облегчает жизнь и — ваши файлы:

  • XLSX — по сути является зазипованным XML. Размер файлов в таком формате по сравнению с Excel 2003 меньше, в среднем, в 5-7 раз.
  • XLSM — то же самое, но с поддержкой макросов.
  • XLSB — двоичный формат, т.е. по сути — что-то вроде скомпилированного XML. Обычно в 1.5-2 раза меньше, чем XLSX. Единственный минус: нет совместимости с другими приложениями кроме Excel, но зато размер — минимален.

Вывод: всегда и везде, где можно, переходите от старого формата XLS (возможно, доставшегося вам «по наследству» от предыдущих сотрудников) к новым форматам.

Проблема 3. Избыточное форматирование

Сложное многоцветное форматирование, само-собой, негативно отражается на размере вашего файла. А условное форматирование еще и ощутимо замедляет его работу, т.к. заставляет Excel пересчитывать условия и обновлять форматирование при каждом чихе.

Оставьте только самое необходимое, не изощряйтесь. Особенно в тех таблицах, которые кроме вас никто не видит. Для удаления только форматов (без потери содержимого!) выделите ячейки и выберите в выпадающем списке Очистить — Очистить форматы (Clear — Clear Formats) на вкладке Главная (Home) :

Особенно «загружают» файл отформатированные целиком строки и столбцы. Т.к. размер листа в последних версиях Excel сильно увеличен (>1 млн. строк и >16 тыс. столбцов), то для запоминания и обрабоки подобного форматирования нужно много ресурсов. В Excel 2013-2016, кстати, появилась надстройка Inquire, которая содержит инструмент для быстрого избавления от подобных излишеств — кнопку Удалить избыточное форматирование (Clean Excess Cell Formatting) :

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

Если вы не видите у себя в интерфейсе вкладку Inquire, то ее необходимо подключить на вкладке Разработчик — Надстройки COM (Developer — COM Addins) .

Проблема 4. Ненужные макросы и формы на VBA

Большие макросы на Visual Basic и особенно пользовательские формы с внедренной графикой могут весьма заметно утяжелять вашу книгу. Для удаления:

  1. нажмите Alt+F11, чтобы войти в редактор Visual Basic
  2. найдите окно Project Explorer’а (если его не видно, то выберите в меню View — Project Explorer)
  3. удалите все модули и все формы (правой кнопкой мыши — Remove — дальше в окне с вопросом о экспорте перед удалением — No):

Также код может содержаться в модулях листов — проверьте их тоже. Также можно просто сохранить файл в формате XLSX без поддержки макросов — все макросы и формы умрут автоматически. Также можно воспользоваться инструментом Очистить книгу от макросов из надстройки PLEX.

Проблема 5. Именованные диапазоны

Если в вашем файле используются именованные диапазоны (особенно с формулами, динамические или получаемые при фильтрации), то имеет смысл от них отказаться в пользу экономии размера книги. Посмотреть список имеющихся диапазонов можно нажав Ctrl+F3 или открыв окно Диспетчера имен (Name Manager) на вкладке Формулы (Formulas) :

Также вычищайте именованные диапазоны с ошибками (их можно быстро отобрать с помощью кнопки Фильтр в правом верхнем углу этого окна) — они вам точно не пригодятся.

Проблема 6. Фотографии высокого разрешения и невидимые автофигуры

Если речь идет о фотографиях, добавленных в книгу (особенно когда их много, например в каталоге продукции), то они, само-собой, увеличивают размер файла. Советую сжимать их, уменьшая разрешение до 96-150 точек на дюйм. На экране по качеству это совершенно не чувствуется, а размер файла уменьшает в разы. Для сжатия воспользуйтесь кнопкой Сжать рисунки (Compress pictures) на вкладке Формат (Format) :

Кроме видимых картинок на листе могут содержаться и невидимые изображения (рисунки, фотографии, автофигуры). Чтобы увидеть их, выделите любую картинку и на вкладке Формат (Format) нажмите кнопку Область выделения (Selection Pane) .

Для удаления вообще всех графических объектов на текущем листе можно использовать простой макрос:

Проблема 7. Исходные данные сводных таблиц

По-умолчанию Excel сохраняет данные для расчета сводной таблицы (pivot cache) внутри файла. Можно отказаться от этой возможности, заметно сократив размер файла, но увеличив время на обновление сводной при следующем открытии книги. Щелкните правой кнопкой мыши по сводной таблице и выберите команду Свойства таблицы (Pivot Table Properties) — вкладка Данные (Data) — снять флажок Сохранять исходные данные вместе с файлом (Save source data with file):


Если у вас несколько сводных таблиц на основе одного диапазона данных, то сократить размер файла здорово помогает метод, когда все сводные таблицы после первой строятся на основе уже созданного для первой таблицы кэша. В Excel 2000-2003 это делается выбором переключателя на первом шаге Мастера сводных таблиц при построении:

В Excel 2007-2016 кнопку Мастера сводных таблиц нужно добавлять на панель вручную — на ленте такой команды нет. Для этого щелкните по панели быстрого доступа правой кнопкой мыши и выберите Настройка панели быстрого доступа (Customize Quick Access Toolbar) и затем найдите в полном списке команд кнопку Мастер сводных таблиц (PivotTable and PivotChart Wizard) :

Проблема 8. Журнал изменений (логи) в файле с общим доступом

Если в вашем файле включен общий доступ на вкладке Рецензирование — Доступ к книге (Review — Share Workbook) , то внутри вашего файла Excel на специальном скрытом листе начинает сохраняться вся история изменений документа: кто, когда и как менял ячейки всех листов. По умолчанию, такой журнал сохраняет данные изменений за последние 30 дней, т.е. при активной работе с файлом, может запросто занимать несколько мегабайт.

Мораль: не используйте общий доступ без необходимости или сократите количество дней хранения данных журнала, используя вторую вкладку Подробнее (Advanced) в окне Доступ к книге. Там можно найти параметр Хранить журнал изменений в течение N дней (Keep change history for N days) или совсем отключить его:

Проблема 9. Много мусорных стилей

Про эту пакость я уже подробно писал ранее в статье о том, как победить ошибку «Слишком много форматов ячеек». Суть, если кратко, в том, что если вы разворачиваете на вкладке Главная список Стили ячеек (Home — Cell Styles) и видите там очень много непонятных и ненужных стилей, то это плохо — и для размера вашего файла Excel и для его быстродействия.

Удалить ненужные стили можно с помощью макроса или готовой команды из надстройки PLEX.

Проблема 10. Много примечаний

Примечания к ячейкам, конечно, не самый вредный момент из всех перечисленных. Но некоторые файлы могут содержать большое количество текста или даже картинок в примечаниях к ячейкам. Если примечания не содержат полезной для вас информации, то их можно легко удалить с помощью команды на вкладке ГлавнаяОчистить — Очистить примечания (Home — Clear — Clear Comments) .

Ссылка на основную публикацию
Adblock
detector