Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Добавить на панель быстрого доступа: "Фильтр по значению выделенной ячейки", Вопрос: как добавить на панель быстрого доступа: "Фильтр по значению выделенной ячейки"
 
Цитата
Михаил Лебедев написал:
Так же, как и любую другую кнопку
Если бы было всё так просто - не было бы вопроса!

Это контекстное меню ячейки "Фильтр" --> "Фильтр по значению выделенной ячейки"
Возможности добавить "как другую" - там нет.
Добавить на панель быстрого доступа: "Фильтр по значению выделенной ячейки", Вопрос: как добавить на панель быстрого доступа: "Фильтр по значению выделенной ячейки"
 
Jack Famous, так я проверил, прежде чем спрашивать: в списке доступных команд - не нашёл.
Макрос - не решение.
Добавить на панель быстрого доступа: "Фильтр по значению выделенной ячейки", Вопрос: как добавить на панель быстрого доступа: "Фильтр по значению выделенной ячейки"
 
Как добавить на панель быстрого доступа: "Фильтр по значению выделенной ячейки"
SELECT по столбцу, когда первые значения одного типа, а остальные - другого, Известно, что excel определяет тип по первым значениям, а если первые - числа, а потом - текст?
 
Цитата
TheBestOfTheBest написал:
в самом соединение отключите сохранение формата (это обязательно, иначе изменений не увидите).
А это как?
SELECT по столбцу, когда первые значения одного типа, а остальные - другого, Известно, что excel определяет тип по первым значениям, а если первые - числа, а потом - текст?
 
Цитата
Андрей VG написал:
Прекращаете использовать Excel не по назначению, а переходите на Access
Я то - ещё и не на такое могу перейти. А вот пользователи этого - вряд ли.

Цитата
TheBestOfTheBest написал:
Это в MSQuеry
Слышал, что в PowerQuery - можно делать типизированные выборки. Как-то у меня это получалось с помощью менюшек и wizard'ов.
Если кто-то покажет код, как это делать программно - я буду просто счастлив. Надо получить типизированную таблицу, по которой может работать SELECT, из листа excel или из "умной" таблицы.
SELECT по столбцу, когда первые значения одного типа, а остальные - другого, Известно, что excel определяет тип по первым значениям, а если первые - числа, а потом - текст?
 
Цитата
Андрей VG написал:
Вот когда добьётесь
Если так добиваться, то зачем тогда SQL-запросы, можно и вручную...

Пользователь заполняет поле "№ дома" в адресе:
1
3
5
9
11
25
39
43
43а
45
45/3
45/8

Первые восемь - на глаз, неотличимы от чисел, и excel их воспримет, как числа, если принудительно не преобразовывать. Но я не могу заставить всех, кто присылает мне данные - проверять на принудительное преобразование к тексту. Вот такой ряд, как здесь - самый обычный вариант. Только значения "43а", "45/3" и "45/8" - SELECT не покажет, так как столбец будет по первым восьми интерпретирован, как ЧИСЛОВОЙ, а эти три значения - он не сможет интерпретировать, как числа.
Ежу ясно, что если я буду в ячейке писать '123 , вместо 123 - он поймёт, как текст. Но это задача об обработке всех исходных данных (объёмных) каким-то злым макросом, который должен знать структуру данных (какие столбцы - текстовые) и перезаписать их, анализируя содержимое. Это - бред кромешный.
SELECT по столбцу, когда первые значения одного типа, а остальные - другого, Известно, что excel определяет тип по первым значениям, а если первые - числа, а потом - текст?
 
SELECT Fi1, Fi2, CStr([Fi3]) AS Fi3a FROM [SRC1$] WHERE Fi1 >= 8
- по той же табличке, даёт:
8   6   6
9   7   7
10  8   8
11  8  

а надо:
8   6   6
9   7   7
10  8   8
11  8   w
Изменено: Rainman0 - 18.06.2018 14:39:20
SELECT по столбцу, когда первые значения одного типа, а остальные - другого, Известно, что excel определяет тип по первым значениям, а если первые - числа, а потом - текст?
 
