Более миллиона строк в excel

Виктор Петров

На сайте с 05.01.2020

Offline

240

Дык. Задачи определяют. Где СУБД, где Python, а какой шарлатан и BI какому радый.

NikSolovov

На сайте с 15.12.2019

Offline

51

Виктор Петров #:
Дык. Задачи определяют. Где СУБД, где Python, а какой шарлатан и BI какому радый.

Я в этом деле мало что понимаю)))

Цель: запихнуть 6 миллионов строк в эксель, обычный файловый, не облачная версия. (ну если это возможно)

Алеандр

На сайте с 08.12.2010

Offline

170

NikSolovov #:
запихнуть 6 миллионов строк в эксель

Как обрабатывать потом? У вас не просто домашний комп, а сервер должен быть, чтобы потом в excel переваривать такое количество строк.
А уж про выполнение на нем функций сортировок или еще каких-то действий — вообще под вопросом.

Проще, как выше написали, работать с такими объемами в БД и дополнительным ПО, если потребуется, на мой взгляд excel для таких объемов малопригоден.

D

На сайте с 06.01.2022

Offline

9

Powerquery

NikSolovov

На сайте с 15.12.2019

Offline

51

Алеандр #:

Как обрабатывать потом? У вас не просто домашний комп, а сервер должен быть, чтобы потом в excel переваривать такое количество строк.
А уж про выполнение на нем функций сортировок или еще каких-то действий — вообще под вопросом.

Проще, как выше написали, работать с такими объемами в БД и дополнительным ПО, если потребуется, на мой взгляд excel для таких объемов малопригоден.

У меня комп хороший ryzen 5900 проц оперативки 64. База в миллион летает вроде. 

Цель простая: есть 2 столбика на 6 миллионов строк. 

Через фильтр вбиваю запрос и получаю все данные по этому запросу. 

Сейчас приходится открывать за раз 6 Эксель файлов и делать 6 раз одно и тоже действие. 

А хочется все объеденить и за раз вытаскивать данные. 

AD

На сайте с 05.05.2007

Offline

231

В Notepad  10+ мильонов  строк добавлял, но нужен мощный аппарат.

W1

На сайте с 22.01.2021

Offline

198

Делайте нормальную базу данных и работайте с ней. Excel предназначен для других целей.

BrickLayer

На сайте с 13.06.2020

Offline

72

NikSolovov :

Всем привет я так понял в Excel есть ограничения (не могу добавить в 1 файл больше 1 миллиона строк (ну там миллион с копейками получается).

Сейчас разбил на 6 файлов по 1 миллиону, но это жутко неудобно.

Есть какие-то решения или альтернативы? Спасибо.

Попробуйте OpenOffice он полегче MS Excel и сохраняйте файл в формате CSV.  Должно получиться с очень большой вероятностью.

P.S. CSV это по сути текстовый файл без лишнего мусора и OpenOffice его кушает на раз два. А работать можно со всеми удобствами таблиц Excel.

alaev

На сайте с 18.11.2010

Offline

618

А если так? На php?

Создание и продвижение сайтов — https://alaev.net , аудиты сайтов, контекстная реклама

LEOnidUKG

На сайте с 25.11.2006

Offline

1686

Моя старая инструкция: https://searchengines.guru/ru/forum/877149/page66#comment_15209991

Возможно вам поможет.

Букварикс: бесплатная программа для быстрого подбора ключевых слов - Сервисы и программы для работы с SE - Практические вопросы оптимизации - Форум об интернет-маркетинге - Страница 66

Существует ограничение в 1 048 576 строк, которое можно просматривать / просматривать в Excel 2007/2010.

В этом случае файл содержит 1,2 миллиона строк и, таким образом, хотя строки существуют в файле, их нельзя просмотреть / открыть в Excel.

Лицо, предоставляющее данные, предлагает не использовать Excel для открытия файлов.

Один из возможных подходов к просмотру необработанных данных — при условии, что это «распакованный файл.xslx»1) — использовать Блокнот для открытия файла (если Блокнот не работает, запись может). Вот несколько подходов сделать это:

  1. Щелкните правой кнопкой мыши по файлу и перейдите к «Открыть с помощью -> Выбрать программу по умолчанию..», затем выберите «Блокнот» (обязательно снимите флажок «Всегда использовать..»);
  2. Переименуйте расширение файла в «.txt», чтобы оно было связано с обычным редактором (возможно, «Блокнотом») по умолчанию;
  3. Запустите Блокнот, а затем «Открыть» указанный файл.

Если данные были предоставлены в CSV, все строки не могли быть просмотрены в Excel (например, после импорта) из-за указанного ограничения. Если этот файл является «распакованным.xsls», тогда данные уже являются обычным текстом, и файл с расширением.xsls (vs .txt) в значительной степени не имеет значения — расширение существует для ассоциации программы / файла.

Другой вариант — посмотреть, может ли другая программа для работы с электронными таблицами (например, Open Office Calc, Kingsoft Office Suite) отображать такое количество строк. YMMV.


1 Не все файлы «.xslx» одинаковы, и Excel довольно снисходительно относится к формату данных, содержащемуся в файлах с таким расширением, которые можно открыть. В этом случае другой человек кажется уверенным, что разумно рассматривать этот файл как необработанный текст — даже если работа с данными, вероятно, будет громоздкой.

 

tvit

Пользователь

Сообщений: 60
Регистрация: 01.04.2014

Добрый день!

Подскажите, пожалуйста как оптимально по скорости/памяти решить следующую задачу:  

Имеются ежемесячные выгрузки из внешней системы, на которую я никак повлиять не могу.
Выгрузки представляют из себя текстовые файлы с разделителямя (зачисления).
Размер файла 1,5 — 2 ГБ и количество строк более 10 млн. Каждая строка = 1 зачисление , около 30 полей, из которых мне нужно только 5. (ФИО, Сумма, Дата операции, Дата рождения, тип зачисления) . Для одного клиента может быть несколько  зачислений (строчек).

Есть справочник клиентов (текстовый файл ~4 млн.записей), в котором хранятся только ФИО + Дата рождения

