Показаны только первые 10000 уникальных элементов excel

Симптомы

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

Причина

В Excel 2003 раскрывающегося списка автофильтрации отображаются первые 1000 уникальных элементов. При наличии более 1000 уникальных элементов в списке отображаются только первые 1000 элементов.

В Excel 2007 и более поздние версии раскрывающегося списка автофильтрации отображаются первые 10000 уникальных элементов. При наличии более 10000 уникальных элементов в списке отображаются только первые 10000 элементов.

Примечание: Раскрывающийся список сводной таблицы Excel 2007 покажет сначала 65 534 уникальных элементов. Excel 2010 и выше раскрывающемся списке версия сводной таблицы отображаются первые 10000 уникальных элементов.

Временное решение

Чтобы обойти эту проблему, воспользуйтесь командой Автофильтр на меньшие части данных, вместо всех данных в то же время. Все элементы списка будут отображаться, если каждое подмножество имеет больше уникальных элементов, чем лимит для конкретной версии Excel.

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

alternate text

Нужна дополнительная помощь?

Как решить проблему с ограничение отображения в 10000 элементов Excel?

Обычно это сообщение возникает при применении фильтра. Это означает, что поиск при фильтрации
производится по первым 10 000 уникальным элементам. Решить проблему можно, разбив таблицу на требуемое количество строк
(чтобы было 10 000 или меньше уникальных элементов), или просто искать по Ctrl +
F без участия фильтра:

Ранее:

Как подсчитать сумму нарастающим итогом (последовательный счет)?

Далее:

Как быстро убрать режим защищенного просмотра файла Excel?

Яндекс.Метрика

We have a quite large spreadsheet with more than 10000 rows (each containing a different value). We like to use filters to filter in the spreadsheet, however, the filter dialog only allows filtering for the first 10000 unique values.

Please note, that I use numbers only for demonstrating the problem below, but we have more than 10000 different textual values in our actual spreadsheet.

To reproduce the bug, I’ve created an extremely simple spreadsheet that only contains a single column with the numbers 1 to 11000 in a single column. Then applied a filter and search for different values, note that the value 10002 exists (in A10003):

Screen Shot 2022-09-16 at 10.57.56.png

Filtering for 10000 works as expected: 

Screen Shot 2022-09-16 at 10.58.14.png

Filtering for 10001 (the 10000th unique value) works as expected: 

Screen Shot 2022-09-16 at 10.58.21.png

Filtering for 10002 does not work anymore and there is no way to fix this:

Screen Shot 2022-09-16 at 10.58.28.png

Please fix this serious bug as soon as possible or let me know how you can extend the number of elements that can be filtered by.

Environment information:

OS: MacOS

Product: Excel for Mac

Version: 16.65

Excel in Office 365 does not seem to have this problem:

Screen Shot 2022-09-16 at 11.25.46.png

как в фильтре отобразить более 40000 строк?

Гость

Дата: Суббота, 28.04.2012, 09:56 |
Сообщение № 1

Подскажите пожалуйста как в фильтре увидеть более 40000 строк, у меня ошибка» этот столбец содержит более 10000 уникальных элементов. Показаны только первые 10000 уникальных элементов. cry

 

Ответить

Serge_007

Дата: Суббота, 28.04.2012, 10:09 |
Сообщение № 2

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Quote

как в фильтре отобразить более 10000 строк?

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


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

 

Mandor

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

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

Здравствуйте, уважаемые форумчане.

Проблема распространенная. Excel 2010 не фильтрует по критерию. Ссылается на то, что столбец содержит более 10000 уникальных элементов.

Прошерстил поиск данного форума. Лучшего ответа, чем

по ссылке

не нашел. Однако тема эта уже в архиве и добавлять там ответы нельзя. А уточнения имеются.

В прилагаемом файлике по столбцу U необходимо найти строки в реестре с буквосочетанием «цинк». Понятное дело, в прилагаемом файле это может сделать автофильтр, но в исходнике около 40 000 строк, и автофильтр отказывается там работать.