Цитата
Андрей VG написал:
ответ очевиден - преобразовать числа в текст
Это отдельная тема, тут понятно.

Уточню задачу: исходные данные - находятся на листе excel, запрос делается по листу, как по таблице. Я ничего не смешиваю, просто в каком-то столбце - допустимы данные похожие на числа, в другом - первые значения - вообще могут быть пустыми. Но столбец на листе excel - не имеет типа, и я не знаю способа заставить excel считать данные в столбце конкретным типом, текстом - например.
А в итоге, в результирующей таблице - дырки.
SELECT по столбцу, когда первые значения одного типа, а остальные - другого, Известно, что excel определяет тип по первым значениям, а если первые - числа, а потом - текст?
 
Картина такая:
Fi1Fi2Fi3
3a1
4a2
533
644
755
866
977
1088
118w
> SELECT Fi1, Fi2, Fi3 FROM [SRC1$] WHERE Fi1 >= 8

8 6 6
9 7 7
10 8 8
11 8
Буковка - пропала. Тоесть, если в первых записях - что-то похожее на числа, а дальше - текст, то текста мы в выборке - не увидим.

Как быть?
ThisWorkbook.FullName - не выводит расширения, ThisWorkbook.FullName - не выводит расширения файла
 
Разобрался. Всё таки ошибка была.
ThisWorkbook.FullName - не выводит расширения, ThisWorkbook.FullName - не выводит расширения файла
 
Цитата
Дмитрий Щербаков написал:
А книгу уже успели сохранить
Книга - сохранена, тем не менее - расширения нет, а Path - показывает пустоту.
ThisWorkbook.FullName - не выводит расширения, ThisWorkbook.FullName - не выводит расширения файла
 
Обыскался решения. Миллионы примеров, как на этом форуме, так и на других: везде подразуемевается, что ThisWorkbook.FullName - с расширением, а у меня оно не выводится. Поискал в других параметрах - нет. Неужели нет способа вывести полный путь с именем и расширением, из которого открыт файл?
Ошибка в срезе УМНОЙ таблицы (не сводной), Ошибка в срезе УМНОЙ таблицы (не сводной): фильтрация неполная
 
PooHkrd, я как раз и решал задачу ухода от сводных  :oops:
Смысл: сводная пересчитывается по команде и вся сразу. А хотелось сделать, чтобы при изменении цифры в одной ячейке - цифры в некоторых других, менялись моментально и без обновления сводных. Можно обновлять сводную по факту изменения циферок, но это же - вообще зависнет: если от каждого изменения на листе будут сводные автообновляться.

З.Ы. можно и пересчитывать всё макросом, но это уже будет не электронная таблица, а полноценный программный продукт, с соответствующей трудоёмкостью.
Изменено: Rainman0 - 27.02.2018 14:44:34
Ошибка в срезе УМНОЙ таблицы (не сводной), Ошибка в срезе УМНОЙ таблицы (не сводной): фильтрация неполная
 
Немного скомбинировал идею Дмитрий Щербаков, со своей из поста #3:
1. удалил "нагрузку" - очистил ячейки, содержащие формулы.
2. снял фильтры (данные --> отжать воронку)
3. поставил фильтры заново.

сработало!
если я прав в истоии с кэшем, то этот кэш - чистится, при снятии фильтров и постановке заново.
Однако, для решения задачи (у нас же не чисто теоритеческая беседа) - надо понять, как сделать, чтобы срез работал нормально на большой таблице со сложными многочисленными формулами. Если это невозможно, то возникает вопрос: я что, первым наступил на эти грабли - почему нет заплатки на эту тему?
Ошибка в срезе УМНОЙ таблицы (не сводной), Ошибка в срезе УМНОЙ таблицы (не сводной): фильтрация неполная
 
Не жмите бездумно на кнопку цитирования![МОДЕРАТОР]

Вру. Если срез грохнуть - возможно снять фильтр. Переустановил фильтр, попробовал фильровать (просто фильтром - срез не восстанавливал) - глюк тот же.
Ошибка в срезе УМНОЙ таблицы (не сводной), Ошибка в срезе УМНОЙ таблицы (не сводной): фильтрация неполная
 