Мне необходимо из первого файла выбрать клиентов которые отсутствуют в справочнике и удовлетворяют определенным условиям. Таких ежемесячно бывает примерно 30-40 тыс. ФИО + ДР отобранных добавляем в справочник.

Соответственно,  чтобы решить данную задачу мне сейчас необходимо понять следующее:
1. Как правильно с точки зрения скорости/памяти считать текстовый файл в массив если я не знаю количество строчек в нем.Мне нужно будет в какой-то момент менять размерность массива, как это сделать лучше?

2. Прежде чем сравнивать массивы, по-любому придется их сортировать по полю ФИО. Подскажите пожалуйста самый быстрый алгоритм, который не использует вспомогательные массивы. Не хочется делать дополнительные копии массива в памяти.    

 

А точно это должен быть Excel? Тут пора применять Access…

 

JeyCi

Пользователь

Сообщений: 3357
Регистрация: 27.11.2013

#3

26.08.2015 17:43:55

в любом случае, я бы посоветовала через ADO+SQL — количество строк знать не надо, обращение к txt c разделителем — как  к столбцам, отбор сделать нужной SQL командой… примеры примерно такие:

Точное считывание с текстового файла
ADO в Excel и большой размер файла

Цитата
tvit написал:
1. … считать текстовый файл …?
2. … сортировать по полю ФИО. …

— и уже в SQL-команду можно вставить нужные условия отбора WHERE, и Сортировку по нужному полю ORDER BY
P.S.(согласна с Максимом)
пример:

Использование Access для обработки больших текстовых файлов

#17

Изменено: JeyCi26.08.2015 18:09:51

чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах)

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#4

26.08.2015 20:07:19

Доброе время суток

Цитата
Размер файла 1,5 — 2 ГБ и количество строк более 10 млн. Каждая строка = 1 зачисление , около 30 полей, из которых мне нужно только 5. (ФИО, Сумма, Дата операции, Дата рождения, тип зачисления) . Для одного клиента может быть несколько  зачислений (строчек).
Есть справочник клиентов (текстовый файл ~4 млн.записей), в котором хранятся только ФИО + Дата рождения

Такой объём явно выгружен из какой-то базы данных, что-то с трудом вериться, что кто-то в блокноте ведёт эти записи. Стоит ли тогда «огород городить» с выгрузкой и анализом через сравнение массивов, или даже, как предлагают, связывать текстовые данные в Access для построения запросов? Может сразу в этой же базе SQL-запросами получать требуемое?

 

Hugo

Пользователь

Сообщений: 23252
Регистрация: 22.12.2012

Думаю вполне можно и кодом работу сделать — сперва читаем справочник в словарь, можно всё в массив, или построчно прочитать.
Затем читаем построчно гигабайты, проверяем свои определённые условия и затем наличие в словаре — если нужно отобрать, то отбираем в коллекцию или другой словарь (так не нужно думать о размерности).
В итоге собранное дописываем в справочник, реализация по вкусу (можно циклом по одному, можно сразу всё выгрузить — думаю разница на общем фоне не будет существенной).

 

tvit

Пользователь

Сообщений: 60
Регистрация: 01.04.2014

Спасибо всем ответившим, только я другие вопросы задавал. :-)
Через SQL задача уже реализована и работает, проблема в том, что это нужно передать другому человеку в другой город, у которого есть только Excel и Word

To HUGO: Вариант с заменой массивов словарем рабочий,  вопрос только на сколько это будет медленнее по скорости чем с массивами? И еще вопрос, помню как то работал со словарем и там был глюк, который я так и не смог обойти: При проверки наличия значения в словаре оно почему-то самопроизвольно добавлялось в этот словарь, я так и не смог до конца разобраться в проблеме посему так происходит?

PS На выгружаемый файл из внешней системы я никак повлиять не могу, считайте что мне его робот по почте присылает :-)

 
 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#8

27.08.2015 08:05:07

Доброе время суток

Цитата
Через SQL задача уже реализована и работает
Цитата
проблема в том, что это нужно передать другому человеку в другой город

Не совсем понимаю суть проблемы, почему нужно другому человеку отправлять исходные данные, чтобы он у себя в Excel их обрабатывал? А почему нельзя отправить уже реализованный результат?
Почему у вас ошибка со словарём — надо смотреть ваш код. Проверка наличия ключа в словаре выполняется Dictionary.Exists(KeyValue) — словарь это пара ключ/значение.

 

ikki

Пользователь

Сообщений: 9709
Регистрация: 22.12.2012

#9

27.08.2015 08:32:34

Цитата
tvit написал:
на сколько это будет медленнее по скорости чем с массивами?

это будет быстрее. в разы, скорее — в десятки раз.

Цитата
tvit написал:
работал со словарем и там был глюк, который я так и не смог обойти: При проверки наличия значения в словаре оно почему-то самопроизвольно добавлялось в этот словарь

это не глюк.
для проверки следует использовать Exists, любое другое обращение к несуществующему элементу — добавляет его.
это штатное поведение словаря.

фрилансер Excel, VBA — контакты в профиле
«Совершенствоваться не обязательно. Выживание — дело добровольное.» Э.Деминг

 

tvit

Пользователь

Сообщений: 60
Регистрация: 01.04.2014

#10

27.08.2015 09:04:35

Цитата
StepanWolkoff написал: А версия Excel какая?

2010

 

tvit

Пользователь

Сообщений: 60
Регистрация: 01.04.2014

#11

27.08.2015 09:18:26

Получается если считывать в Коллекцию

Цитата
Андрей VG написал: почему нужно другому человеку отправлять исходные данные, чтобы он у себя в Excel их обрабатывал?

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

Цитата
Андрей VG написал: Проверка наличия ключа в словаре выполняется Dictionary.Exists(KeyValue) — словарь это пара ключ/значение.

Сейчас уже не вспомню, возможно я действительно проверял более «хитрым» способом (присваивание внутри on error)

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#12

27.08.2015 09:38:01

Цитата
другой человек сам их выгрузит из той же внешней системы

Вы правда не назвали, что это за система. Но всё равно не понимаю, если человек имеет к ней доступ, то кто мешает ему получать (в том числе и обновляемые) данные, используя SQL, в книгу Excel?
Например, для MS SQL Server