Так вот в архивной теме слэн и KuklP предложили хорошие решения. Однако есть недостатки или неверное применение кодов мной. Так например решение слэна (пост №32 в теме архива) не может фильтровать по всему содержимому строки (т.е. при вводе «цинк» «оцинкован» отобран не будет, а «цинкование» будет). Решение KuklP позволяет отбирать по содержимому всей ячейки, но перекидывает на отдельный лист, что для моих целей неудобно.

С учетом всего вышесказанного, прошу помочь решить задачку. В красной ячейке столбца U при вводе «цинк» должно отобраться 3 строки на этом листе. Код в данной ячейке должен уметь отбирать по диапазону, содержащему около 40000 строк.

Спасибо!

Изменено: Mandor09.09.2013 11:59:53

 

Hugo

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

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

#2

09.09.2013 13:00:57

Код
Sub Mfind(c As Range)
    Dim X As Range, r As Range, fA$
    If c.Text <> "" Then
        Sheets(2).UsedRange.Clear
        Set X = Me.UsedRange.Columns(c.Column).Find(c.Text & "*", LookAt:=xlPart)
        If Not X Is Nothing Then
            Set r = X
            fA = X.Address
            Do
                Set X = Me.UsedRange.Columns(c.Column).FindNext(X)
                Set r = Application.Union(r, X)
            Loop While Not X Is Nothing And X.Address <> fA
            r.EntireRow.Copy Sheets("Лист2").[a1]
            Me.[a2].Select
            Sheets("Лист2").Activate
        End If: End If
End Sub

И код из второго листа думаю не нужен. Я его убрал.

Изменено: Hugo09.09.2013 13:03:23

 

Mandor

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

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

Mr. Hugo, не могли бы вы приложить файлик.

Я совсем темный в кодах. Действую по наитию. Вставил ваш код в лист 1, сохранил, а изменений не наблюдаю…

 

Hugo

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

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

Файл не покажу — я на работе.
Если сумели добавить в модуль листа — значит можете не добавить, а заменить уже существующий там аналогичный код.
Там должны быть два макроса —
Private Sub Worksheet_Change(ByVal Target As Range)
и этот
Sub Mfind(c As Range)
И во втором листе я не стал вникать зачем там аналогичный код — я его просто убрал. Думаю он там не нужен. Возможно он мешает.

 

Mandor

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

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

Вот теперь получилось, спасибо за разъяснение.

Но дело в том, что отфильтрованный материал попадает на новый лист. А мне нужно в исходном листе вносить изменения в отфильтрованных строках…

Возможно ли сделать так, чтобы отфильтрованные по условию строки отразились в исходном листе (лист1)?

На всякий случай прилагаю файл с кодом Hugo.

Изменено: Mandor09.09.2013 14:05:12

 

KuklP

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

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

E-mail и реквизиты в профиле.

#6

09.09.2013 14:16:54

Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> [u1].Address Then Exit Sub
    If Target = "" Then Me.Rows.Hidden = 0: Exit Sub
    Call Mfind([u1])
End Sub

Sub Mfind(c As Range)
    Dim X As Range, r As Range, fA$
    Set X = Me.UsedRange.Columns(c.Column).Find(c.Text & "*", LookAt:=xlPart)
    If Not X Is Nothing Then
        Set r = X: fA = X.Address
        Do
            Set X = Me.UsedRange.Columns(c.Column).FindNext(X)
            Set r = Application.Union(r, X)
        Loop While Not X Is Nothing And X.Address <> fA
        Me.UsedRange.Offset(2).EntireRow.Hidden = -1
        r.EntireRow.Hidden = 0
    End If
End Sub

Изменено: KuklP09.09.2013 14:24:40

Я сам — дурнее всякого примера! …

 

Mandor

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

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

KuklP, спасибо вам большое за помощь.

Разрешите уточнить, можно ли подкорректировать код так, чтобы сделать автофильтр по нескольким столбцам в одном листе? Будут ли тогда данные фильтры работать взаимоотбирая? Например в столбце А отобрали по критерию «доставка», в столбце В доотобрали по критерию «автомобиль», в столбце С доотобрали по критерию «легковой».

 

Mandor

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

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

Собственно говоря родился еще один вопрос. Зачем разработчики Excel поместили на лист столько строк? Какое-то издевательство на самом деле над пользователями. Сделать — сделали, а как оптимизировать работу нужно додумывать самому. Хорошо, что есть такой ресурс как этот!

 