Кнопка цитирования не для ответа [МОДЕРАТОР]

Это невозможно - нективен блок ленты фильтр, если выделить умную таблицу. Что, в общем, ожидаемо - как можно наложить автофильтр, если есть фильтр - компонент таблицы.
+Я там существенно дописал в 3й пост - свои идеи.
Ошибка в срезе УМНОЙ таблицы (не сводной), Ошибка в срезе УМНОЙ таблицы (не сводной): фильтрация неполная
 
Поменял на вручную - глюк остался.

Что интересно: очистил все ячейки с формулами - глюк сохранился :-(
Это уже малость за гранью

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

Ещё эксперимент - скопировал содержимое глючного листа на новый лист, добавил срез уже на этом листе - работает нормально, пока формулами не нагружал.
Скопировал лист, нагруженный формулами - глючит.

Есть столбец, в котором одно из значений встречается только в нижней части таблицы - он перестал видеть это значение, кнопка соответствующая исчезла.
Напрашивается вывод: некая подсистема, работающая со срезами (и фильтрами) умной таблицы "видит" не более определённого объёма данных таблицы. Например, если эта условная система рассматривает таблицу, как некий XML, то первые N килобайт видит (берёт в буфер, кэш?) а остальное - нет; при удалении формул, не происходит оптимизации кэша (формулы отключены, но места в памяти - столько же занимают), в результате чего - глюк сохраняется.
Изменено: Rainman0 - 27.02.2018 13:53:32
Ошибка в срезе УМНОЙ таблицы (не сводной), Ошибка в срезе УМНОЙ таблицы (не сводной): фильтрация неполная
 
Excel 2013 (не предлагайте обновить - невозможно, да и файл должен работать на любом)
Делаю "умную таблицу", на несколько колонок ставлю срезы.
Данные в фильруемом срезом столбце расположены, как A,B,C,D,E,A,B,C,D,E,A,B,C,D,E.
Нажимаю на срез "B", получаю в фильтре строки: B,B,C,A,E.
На срезе - подсвечено только "B"
При дальнейших нажатиях на срез - происходят разные чудеса, но в основном - меняется только первая строка.
Более того, после снятия всех фильтров - некоторые строки остаются скрытыми.
Если уменьшить количество строк в таблице - и уникальных значений столбца, эффект немного меняется: отфильтрованными остаются все правильные значения, плюс нижняя строка таблицы (не строка итогов, а просто нижняя в данных), в независимости от того, что в ней.
Самое главное: глюки начинаются после того, как таблица нафаршировывается формулами, в основном СУММЕСЛИМН. Размер таблички - порядка 40 столбцов на 100 строк, большинство столбцов - с формулами.
В фильтруемых столбцах - формул нет.

Ощущение такое, что будучи нагруженным формулами, excel - съезжает с нарезки, и начинает глючить :-(

Предоставить образец - не могу: только если искусственно воссоздать на случайных данных, а создавать придётся порядочно, чтобы иметировать нагрузку.
SQL-запросы данным из листа(ов) книги excel из VBA - из макроса в той же книге, работа внутри одной книги excel с макросами
 
Цитата
Андрей VG написал:
Можете, как вариант рассмотреть и  SQLite for Excel , аналогично, пряча внутрь листа.
Хорошее решение, хотя - уже не один файл с отчётом. SQLite - у клиента должен быть, иначе отчёт - живым не будет.
Цитата
Андрей VG написал:
вариант  от Игоря. .
  - готовая технология распространения вирусов :-) А решение - весьма интересное, особенно - если в сочетании со вторым: запихнуть SQLite внутрь файла Excel, макросом его выложить, после чего - спокойно работать с БД (не забыв предупредить пользователя, что материализовавшиеся ниоткуда файлы - не вирус)
SQL-запросы данным из листа(ов) книги excel из VBA - из макроса в той же книге, работа внутри одной книги excel с макросами
 
Цитата
БМВ написал:
Андрей, Ассеss в Pro и в Pro+ входит
Дело не в этом: файлы рассылаются сотрудникам разных компаний, производительность их компьютеров, версии офиса и пр. параметры - неизвестны. Заявлено только, что офис старее версии 2010 - не поддерживается, так как сводные, срезы и пр. прелести.
Если использовать "подкачку" из access (без требования установки самого access - это же возможно) - возможностей намного больше, НО - распространять надо уже два файла - парой, вместо одного - для каждого отчёта из нехилого набора. Это исследование - попытка осмыслить возможность избежать "многофайловых" рассылок, средствами обработки данных непосредственно внутри файла excel.
SQL-запросы данным из листа(ов) книги excel из VBA - из макроса в той же книге, работа внутри одной книги excel с макросами
 
Всё это работает, только если у данных есть "образец": должна быть хотя бы одна строка с данными, по которой excel "определит" типы данных в столбцах.
Задание "формата ячеек" - не влияет ни на что.
Если под заголовком пусто - вышеописанный код вылетит с ошибкой о несовпадении типов данных. Это происходит потому, что значение в первый столбец ("fid") запишется виде текста: там будет не 3, а "'3"!

Кто-нибудь знает, что с этим делать :qstn: Если по условиям задачи (а оно так и есть) надо записывать таблицу с нуля - формировать заголовок и начинать писать данные, то всё рушится  :excl:

практически тот же вопрос: ссылка
Изменено: Rainman0 - 22.02.2017 10:23:42
SQL-запросы данным из листа(ов) книги excel из VBA - из макроса в той же книге, работа внутри одной книги excel с макросами
 
Код
Option Explicit
Public Sub InsertToXlTable()
    Const sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=$1;Extended Properties='Excel 12.0;HDR=YES'"
    Dim cn As New ADODB.Connection
    cn.Mode = adModeShareDenyNone: cn.Open Replace$(sConn, "$1", ThisWorkbook.FullName)
    cn.Execute "Insert Into [Table$] Values (3,'name3', #2010-11-30 13:58:15#)"
    cn.Execute "Update [Table$] Set fname='long name' Where fid=1"
    cn.Close
End Sub
Один из рабочих вариантов (благодарю skais675 и Андрей VG). Я, вроде бы, сам себе отвечаю, но это не так: я пишу для тех, кто наткнётся на эту ветку и сразу найдёт вариант без затрат времени.
В этом примере:
"Table" - название листа книги
"fid", "fname" и "fdate" - названия полей (заголовки - в верхней строке листа "Table", соответственно в A1, B1 и C1)
Поправил в примере значение типа "дата": не перевариваю американский формат - он неоднозначный, "ГГГГ-ММ-ДД" (со временем: "ГГГГ-ММ-ДД чч:мм:сс") - логичнее и однозначнее, чем "ММ/ДД/ГГГГ".

Для лучшего понимания, найти бы ещё книжку или online-документацию, где подобные моменты описаны с точки зрения теории.
SQL-запросы данным из листа(ов) книги excel из VBA - из макроса в той же книге, работа внутри одной книги excel с макросами
 
Здравствуйте!
Задача состоит в работе с данными на листах книги excel, с помощью SQL-запросов, без установки чего-либо, кроме самого MS Office. Как я понял, "ADODB.Connection" - единственный вариант, с ним и воюем.
Много где приводятся примеры запросов SELECT, но нигде не обсуждаются UPDATE или INSERT. И уж совсем удачей было обнаружить, что DELETE - в принципе не поддерживается. Непросто откопать, что надо подключить библиотеку "Microsoft ActiveX Data Objects", ещё интереснее - отыскивать какая версия этой библиотеки для чего годится; не очевидно, с какой версии офиса начинается библиотека версии 6.1: если нужна совместимость с несколькими версиями офиса - начинаешь сомневаться.

Вопрос в следующем: при попытке переделать рабочий код с SELECT'ом в код с INSERT'ом - получил: "должен использоваться обновляемый запрос". Может кто-то предложить простой, но полный (не вырванный из контекста) пример рабочего кода для INSERT, а заодно и для UPDATE? Если ещё опишете нюансы, в несколько строчек - вообще замечательно.
Занят буфер при копировании содержимого ячейки
 
А знает ли кто-нибудь, как определить, какая программа следит за буфером обмена?
Страницы: 1
Наверх