Код
    Const connStr As String = "ODBC;Driver={SQL Server Native Client 11.0};Server=(localdb)mssqllocaldb;Database=SampleDb;Trusted_Connection=yes;"
    Dim pLO As ListObject, pSheet As Worksheet
    Set pSheet = ThisWorkbook.Worksheets.Add
    Set pLO = pSheet.ListObjects.Add(xlSrcExternal, connStr, True, xlYes, pSheet.Range("A1"))
    With pLO.QueryTable
        .CommandType = xlCmdSql
        .CommandText = "Select * From Production.Products"
        .Refresh
    End With

Естественно, CommandText может быть более сложным SQL запросом, чем в приведённом примере. Можно это же сделать и без программирования, задействовав MS Query.

Изменено: Андрей VG27.08.2015 09:47:06

 

Hugo

Пользователь

Сообщений: 23252
Регистрация: 22.12.2012

Я думаю что SQL будет работать намного медленнее кода на словаре и массивах.
На работе простая выборка по одному полю из 12 тысяч записей работает секунд наверное 40 на 2007 ацессе — она же ранее на 2003 отрабатывала не раздражая… хотя тоже не пулей. Не работаю регулярно с ацесс, и не вникал, т.е. это не моя каждодневная рабочая задача, но удивляет такая медлительность…

 

Dmitryktm

Пользователь

Сообщений: 17
Регистрация: 30.10.2014

Попробуйте посмотреть в сторону надстроек Power Pivot или Power Query. Последняя надстройка (PQ) вообще творит чудеса. Может сделать всё что угодно и как угодно без макросов. Поддерживаются следующие версии Office:

    • Microsoft Office 2010 Professional Plus c Software Assurance
    • Microsoft Office 2013
 

Поддерживаю Dmitryktm, поэтому и был вопрос про версию.
Из личного опыта — скармливал одновременно три таблицы (текстовых файла) 21млн, 7млн и 300тыс.
Тут главное оперативной памяти не жалеть)))

 

tvit

Пользователь

Сообщений: 60
Регистрация: 01.04.2014

Dmitryktm, спасибо, но это не вариант. Я не администратор своей машины, и тот человек кому я передаю программу тоже ничего не сможет установить.

Сейчас пробую вариант с коллекциями. Excel занял 1.2 ГБ оперативки. пока работает, Но я на 5 млн пробовал. В след месяцах (декабре и мае) могут быть двойные зачисления, тогда не знаю что будет  

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Кнопка цитирования не для ответа

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#18

27.08.2015 15:38:20

Игорь, зря вы так по поводу SQL. Решил, коль целый день делать нечего с имитировать (упрощённо) задачу ТС. Создал два тестовых файла.
1. Users таблица клиентов ([UserName] ФИО — 16 символьное поле; [UserBirthday] Дата ФИО — дата).
2. UserData таблица покупок ([UserName] ФИО — 16 символьное поле; [DateBuy] Дата Покупки — дата; [Ammount] Сумма — плавающее).
Код был следующий

Скрытый текст

В Users 2 000 000 записей, в UserData 15 409 218 (часть записей для 500 000 ФИО отсутствует в Users). Собственно, задача отобрать в UserData ФИО, которых нет в Users (естественно, без повторений, так как в UserData могут быть сведения об нескольких покупках одного ФИО). В коде выше добавлены процедурой AddNotIn в UserData.

Попробовал сделать на словарях, вполне возможно, что допустил какую-то некорректность, код ниже, прошу дать оценку

Скрытый текст

Подождал некоторое время (минут 15) прервал.

Далее, загнал в Access, проиндексировал обе таблицы по полю UserName, далее следующим кодом получил результат за 65 секунд

Скрытый текст

Ну, и тоже самое для этих же данных, помещённых в MS SQL LocalDb (естественно с индексами по UserName) — результат получен за 13 секунд

Скрытый текст

Думаю, для столь объёмных данных выводы очевидны. Не забывайте использовать в базах данных индексы и строить запросы так, чтобы эти индексы задействовались.

 

Hugo

Пользователь

Сообщений: 23252
Регистрация: 22.12.2012

Split(pStream.ReadAll, vbCrLf) может быть долго на большом файле, и памяти займёт много. Может лучше читать файл построчно — по времени может чуть дольше (а может и нет), но память должна экономиться.
For i = 1 To UBound(strOut) — там в файле есть строка заголовка?
Ключи можно выгрузить на лист сразу, без допмассива, используя Application.Transpose(notInDict.keys) — если правда Application.Transpose такой объём потянет.

«загнал в Access, проиндексировал обе таблицы по полю UserName» — это время не учитывалось?

Но вообще если SQL отработал намного быстрее — то это отлично. Вариант на словаре вроде оптимально написан, но думаю основное время теряется на чтении файлов в массив, и на этих Left$().
Кстати, где эта процедура в SQL? :)
У словаря есть одно преимущество — там всё понятно что когда и как происходит :)

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#20

27.08.2015 16:39:53

Цитата
Может лучше читать файл построчно — по времени может чуть дольше (а может и нет), но память должна экономиться.

Был и такой вариант — разницы особой не вижу, этот показался, что будет быстрее, по идее в Excel 2010 64bit на ПК с 8Гб памяти поместится должен.

Цитата
For i = 1 To UBound(strOut) — там в файле есть строка заголовка?

Есть, но slit же индексирует начало массива с 0, хотя согласен For i = LBound(strOut) + 1 — правильнее.

Цитата
если правда Application.Transpose такой объём потянет.

Увы, не потянет — результат почти полмиллиона строк.

Цитата
«загнал в Access, проиндексировал обе таблицы по полю UserName» — это время не учитывалось?

Нет, не учитывалось. Я всё пытаюсь довести мысль до tvit, что не логично выгружать данные из базы, чтобы потом кустарным способом делать тоже самое. Правда, не смотря на то, что ТС тут мимо пробегает, что не так и что не устраивает НАГЛО не сообщает. Ни тебе спасибо, ни пожалуйста.

