Ответить
  • 18769 Junior MemberАвтор темы
    офлайн
    18769 Junior Member Автор темы

    66

    20 лет на сайте
    пользователь #18769

    Профиль
    Написать сообщение

    66
    # 15 сентября 2004 18:05

    Excel 2002. Есть таблица на 65 000 строк. Ставлю автофильтр на один из столбцов и НЕ получаю все уникальные значения столбца. Подсчет в Access показывает, что этих уникальных значений должно быть порядка 8 000. Как обойти?

  • dishef Onliner Auto Club
    офлайн
    dishef Onliner Auto Club

    3276

    21 год на сайте
    пользователь #4665

    Профиль
    Написать сообщение

    3276
    # 16 сентября 2004 00:23

    просьба привести конкретный пример и для экселя и для акцеса!

    т.е. как выглядело условие для фильтра в экселе, и соответсвенно запрос в аксесе.

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

  • 18769 Junior MemberАвтор темы
    офлайн
    18769 Junior Member Автор темы

    66

    20 лет на сайте
    пользователь #18769

    Профиль
    Написать сообщение

    66
    # 16 сентября 2004 08:27

    dishef, конкретный пример: имеем таблицу в экселе. Таблица представляет собой 1 столбец и 65 000 строк. Выделяем столбец, идем в Данные -> фильтр -> автофильтр. Получаем выпадающий список, в котором (по идее) должны быть все уникальные строки из столбца. На деле получаем гораздо меньше (не знаю сколько, но вижу, что не все).

    Делаю импорт таблицы в Access, потом запрос:

    SELECT [Part].[TP] FROM [Part] GROUP BY [Part].[TP];

    Получаю таблицу в 8 500 строк. Вот эти 8 500 строк я хочу получить в выпадающем списоке экселя.

  • dishef Onliner Auto Club
    офлайн
    dishef Onliner Auto Club

    3276

    21 год на сайте
    пользователь #4665

    Профиль
    Написать сообщение

    3276
    # 16 сентября 2004 09:37

    Blue Giant,

    а не выбран ли в экселе в это же время фильтр по другому столбцу?

  • 18769 Junior MemberАвтор темы
    офлайн
    18769 Junior Member Автор темы

    66

    20 лет на сайте
    пользователь #18769

    Профиль
    Написать сообщение

    66
    # 16 сентября 2004 09:59

    Нет. :-?

  • Yuri_K Senior Member
    офлайн
    Yuri_K Senior Member

    6093

    21 год на сайте
    пользователь #4604

    Профиль
    Написать сообщение

    6093
    # 16 сентября 2004 10:01

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

    Попробуй разбить список на несколько частей, и посмотри, будет-ли корректно работать автофильт.

    Просто сколько я его пользую - проблемм не встречал - все там просто и понятно...

  • 16631 Senior Member
    офлайн
    16631 Senior Member

    2469

    20 лет на сайте
    пользователь #16631

    Профиль
    Написать сообщение

    2469
    # 16 сентября 2004 10:26

    Да, в Excel есть ограничение на количество уникальных значений в автофильтре. Если не ошибаюсь, 1000.

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

    Вобще Excel для подобных операций (частотного анализа при большом объеме данных) негоден абсолютно, как впрочем и Access.

    Лучше всего поискать специально заточенный под подобные задачи софт: SPSS (самый лучший вариант при очень больших базах - миллионы строк, десятки тысяч столбцов - версию 12.0 не бери - к ней крэк хороший пока не вышел ;) ), STATISTICA (тоже неплохо, удобнее интерфейс, но тормозной движок - версию 6.0 не брать ни русскую ни английскую - для нее пока тоже нет нормальных крэков и официальной русификации) - это лидеры рынка специальных стат. приложений. Есть программы и попроще, однако их и найти посложнее :) (Origin Lab, Microsoft Data Analyzer, GENSTAT, SigmaStat, SYSSTAT, NCSS и т.д.)

    Если задачи решаются серьезные, от MS Office лучше отказаться :D

  • 18769 Junior MemberАвтор темы
    офлайн
    18769 Junior Member Автор темы

    66

    20 лет на сайте
    пользователь #18769

    Профиль
    Написать сообщение

    66
    # 16 сентября 2004 10:36

    Yuri K., на самом деле я уверен, что дело именно в большом количестве уникальных значений. Сократил таблицу - уникальных значений стало около 2 500. И все равно все значения не отображаются в списке автофильтра. Фишка еще и в том, что сокращение таблицы не выход: нужно иметь в списке _все_ уникальные записи.

  • Yuri_K Senior Member
    офлайн
    Yuri_K Senior Member

    6093

    21 год на сайте
    пользователь #4604

    Профиль
    Написать сообщение

    6093
    # 16 сентября 2004 11:05

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

  • 18769 Junior MemberАвтор темы
    офлайн
    18769 Junior Member Автор темы

    66

    20 лет на сайте
    пользователь #18769

    Профиль
    Написать сообщение

    66
    # 16 сентября 2004 11:31

    Lel', речь об анализе даже и не идет. Суть: эта, блин, таблица представляет собой, список настроек клиентов и предполагалось, что оператор будет испольховать автофильтр для оперативого поиска этих настроек (например). Оператор знаком с excel и не будет изучать SPSS, STATISTICA и даже Access. Поэтому, конечная цель - обойти ограничения или (похоже, единственный выход) рисовать свою форму фильтра и макрос.

  • 18769 Junior MemberАвтор темы
    офлайн
    18769 Junior Member Автор темы

    66

    20 лет на сайте
    пользователь #18769

    Профиль
    Написать сообщение

    66
    # 16 сентября 2004 11:36
    Yuri K.:

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

    Как организовать автофильтр простыми формулами? Не въезжаю

    :insane:

  • 16631 Senior Member
    офлайн
    16631 Senior Member

    2469

    20 лет на сайте
    пользователь #16631

    Профиль
    Написать сообщение

    2469
    # 16 сентября 2004 11:43

    Blue Giant, ясно :) Однако, раз сталкиваешься с подобными задачами, тебе специальный стат. софт на компе не помешает. 8)

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

  • 18769 Junior MemberАвтор темы
    офлайн
    18769 Junior Member Автор темы

    66

    20 лет на сайте
    пользователь #18769

    Профиль
    Написать сообщение

    66
    # 16 сентября 2004 11:55

    Lel', эта... Access я не понаслышке знаю :), а для оператора все, что сложнее таблички в excel неприемлемо :(

  • 16631 Senior Member
    офлайн
    16631 Senior Member

    2469

    20 лет на сайте
    пользователь #16631

    Профиль
    Написать сообщение

    2469
    # 16 сентября 2004 12:17

    :) Я заметил, что знаешь. Но вот по поводу операторов позволю себе с тобой не согласиться. Если сделать форму Access, она будет гораздо удобнее, не нагружена "лишними" данными, возможно даже визуально более приятной ;) Как пользоваться, объяснишь за 5 минут. Можно добавить справку и к самой форме. Никаких проблем не будет. А вот с Excel как раз операторы напортачат с большей вероятностью.

    Blue Giant, эта... операторов я не понаслышке знаю :) Автофильтр Excel - не лучший вариант для твоей задачи. Ну если уж операторам так прет Excel, пусть пользуют "найти/find" :roll:

    Ну а если серьезно, и если так уж тебе нужен этот автофильтр Excel, разбей свою базу на листы по алфавиту или по другим интуитивно понятным операторам критериям. Скорее всего (с очень большой вероятностью), на каждом листе получится менее тысячи уникальных ячеек :idea:

  • Yuri_K Senior Member
    офлайн
    Yuri_K Senior Member

    6093

    21 год на сайте
    пользователь #4604

    Профиль
    Написать сообщение

    6093
    # 16 сентября 2004 12:30

    Я тут пофантозировал и составил автофильт простыми формулами - получилось немного кривовато, но зато работает и никаких ограничений на количество.

    Давай мылу -- вышлютебе пример, а ты сам подкрутишь...

  • 18769 Junior MemberАвтор темы
    офлайн
    18769 Junior Member Автор темы

    66

    20 лет на сайте
    пользователь #18769

    Профиль
    Написать сообщение

    66
    # 17 сентября 2004 10:23

    В итоге, ограничения на автофильтр есть: 1000 записей. http://support.microsoft.com/default.aspx?scid=kb;en-us;295971.

    Yuri K., спасибо за мыло, попробую прикрутить, пока туго. В идеале хотелось бы что-нибудь максимально приближенное к автофильтру.

  • Yuri_K Senior Member
    офлайн
    Yuri_K Senior Member

    6093

    21 год на сайте
    пользователь #4604

    Профиль
    Написать сообщение

    6093
    # 17 сентября 2004 10:59

    :) сорри, весь интузиазм пропал. Я Excel люблю и хорошо знаю, потому, было интересно попробовать реализовать новую фишку. А теперь, когдя я вижу (знаю) как ее решить, стало как-то не интересно - вот оно рутина убивает творчество.

    Ты опиши, что тебе точно надо, может у меня будет свободная минутка и чтонибудь там наковыряю.

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

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

  • 18769 Junior MemberАвтор темы
    офлайн
    18769 Junior Member Автор темы

    66

    20 лет на сайте
    пользователь #18769

    Профиль
    Написать сообщение

    66
    # 17 сентября 2004 15:49

    Yuri K., кста, а как получить список уникальных значений из заданного диапазона? И еще, есть ограничение на 65 536 строк, но это, как я понимаю, уже не победить. А хотелось бы 75 000. Обрисую, что точно надо. Тут все просто.

    Таблица

    А B C D

    1 а1 b1 c1 d1

    2 а2 b2 c2 d2

    3 а3 b3 c3 d3

    ... ... ... ... ...

    z az bz cz dz

    Хочу автофильтр по всем колонкам. Проблема возникает с колонкой B: в ней окло 8500 уникальных строк. Т.е. нужен combobox с источником строк из уникальных записей и код, который будет врубать соответствующий фильтр. Пробовал взять combobox - в нем почему-то отсутствует свойство Row Source. Что не так? :-?

  • Yuri_K Senior Member
    офлайн
    Yuri_K Senior Member

    6093

    21 год на сайте
    пользователь #4604

    Профиль
    Написать сообщение

    6093
    # 17 сентября 2004 16:24

    Row Source эт что? - Форматировать список по диапазону (я в англицком не работал)? - Если так, тогда незнаю почему. По дефолту все оки.

    Получить список оригинальных значений - тут надо подумать над каким-нить более простым решением, мне на ум приходит только сортировать столбец - гденить на отдельной странице - и точно такимже способом, которым делается выборка в моем примере искать уникальные значения - только в качестве поисковой строки будет сперва 1-я строчка массива, потом n+1-я строчка, где n - количество одинаковых значений по результатам первого поиска... уловил логику?

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

    Про комбобокс ничего путного рассказать не могу, он какой есть, такой есть - ничего там не поменяешь.

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

  • 18769 Junior MemberАвтор темы
    офлайн
    18769 Junior Member Автор темы

    66

    20 лет на сайте
    пользователь #18769

    Профиль
    Написать сообщение

    66
    # 20 сентября 2004 11:59

    Yuri K., Row Source - источник строк, т.е. где брать данные для комбобокса. Опять же, как взять только уникальные значения, типа DISTINCT в SQL? Заморачивание с сортировкой столбца и т.д. с таблицей в 72 000 строк сильно замедлит работу, имхо.

    В итоге, операторам было предложено юзать автофильтр по условию и не дурить голову :).

    Спасибо всем отозвавшимся.