Hugo

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

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

Не помещайте на лист столько данных.
Сохраняйте файл в формате 2003 — тогда и строк будет не так много :)
А по вопросу «зачем» — иногда это бывает нужно.
Сейчас есть работа с файлом на полмиллиона строк — говорят иногда выгрузка переваливала за миллион…

 

Мотя

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

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

#10

11.09.2013 12:21:42

Цитата
иногда выгрузка переваливала за миллион…

Если уж речь идет о выгрузке (экспорте) такого масштаба, можно предположить, что эта выгрузка — «из-под» мощного ПО.
А если ПО мощное, то такой объем информации «из-под» него может выгружать только тот, у кого  — «ни ума, ни фантазии»! :D
Мощное ПО всегда располагает мощнейшими шаблонами-фильтрами, основанными на алгоритмах для данной прикладной сферы.

 

KuklP

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

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

E-mail и реквизиты в профиле.

#11

11.09.2013 13:18:18

Цитата
Разрешите уточнить, можно ли подкорректировать код так

Безусловно можно. Но хлопотно и это уже выйдет за рамки простой помощи на форуме.

Цитата
Зачем разработчики Excel поместили на лист столько строк? Какое-то издевательство на самом деле над пользователями.

А у меня бампер и подушка безопасности в машине. Зачем? По Вашей логике я должен все время тормозить об стены, столбы, чтоб оправдать работу изготовителей? Иначе это

Цитата
Какое-то издевательство на самом деле над пользователями

?  :D
P.S. и вообще, в который уже раз пишу — форум не стол халявных заказов. Я показал Вам принцип, как это можно сделать — развивайте, делайте под свою хотелку. А если нет ни знаний, ни желания(времени и т.д.) ими овладевать, тогда прямая дорога именно в стол заказов, но

не халявных

:

http://www.planetaexcel.ru/forum/?PAGE_NAME=list&FID=7

Изменено: KuklP11.09.2013 13:24:21

Я сам — дурнее всякого примера! …

 

Hugo

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

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

У человека идёт выгрузка по DDE, обычно за день до 300к строк — и в общем вполне пока удобно динамично обрабатывать в Экселе, макрос справляется раз в пару секунд.
Но иногда изредка как раз нужна эта «подушка безопасности» до миллиона.
Хотя в будущем есть мысль переводить всё в нормальную базу, когда будет отработана вся схема обработки данных. Пока тренируемся «на кошках» :)

 

Денис Корсачёв

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

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

#13

17.12.2020 09:24:32

Здравствуйте, хотел обратиться с таким же вопросом, похожая ситуация только строк в листе около 150000 и нужно выбрать нужные строки на новый лист или книгу. Хотел воспользоваться макросом предложенным

KuklP

Private Sub Worksheet_Change(ByVal Target As Range)  
  If Target.Address <> [g3].Address Then Exit Sub
  Call Mfind([g3])
End Sub  

Sub Mfind(c As Range)  
  Dim X As Range, r As Range, fA$  
  If c.Text <> «» Then  
      Sheets(2).UsedRange.Clear  
      Set X = Me.UsedRange.Columns(4).Find(c.Text & «*», LookAt:=xlWhole)  
      If Not X Is Nothing Then  
          Set r = X  
          fA = X.Address  
          Do  
              Set X = Me.UsedRange.Columns(4).FindNext(X)  
              Set r = Application.Union(r, X)  
          Loop While Not X Is Nothing And X.Address <> fA  
          r.EntireRow.Copy Sheets(«Лист2»).[a1]
          Me.[a2].Select
          Sheets(«Лист2»).Activate  
      End If: End If  
End Sub  

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

Приложу пример своей урезанной таблицы (выбрать строки нужно по названию выделенным красным), может кто объяснит как его правильно использовать!

Прикрепленные файлы

  • row.xlsx (10.62 КБ)

Изменено: Денис Корсачёв17.12.2020 09:25:05

Понравилась статья? Поделить с друзьями:
  • Показаны не все элементы excel как исправить
  • Показ служебных символов word
  • Показ непечатаемых знаков в word
  • Покажите на рисунке ленту word
  • Пойми меня в excel