Цитата
Вариант на словаре вроде оптимально написан, но думаю основное время теряется на чтении файлов в массив, и на этих Left$(). Кстати, где эта процедура в SQL?

Так она выполняется утилитой импорта, а как писал выше — это время не учитывалось.

Цитата
У словаря есть одно преимущество — там всё понятно что когда и как происходит

С другой стороны SQL и базы для того разрабатывались, чтобы думать над реализаций логики получения данных в требуемом виде, а не над особенностями хранения и выбора лучшего алгоритма получения (хотя и тут присутствуют варианты и свои рекомендации для более быстрого выполнения);)

P. S. Прогнал ещё на SQLite — 22 секунды — хорош.

Изменено: Андрей VG27.08.2015 17:08:44

 

Smiley

Пользователь

Сообщений: 530
Регистрация: 16.05.2013

Андрей VG, добрый вечер. А можно Вас попросить любопытства ради попробовать вместо DISTINCT группировку? Будет ли быстрее?

ЗЫ: а можно в Access еще проиндексировать много полей, чтобы вообще быстро было :D

Изменено: Smiley27.08.2015 17:11:20

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#22

27.08.2015 18:03:35

Smiley, добрый вечер.
Да почти так же 62 сек. Прогнал и чисто текстовый вариант с написанием schema.ini

Код
.CommandText = "Select Distinct tud.UserName From [data.csv] as tud Left Join [user.csv] as tu On (tud.UserName=tu.UserName) Where tu.UserName Is Null"

вышло 105 секунд.
Индексировать — тоже можно нарваться — не только же выборки есть, но и вставки, обновления, а это всё пересчёт индексов — может и притормозить. Из всех протестированных сегодня баз данных — Access самый тугодумный;)

Изменено: Андрей VG27.08.2015 18:05:37

 

Smiley

Пользователь

Сообщений: 530
Регистрация: 16.05.2013

#23

27.08.2015 19:08:43

Цитата
Андрей VG написал:
Индексировать — тоже можно нарваться — не только же выборки есть, но и вставки, обновления, а это всё пересчёт индексов — может и притормозить

ну я поэтому и поставил смайлик :)

Учусь программировать :)

 

tvit

Пользователь

Сообщений: 60
Регистрация: 01.04.2014

#24

31.08.2015 15:00:09

Реализовал свою идею через Словари. Скорость приемлемая, за исключением последнего шага. В котором я пытаюсь сохранить Словарь в файл. На меленьких файлах скорость приемлемая, но когда размер справочника 4 млн строк, а размер занимаемой памяти Excel около 1 Гб, сохранение идет очень долго — в минуту не более 1000 строк  :

Код
Public Sub ClosePensSprav(FileName As String)
Dim txtFile As TextStream
Dim TmpString As String
Dim Ndx As Long
Dim lLowVal As Long
Dim lHighVal As Long
Dim lStep As Long

    If Not (FSO.FileExists(FileName)) Then FSO.CreateTextFile (FileName)
    Set txtFile = FSO.OpenTextFile(FileName, ForWriting)
    
    lHighVal = PensSprav.Count
    lStep = CLng(lHighVal / 100)
    
    For Ndx = 0 To PensSprav.Count - 1

        lLowVal = Ndx
        If lLowVal Mod lStep = 0 Then Application.StatusBar = "Сохранение справочника:" & FSO.GetFileName(FileName) & ": " & sObrStr(lLowVal, lHighVal) & sSuff(CInt(lLowVal / lHighVal * 100))

        TmpString = PensSprav.Keys(Ndx) & "|" & PensSprav.Items(Ndx)
        txtFile.WriteLine (TmpString)
        DoEvents
    Next Ndx
    
    txtFile.Close
    Application.StatusBar = False
    Set txtFile = Nothing
    Set PensSprav = Nothing

End Sub
 

tvit

Пользователь

Сообщений: 60
Регистрация: 01.04.2014

Также заметил что размер памяти при закрытии файлов и очистки вспомогательных словарей, уменьшается не сильно. Объем моего справочника 4.5 млн строк в среднем по 45 символов каждая, итого не более 200 Мб, а Эксель занимает около 1 ГБ, не пойму почему

 

tvit

Пользователь

Сообщений: 60
Регистрация: 01.04.2014

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

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

Доброе время суток
tvit, а у меня в #22 именно на Excel, с использованием движка от Access. Если Excel 32битный для SQL операций с текстовыми файлами можно задействовать Jet «движок» Access с XP по Win7 штатно стоит в системе (только в этом случае для них лучше прописать schema.ini). Что с 8 и 10 версией не знаю.

P. S. А не поделитесь — сколько времени у вас уходит на поиск отсутствующих?

Изменено: Андрей VG31.08.2015 16:36:39

 

tvit

Пользователь

Сообщений: 60
Регистрация: 01.04.2014

#28

31.08.2015 18:10:09

Цитата
Андрей VG написал:
P. S. А не поделитесь — сколько времени у вас уходит на поиск отсутствующих?

Завтра на работе запущу и отчитаюсь

 

tvit

Пользователь

Сообщений: 60
Регистрация: 01.04.2014

to

Андрей VG

Построчное считывание файла и занесение во временный словарь: 2 476 710 за 5 минут 47 секунд
Обновление пустого справочника 1 390 342 строчек за 4 мин 45 сек

Построчное считывание 2 файла: 2 025 113 за 4 мин 34 сек
Обновление справочника: 1 222 422 строчек за 7:38

При попытке сохранить словарь 2.5 млн строчек в файл, комп умирает. Сохраняется не более 1000 строк в минуту, как бы это ускорить?

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#30

01.09.2015 19:30:25

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

Код
Set txtFile = FSO.OpenTextFile(FileName, ForAppending)

Хотя не понимаю, почему вы не хотите использовать Jet Access Engine?
В заведомо проигрышных условиях. Виртуальная машина Windows 7 32bit  (хостовая машина Windows 7 64bit на ноутбуке с двуядерным Intel i7 2011 года выпуска), установленная на внешний ноутбучный HDD, подключенный через USB2.0. По примеру, исходная структура описанная в #18 (2000000 исходных).  Добавлялось к справочнику пользователей два поля ФИО, ДатаРождения (добавлено 500000 записей). И на таких условиях время выполнения 188 секунд — 3 минуты 8 секунд. Может всё же не городить огород? Не стандартные разделители полей в текстовых файлах легко описываются в schema.ini. Да и весь код был в vbscript.
Вы бы уж описали задачу чуть поподробнее и приложили бы пример файлов.

Изменено: Андрей VG01.09.2015 19:33:26

Содержание

MS Excel

27 сентября, 2017

Евгений Довженко о том, как можно эффективно работать даже с огромными массивами данных.

photo59cbb1a7bff02.jpg

Любой сотрудник компании, работающий в отделе продаж, финансов, маркетинга, логистики, сталкивается с необходимостью работать с данными, анализировать их.

Евгений Довженко о том, как можно эффективно работать даже с огромными массивами данных. 0

Excel — незаменимый помощник для достижения этих целей. Мы импортируем информацию, «подтягиваем» ее, систематизируем. На ее основе строим диаграммы, сводные таблицы, планируем, прогнозируем.

Однако в Excel до недавнего времени было 2 важных ограничения:

иконка 1

Мы не могли разместить на рабочем листе Excel более миллиона строк (а наши данные о продажах за 2 года занимают, например, 10 млн строк).

иконка 2

Мы знали, как создать и настроить интерактивные и обновляемые отчеты, но это отнимало много времени.

Единственный инструмент в Excel — сводные таблицы — позволял быстро обрабатывать наши данные.

С другой стороны, есть категория пользователей, которые работают со сложными BI-системами. Это системы бизнес-аналитики (business intelligence), которые дают возможность быстро визуализировать, «крутить» данные и извлекать из них ценную информацию (data mining). Однако внедрение и поддержка таких систем требует значительного участия IT-специалистов и больших финансовых вложений.

До Excel 2010 было четкое разделение на анализ малого и большого объема данных: Excel с одной стороны и сложные BI-системы — с другой.

Начиная с версии 2010, в Excel добавили инструменты, в названиях которых присутствует слово power: Power Query, Power Pivot и Power View. Они позволили сгладить грань между пользователями Excel и комплексных BI-систем.

Power Query

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

Для этого и необходим Power Query. До версии Excel 2013 включительно этот инструмент был в виде надстройки, которую можно было установить бесплатно с сайта Microsoft.

В версии 2016 это уже встроенный в программу инструментарий, находящийся на вкладке «Данные» (Data) в разделе «Скачать и преобразовать» (Get and Transform).

Перечень источников информации, к которым можно подключаться — огромный: от баз данных (их в последней версии 10) до Facebook и Google таблиц (рис. 1).

Евгений Довженко о том, как можно эффективно работать даже с огромными массивами данных. 1

Рис 1. Выбор источника данных в Power Query

Вот некоторые возможности Power Query по подготовке и преобразованию данных:

иконка 1

отбор строк и столбцов, создание пользовательских (вычисляемых) столбцов

иконка 2

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

иконка 3

транспонирование таблицы, разворачивание по столбцам (Pivot) и наоборот — сворачивание данных, организованных по столбцам, в построчный вид (Unpivot)

иконка 4

объединение нескольких таблиц: как вниз — одну под другую, так и связывание по общей колонке (единому ключу)

Евгений Довженко о том, как можно эффективно работать даже с огромными массивами данных. 2

Рис 2. Окно редактора Power Query

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

Пример

Компания в своей аналитике использует текущие курсы трех валют, которые ежедневно обновляются на сайте Национального банка.

Таблица на сайте непригодна для прямого использования (рисунок 2-1):    

иконка 1

все валюты не нужны

иконка 2

в колонке «Курс» в качестве разделителя целой и дробной частей используется точка (в наших региональных настройках — запятая)

иконка 3

в колонке «Курс» отображается показатель за разное количество единиц валюты: за 100, за 1000 и т. д. (указано в отдельной колонке «Количество единиц»)

Евгений Довженко о том, как можно эффективно работать даже с огромными массивами данных. 3

Рис. 2-1. Так выглядит таблица с курсами валют на сайте Нацбанка.

С помощью Power Query мы подключаемся к таблице текущих курсов валют на сайте НБУ и в этом редакторе готовим запрос на извлечение данных:

иконка 1

В колонке «Курс» меняем точку на запятую (инструмент «Замена значений»).

иконка 2

Создаем вычисляемый столбец, в котором курсы валют в колонке «Курс» делятся на количество единиц валюты из колонки «Количество единиц».

иконка 3

Удаляем лишние столбцы и оставляем только строки валют, с которыми работаем.

иконка 4

Выгружаем полученную таблицу на рабочий лист Excel.

Результат показан на рисунке 2-2.

Евгений Довженко о том, как можно эффективно работать даже с огромными массивами данных. 4

Рис. 2-2. Так выглядит результирующая таблица в нашем Excel файле.

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

Power Pivot

У вас данные находятся в разрозненных источниках? Некоторые таблицы содержат больше 1 млн строк? Вам нужно все это объединить в одну модель данных и анализировать с помощью, например, сводной таблицы Excel? Здесь понадобится Power Pivot — надстройка Excel, которая по умолчанию включена в версии Pro Plus и выше (начиная с версии 2010).

В Power Pivot вы можете добавлять данные из разных источников, связывать таблицы между собой (рисунок 3). Таблицы при этом не обязательно должны находиться на рабочих листах Excel. Вместо этого они по-прежнему будут храниться в файле Excel, но просматривать их можно в окне Power Pivot (рис. 4). Поэтому нет ограничения на количество строк — в вашем файле Excel могут находиться таблицы и в сотни миллионов строк.

Евгений Довженко о том, как можно эффективно работать даже с огромными массивами данных. 5

Рис. 3. Окно Power Pivot в представлении диаграммы

Евгений Довженко о том, как можно эффективно работать даже с огромными массивами данных. 6

Рис. 4. Окно Power Pivot в представлении данных

Вот некоторые возможности Power Pivot, помимо описанных выше:

иконка 1

добавлять вычисляемые столбцы и поля (меры), в том числе основанные на расчетах из нескольких таблиц

иконка 2

создавать и мониторить в сводной таблице ключевые показатели эффективности (KPI)

иконка 3

создавать иерархические структуры (например, по географическому признаку — регион, область, город, район)

И обрабатывать все это с помощью сводной таблицы Excel, построенной на модели данных.

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

С помощью Power Pivot:

иконка 1

добавляем все 5 таблиц в модель данных

иконка 2

связываем таблицы по общим ключам (столбцам)

иконка 3

в таблице «Продажи» создаем вычисляемый столбец «Продажи в закупочных ценах», умножив количество штук из таблицы «Продажи» на закупочную цену из таблицы «Цена закупки»

иконка 4

создаем вычисляемое поле (меру) «Маржа»

иконка 5

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

Теперь можно «крутить» эти данные в сводной таблице или в отчете Power View (следующий инструмент) и анализировать маржинальность по товарам, менеджерам, регионам, клиентам.

Power View

Иногда сводная таблица — не лучший вариант визуализации данных. В таком случае можно создавать отчеты Power View. Как и Power Pivot, Power View — это надстройка Excel, которая по умолчанию включена в версии Pro Plus и выше (начиная с версии 2010).

В отличие от сводной таблицы, в отчет Power View можно добавлять диаграммы и другие визуальные объекты. Здесь нет такого количества настроек, как в диаграммах Excel. Но в том то и сила инструмента — мы не тратим время на настройку, а быстро создаем отчет, визуализирующий данные в определенном разрезе.

Вот некоторые возможности Power View:

иконка 1

— быстро добавлять в отчет таблицы, диаграммы (без необходимости настройки)

иконка 2

организовывать срезы и фильтры

иконка 3

уходить на разные уровни детализации данных

иконка 4

добавлять карты и располагать на них данные

иконка 5

создавать анимированные диаграммы

Пример отчета Power View — на рисунке 5.

Евгений Довженко о том, как можно эффективно работать даже с огромными массивами данных. 7

Рис. 5. Пример отчета Power View

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

Хотите получать дайджест статей?

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

Спасибо за подписку!

Курс по теме:

«Advanced Excel»

Программы


Ведет
Никита
Свидло

Shell

16 мая
13 июня

Никита Свидло

0 / 0 / 0

Регистрация: 13.06.2021

Сообщений: 23

1

Документ более миллиона строк

19.05.2022, 20:50. Показов 1849. Ответов 16


Студворк — интернет-сервис помощи студентам

Приветствую, имеется документ где храниться около 1.5млн строк, при открытии выводиться сообщение о лимите, вопрос, как можно разделить документ не открывая его на два разных? что в каждом было к примеру по 700т и ограничение не срабатывало
Заранее благодарю



0



ᴁ®

Эксперт MS Access

3070 / 1736 / 361

Регистрация: 13.12.2016

Сообщений: 5,937

Записей в блоге: 4

19.05.2022, 20:59

2

Цитата
Сообщение от Nacu27
Посмотреть сообщение

имеется документ где храниться около 1.5млн строк

А какое чудо такой документ создало? Вот этим чудом и откройте.



0



0 / 0 / 0

Регистрация: 13.06.2021

Сообщений: 23

19.05.2022, 21:03

 [ТС]

3

Цитата
Сообщение от АЕ
Посмотреть сообщение

А какое чудо такой документ создало? Вот этим чудом и откройте

Выгрузка с бд, что бы просмотреть массово категории, не ожидал, что превысит 1млн строк



0



144 / 126 / 50

Регистрация: 25.06.2015

Сообщений: 375

19.05.2022, 21:06

4

Реально чудо какое-то…
Теоретически может помочь power query — подключение к файлу, фильтр, делящий таблицу на две части -> вывод данных.



0



ᴁ®

Эксперт MS Access

3070 / 1736 / 361

Регистрация: 13.12.2016

Сообщений: 5,937

Записей в блоге: 4

19.05.2022, 21:08

5

Цитата
Сообщение от Nacu27
Посмотреть сообщение

Выгрузка с бд,

Дробите выгрузку. Выгружаете в какой формат?



0



0 / 0 / 0

Регистрация: 13.06.2021

Сообщений: 23

19.05.2022, 21:14

 [ТС]

6

Цитата
Сообщение от Genbor
Посмотреть сообщение

Теоретически может помочь power query — подключение к файлу, фильтр, делящий таблицу на две части -> вывод данных.

А vbs скриптом это не реально ? грубо говоря указывать после какой строки вырезать данные на отдельный файл

Добавлено через 2 минуты

Цитата
Сообщение от АЕ
Посмотреть сообщение

Дробите выгрузку. Выгружаете в какой формат?

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



0



ᴁ®

Эксперт MS Access

3070 / 1736 / 361

Регистрация: 13.12.2016

Сообщений: 5,937

Записей в блоге: 4

19.05.2022, 21:26

7

Цитата
Сообщение от Nacu27
Посмотреть сообщение

В этом то и прикол, что выгрузить позволяет только xslx

Я сталкивался с таким, когда выгружал с сервера данные по камерам наблюдения о номерах машин за период…
В результате подробил периоды. А потом пришлось для анализа в БД все заново склеивать.
Только у меня SQL изначально не позволял делать больших файлов, а у вас тупая база, если позволяет делать нечитаемые файлы. А может все упирается в версию Офиса? Я ограничений для версий не смотрел.



0



0 / 0 / 0

Регистрация: 13.06.2021

Сообщений: 23

19.05.2022, 21:30

 [ТС]

8

Цитата
Сообщение от АЕ
Посмотреть сообщение

А может все упирается в версию Офиса? Я ограничений для версий не смотрел.

Я тоже так думал, но нет, версия 2021-го года



0



ᴁ®

Эксперт MS Access

3070 / 1736 / 361

Регистрация: 13.12.2016

Сообщений: 5,937

Записей в блоге: 4

19.05.2022, 21:34

9

Цитата
Сообщение от Nacu27
Посмотреть сообщение

Я тоже так думал, но нет, версия 2021-го года

С принимающей стороной разобрались. А что с передающей?



0



0 / 0 / 0

Регистрация: 13.06.2021

Сообщений: 23

19.05.2022, 21:42

 [ТС]

10

Цитата
Сообщение от АЕ
Посмотреть сообщение

А что с передающей?

Тут информацией к сожалению не владею



0



ᴁ®

Эксперт MS Access

3070 / 1736 / 361

Регистрация: 13.12.2016

Сообщений: 5,937

Записей в блоге: 4

19.05.2022, 21:43

11

1 048 576 строк и 16 384 столбца -посмотрел ограничения

Добавлено через 42 секунды

Цитата
Сообщение от Nacu27
Посмотреть сообщение

Тут информацией к сожалению не владею

Я тоже- задайте вопрос владеющей стороне.



0



0 / 0 / 0

Регистрация: 13.06.2021

Сообщений: 23

19.05.2022, 21:49

 [ТС]

12

Цитата
Сообщение от АЕ
Посмотреть сообщение

1 048 576 строк и 16 384 столбца -посмотрел ограничения

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



0



ᴁ®

Эксперт MS Access

3070 / 1736 / 361

Регистрация: 13.12.2016

Сообщений: 5,937

Записей в блоге: 4

19.05.2022, 21:54

13

Nacu27, ну если хотите поэкспериментировать переименуйте в zip и разделите ручками. Подробности не буду — поищите в сети. Я делал многие фокусы так. И снятие паролей и т.п.



0



малоболт

1143 / 442 / 193

Регистрация: 30.01.2020

Сообщений: 1,095

19.05.2022, 21:57

14

Лучший ответ Сообщение было отмечено Nacu27 как решение

Решение

Цитата
Сообщение от Nacu27
Посмотреть сообщение

Думал можно vbs скриптом разделить на две части после указанной в нем строки, но в этом я ноль

1. Можно попробовать следующее:
1.1. Сделать копию файла
1.2. Переименовать один файл в .zip
1.3 Вытащить из него xlworksheetssheet1.xml
1.4 Попробовать открыть его на редактирование FAR’ом или любым други нормальным редактором.
1.5 Запустить поиск <row r=»700001″
1.6 Удалить кусок строки от начала этого тега до конца файла
1.7 дописать в хвост </sheetData><pageMargins left=»0.7″ right=»0.7″ top=»0.75″ bottom=»0.75″ header=»0.3″ footer=»0.3″/></worksheet> или просто </sheetData></worksheet>
1.8 Загнать этот файл туда, откуда извлекли и скнова переименовать .zip в .xlsx
1.9 Попробовать открыть
1.10 Если сработает — тут уже придумать, какими подручными средствами и как сможете менять номера строк, чтобы начинались не с 700001 до последнего, а с 1. И точно также впендюрить исправленное во вторую копию.

Можно всё вышеописанное попробовать сделать VBS-скриптом или на VBA макросом (особенно перенумерование строк для 2 копии). Но хорошо бы проверить, что это рабочий алгоритм в вашем случае.



1



малоболт

1143 / 442 / 193

Регистрация: 30.01.2020

Сообщений: 1,095

20.05.2022, 09:24

15

Цитата
Сообщение от Nacu27
Посмотреть сообщение

есть два файла таких же(разделенных), но без сортировки по алфавиту

Я правильно понял, что таким образом проблема уже решилась? И больше не надо ничего пытаться писать для разбивки одного сверхбольшого файла? Вы просто отсортируете информацию в этих 2 файлах и используете их.



0



1 / 1 / 0

Регистрация: 26.05.2022

Сообщений: 23

26.05.2022, 14:55

16

А сколько вообще максимально должно быть строк на листе в Excel?



0



5942 / 3154 / 698

Регистрация: 23.11.2010

Сообщений: 10,524

26.05.2022, 15:48

17

Галкина, вообще-то тут об этом написано

Цитата
Сообщение от АЕ
Посмотреть сообщение

1 048 576 строк и 16 384 столбца -посмотрел ограничения



1



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

26.05.2022, 15:48

Помогаю со студенческими работами здесь

Как Excel документ, в котором 10000 строк, разбить по 10 строк и сохранить каждые 10 строк в отдельный файл
Здравствуйте. Подскажите как Excel документ в котором 10000 строк разбить по 10 строк и сохранить…

Дан двумерный массив, который содержит не более 20 строк и не более 5 столбцов
Дан двумерный массив, который содержит не более 20 строк и не более 5 столбцов. Найти минимальный …

Дана прямоугольная таблица, которая содержит не более 10 строк и не более 10 столбцов
Дана прямоугольная таблица, которая содержит не более 10 строк и не более 10 столбцов. Найти и…

Из произвольного текста, содержащего не более 10 строк, в каждой строке не более 80 символов
Здравствуйте. Помогите пожалуйста с заданием.
Из произвольного текста, содержащего не более 10…

в произвольном тексте, содержание не более 10 строк, в каждой строке не более 80 символов, удалить из слова пе
в произвольном тексте, содержание не более 10 строк, в каждой строке не более 80 символов, удалить…

Дана прямоугольная таблица, которая содержит не более 10 строк и не более 10 столбцов. Найти сумму элементов,
&quot;Дана прямоугольная таблица, которая содержит не более 10 строк и не более 10 столбцов. Найти сумму…

Дана прямоугольная таблица которая содержит не более 10 строк и не более 10 столбцов. Вывести только те элемен
Дана прямоугольная таблица которая содержит не более 10 строк и не более 10 столбцов. Вывести…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

17

Вопрос

Мне дали CSV-файл, содержащий больше, чем MAX Excel может обработать, и мне очень нужно иметь возможность видеть все данные. Я понял и попробовал метод «разделения», но он не работает.

Немного предыстории: CSV-файл — это файл Excel CSV, и человек, который дал файл, сказал, что в нем около `2 млн. строк данных.

Когда я импортирую его в Excel, я получаю данные до строки 1,048,576, затем повторно импортирую его в новой вкладке, начиная со строки 1,048,577 в данных, но это дает мне только одну строку, а я точно знаю, что их должно быть больше (не только из-за того, что «человек» сказал, что их больше 2 миллионов, но и из-за информации в последних нескольких наборах строк).

Я подумал, что, возможно, причина этого в том, что мне предоставили CSV-файл в формате Excel CSV, и поэтому вся информация после 1,048,576 потеряна (?).

Нужно ли мне запрашивать файл в формате базы данных SQL?

42
2013-06-05T16:37:49+00:00
12

 skyliner28

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

30-го июня 2013 в 3:23

2013-06-30T15:23:08+00:00

#19566374

Попробуйте delimit, он может быстро открыть до 2 миллиардов строк и 2 миллионов столбцов, есть бесплатная 15-дневная пробная версия. Для меня это отличная работа!

Martijn  van der Jagt

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

30-го апреля 2014 в 9:19

2014-04-30T09:19:24+00:00

#19566377

Я бы предложил загрузить файл .CSV в MS-Access.

Затем в MS-Excel вы можете создать соединение данных с этим источником (без фактической загрузки записей в рабочий лист) и создать подключенную поворотную таблицу. Вы можете иметь практически неограниченное количество строк в таблице (в зависимости от процессора и памяти: у меня сейчас 15 миллионов строк при 3 Гб памяти).

Дополнительным преимуществом является то, что теперь вы можете создавать агрегированные представления в MS-Access. Таким образом, вы можете создавать обзоры из сотен миллионов строк и затем просматривать их в MS-Excel (помните об ограничении в 2 Гб для файлов NTFS в 32-битных ОС).

 user2769406

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

11-го сентября 2013 в 3:39

2013-09-11T15:39:03+00:00

#19566375

Сначала нужно изменить формат файла с csv на txt. Это легко сделать, просто отредактируйте имя файла и измените csv на txt. (Windows выдаст предупреждение о возможном повреждении данных, но все в порядке, просто нажмите OK). Затем сделайте копию txt-файла, чтобы теперь у вас было два файла с 2 миллионами строк данных. Затем откройте первый txt-файл, удалите второй миллион строк и сохраните файл. Затем откройте второй файл txt, удалите первый миллион строк и сохраните файл. Теперь измените оба файла обратно в csv так же, как вы изменили их в txt.

 fvu

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

5-го июня 2013 в 4:49

2013-06-05T16:49:59+00:00

#19566372

Excel 2007+ ограничен количеством строк, несколько превышающим 1 миллион (2^20, если быть точным), поэтому он никогда не загрузит ваш файл с 2 миллионами строк. Я думаю, что техника, на которую вы ссылаетесь как на разделение, является встроенной в Excel, но afaik она работает только для ширины проблем, а не для длины проблем.

Действительно самый простой способ, который я вижу сразу, это использовать какой-нибудь инструмент для разделения файлов — их там ‘куча и использовать его для загрузки полученных частичных csv файлов в несколько рабочих листов.

ps: «excel csv файлы» не существуют, есть только файлы, создаваемые Excel, которые используют один из форматов, обычно называемых csv файлами…

Simple Text Splitter download | SourceForge.net

Download Simple Text Splitter for free. A very simple text splitter that can split text based files (txt, log, srt etc.) into smaller chunks.

sourceforge.net

Microsoft Support

Microsoft support is here to help you with Microsoft products. Find how-to articles, videos, and training for Office, Windows, Surface, and more.

office.microsoft.com

 Psi-Ed

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

5-го апреля 2016 в 1:15

2016-04-05T13:15:51+00:00

#19566379

Если у вас есть Matlab, вы можете открывать большие файлы CSV (или TXT) через его импорт. Инструмент предоставляет различные параметры формата импорта, включая таблицы, векторы столбцов, числовую матрицу и т. Д. Однако, поскольку Matlab является пакетом интерпретаторов, для импорта такого большого файла требуется свое время, и я смог импортировать его с более чем 2 миллионами строк примерно за 10 минут.

Инструмент доступен через вкладку «Главная» Matlab, нажав кнопку «Импорт данных». Пример изображения большой загрузки файла показан ниже:
введите описание изображения здесь
После импорта данные отображаются в рабочей области справа, которая затем может быть дважды щелкнута в формате Excel и даже нанесена на график в разных форматах.
введите описание изображения здесь

Fiddy Bux

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

18-го мая 2018 в 8:20

2018-05-18T20:20:52+00:00

#19566382

Я смог без проблем отредактировать большой файл csv объемом 17 ГБ в Sublime Text (нумерация строк позволяет намного легче отслеживать ручное разделение), а затем свалить его в Excel на куски размером менее 1 048 576 строк. Просто и довольно быстро — менее глупо, чем исследование, установка и обучение индивидуальных решений. Быстро и грязно, но это работает.

Timothy Wachiuri

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

22-го ноября 2016 в 6:42

2016-11-22T06:42:00+00:00

#19566380

Используйте MS Access. У меня есть файл из 2 673 404 записей. Он не откроется в блокноте ++, и Excel не загрузит более 1 048 576 записей. Он ограничен вкладкой, поскольку я экспортировал данные из базы данных mysql, и они мне нужны в формате csv. Поэтому я импортировал его в Access. Измените расширение файла на .txt, чтобы MS Access провел вас через мастер импорта.

MS Access свяжется с вашим файлом, чтобы база данных оставалась неизменной и сохраняла файл csv

David  García Bodego

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

4-го сентября 2019 в 5:55

2019-09-04T05:55:25+00:00

#19566383

Я нашел этот предмет исследования.
Существует способ скопировать все эти данные в таблицу данных Excel.
(У меня есть эта проблема раньше с файлом CSV из 50 миллионов строк)
Если есть какой-либо формат, дополнительный код может быть включен.
Попробуй это.

 Dredge

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

5-го мая 2015 в 3:21

2015-05-05T15:21:05+00:00

#19566378

Разделите CSV на два файла в блокноте. Это боль, но после этого вы можете просто редактировать каждый из них по отдельности в Excel.

Похожие сообщества
2

Excel Chat

excel_ru

Like this post? Please share to your friends:
  • Боковые рамки для word
  • Боковой фильтр в excel
  • Бойся я с тобой word
  • Бритва venus sensor excel
  • Бритва gillette sensor excel купить в москве