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

Страницы: 1 2 3 След.
Как на самом деле работает Text.SplitAny в PQ ?
 
Господа, прошу прощения, зря грешил на Text.SplitAny, ошибка не в приведенной мной строчке, а в дальнейшей логике которая оказалась не совсем логичной.  
Таки и да, файлики нужно было прикладывать, а еще лучше тестироваться тчатильнее!
Цитата
Дмитрий(The_Prist) Щербаков написал:
Поэкспериментируйте с примерами из этой статьи:  Оставить цифры или текст при помощи PowerQuery
Спасибо, по данной статье и руководствовался )))

Тему можно закрывать
Как на самом деле работает Text.SplitAny в PQ ?
 
Низзя файлик, я подписку давал )))  Пишу с корпоративного ПК.

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

В PQ могут быть заморочки с версиями (у меня Эксель2016 )  ?
Как на самом деле работает Text.SplitAny в PQ ?
 
У меня стоит задача из текста  типа "3пст 31-00259641 от 12.10.2021" выделить ключевое значение "259641"  цифровая.
Использую следующий код:

Код
= Table.AddColumn(#"Измененный", "НомЗпст2", each Text.SplitAny([Заказ клиента.Номер заказа магазина],Text.Remove([Заказ клиента.Номер заказа магазина],{"0".."9"}))),

Здесь, я сначала из текста убираю все цифры, этот промежуточный результат использую для разделения исходного текста как separators функции Text.SplitAn  и получения отдельных цифровых групп, ведь как указанно в справке "Text.SplitAny Возвращает список текстовых значений, полученных в результате разбиения текстового значения text на основе любого символа в указанном разделителе separators"

Но по факту, все происходит не так, и в приведенном мной ранее примере "3пст 31-00259641 от 12.10.2021"  у меня разбивается на следующие группы:
331
25964112
10
2021
Т.е. групп явно меньше чем ожидается и не происходит выделения нужной мне.
При этом, в  случае например "3пст 31-00259641" группа "259641" выделяется.

Да как же так-то?
PowerQuery чувствителен к регистру названия полей в Эксель-источнике
 
Господа,спасибо за разъяснения. Однако PooHrkd, позвольте вопрос: перегнать таблицу в списки, а потом назад в таблицу, не будет ли это ресурсоемким занятием?
PowerQuery чувствителен к регистру названия полей в Эксель-источнике
 
PooHkrd[/QUOTE]
Цитата
PooHkrd написал:
1= Table.ToColumns( Table.FromColumns(tab), List.Transform( Table.ColumnNames( tab ), Text.Lower) )


Простите, а у вас  Table.ToColumns  не перепутано ли местами с Table.FromColumns  ?
PowerQuery чувствителен к регистру названия полей в Эксель-источнике
 
Цитата
surkenny написал:
surkenny

В общем программировать..
Я просто в душе надеялся что можно некую галочку снять/поставить, или некий Option Compare установить.
PowerQuery чувствителен к регистру названия полей в Эксель-источнике
 
Возможно мой вопрос покажется вам странным, но как ?)))
Изменено: vikttur - 16.09.2021 09:18:59
PowerQuery чувствителен к регистру названия полей в Эксель-источнике
 
Столкнулся с тем, что PowerQuery чувствителен к регистру текста в названия полей в Эксель-источнике. Это можно преодолеть с помощью самого PQ?
Пожалуйста не спрашивайте меня, как это и почему регистр текста названия полей в выгрузке может меняться)))
Ошибка Method open of object_Connection failed при подключении к ADO
 
Здравствуйте!

Использую годами подключение  (от Дмитрий Русак dg_rusak@mail.ru)
Код
Dim sCon As String, FieldName As String
Dim rs As Object, cn  As Object
Set rs = CreateObject("ADODB.Recordset")
Set cn = CreateObject("ADODB.Connection")
If FieldsName Then FieldName = "Yes" Else FieldName = "No"

FilePath$ = ThisWorkbook.FullName

Select Case CLng(Split(Application.Version, ".")(0))
    Case Is < 12
        sCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FilePath _
          & ";Extended Properties=""Excel 8.0;HDR=" & FieldName & ";IMEX=1"";"
    Case Is >= 12
        sCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FilePath _
        & ";Extended Properties=""Excel 12.0;HDR=" & FieldName & ";IMEX=1"";"
End Select

cn.Open sCon


С сегодняшнего дня на Open начало выдавать ошибку Method open of object_Connection failed.
На соседней машине с аналогичной системой все работает.
Что бы это может быть?
Изменено: Столбенко Владислав - 23.07.2021 13:41:57
Неочевидные особенности работы функции IsEmpty
 
Цитата
Ігор Гончаренко написал:
разруха не IsEmpty, разруха в головах

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

Однако за ролик вам спасибо, он очень о многом говорит.
Всего вам хорошего!
Неочевидные особенности работы функции IsEmpty
 
Цитата
Ігор Гончаренко написал:
и все будет работать согласно описания в документации
В данном случае скорее согласно НЕописанному в документации.
https://docs.microsoft.com/ru-ru/office/vba/language/reference/user-interface-help/isempty-function
Неочевидные особенности работы функции IsEmpty
 
Эх, хотелось с IsEmpty синтаксического сахарку, а вышла какая-то хреновина.

Итак, правильно ли я понимаю что If значение= Empty будет в отличии от этого мелкомякого IsEmpty работать как АК-47, во всех мыслемых и немыслемых случаях?
Неочевидные особенности работы функции IsEmpty
 
Цитата
Jack Famous написал:
Функция для проверки значения на строку нулевой длины
Спасибо!
Но товарищи, я считаю что это какое-то вредительство и заговор!
Неочевидные особенности работы функции IsEmpty
 
Цитата
Ігор Гончаренко написал: тщательнее подходите к изучению матчасти
Категорически протестую, требую сатисфакций и вызываю на дуэль на пивных кружках! Сегодня-же в пятницу вечером, с секундантками!

Считаю что одной конторке из Редмонда нужно лучше варить документацию!
Неочевидные особенности работы функции IsEmpty
 
Извлекаю значение из Dictionary, без буферной переменной. Обертываю его в IsEmpty(значение), значение при этом String, его замеряемая длинна Len =0, на прямое сравнение значение=Empty  выдает True. Но IsEmpty выдает False!
Лезу в справку, в справке есть указание что аргумент желателен Variant, при этом как-то это поверхностно указанно.  Делаю финт ушами IsEmpty(CVar(значение))  , но один черт IsEmpty возвращает False.
Товарищи, че за .....???

Есть небольшая предыстория. Значение (в данном случае из пустой ячейка) попадает в Dictionary из отчета формируемого чудо-юдо CRM Аварда с помощью FastReport и там бывает творятся всякие разные чудеса. Так например берешь с отчета сумму c дробью, оно распознается как Double, но оно оказывается не равно другому такому-же Double, только через CCur. И причем это происходит не совсем столбцом, а выборочно.
Но Empty не IsEmpty это уже перебор.
Преобразование числовых типов через Cstr и последущее сравнение на равность, Преобразование числовых типов
 
Если кратко собираюсь  для таблиц-массивов создавать аналог некластерных индексов SQL.
Вынимать ключи нет такой задачи, есть задача задавать в Collection элементы с ключами  универсального типа, но в текстовом представлении. Для решения коллизий в типах данных, начало ключа будет содержать префикс исходного типа данных, в частности: префикс B- логический тип, N - группа всех числовых типов (в том числе и Date), T - текстовый тип. Повторюсь, мои переживания будут ли в равнозначную строку конвертироватся через Cstr данные разных типов с дробями, а именно случаи с экспоненциальной формой. Вот как формируется  экспоненциальная форма в VBA ? По единому алгоритму или в зависимости от версии? На моей памяти я наблюдал такие расхождения  в 2007, причем в целых числах 9-12 знаков (но всех параметров ситуации не помню).

Цитата
Дмитрий(The_Prist) Щербаков написал: И помнится здесь когда-то кто-то выкладывал самописный класс(без сторонних библиотек), эмулирующий работу словаря.
Мдя уж, найти бы его, чтоб заново не изобретать велосипед. Но смешались в кучу кони, люди...)))
Преобразование числовых типов через Cstr и последущее сравнение на равность, Преобразование числовых типов
 

Собираюсь эмулировать в Collection возможность использования ключей в числовых типах (Byte,Decimal,Double, Single,Integer,Long, Currency) . Делать это собираюсь через функцию Cstr. Также собираюсь использовать в ключах и тип Date, но перед Cstr делать конверсию в Double.  Одним словом частично эмулировать в Collection возможности ключей разных типов Dictionary.  В Dictionary без проблем можно создать ключ например в Date и отыскать его в запросе с аргументом в ином типе, но с равным значением. Получится ли у меня такой финт преобразованиями  через Cstr ? Ожидаю проблемы Cstr преобразования типов с дробями  -  Single, Double,  Currency, Decimal  и CDbl(Date). Прав ли я в опасениях?

Использовать Dictionary не могу т.к. приходится использовать позднее связывание словаря, а в 2013 от такого скорость падает буквально в 5 раз по сравнению с прямым связыванием.

Быстродействие классов с большими структурами данных внутри., Быстродействие ООП
 
В классе создаю коллекцию коллекций  (или коллекцию  Dictionary, или массивов, - все испробовал) в несколько тысяч строк.
Наблюдаю следующее быстродействие в версиях Экселя ( в условной оценке):
2003  на слабой машинке - достойный результат. Старый добрый АК-47.
2009 на средней машине - отлично!
2013 на машине несколько выше среднего - примерно 5-ти кратное падение скорости  по сравнению с 2009 !
в 2013 тестово выношу создание коллекции коллекций в модуль - рост скорости почти в 4 раза! Заношу назад в класс, маневрирую в классе и так и этак - результата ноль, скорость дрянь.
WTF ?
Костылить часть кода из класса в модуль? @#$№№&й стыд!  
VBA: DataObject - некорректное отображение символов при вставке из буфера обмена
 
Да, все заработало! Огромное спасибо!
DataObject   у меня также продолжает некорректно вставлять в буфер. Т.е. у меня это не блуждающий глюк, а вполне себе стабильный.  
VBA: DataObject - некорректное отображение символов при вставке из буфера обмена
 
Цитата
sokol92 написал: Как себя поведет этот кусок кода?
Ничего не изменилось.
Почитал предоставленные sokol92 ссылки. Это просто 3,14, -блуждающий глюк!  Буду решать танцами с бубнами на тему Copy и РasteSpecial.

Цитата
sokol92 написал: Итак, если у автора темы 32-разрядный офис
64 разрядный.
VBA: DataObject - некорректное отображение символов при вставке из буфера обмена
 
А причем кодировка и некорректное отображение, если на любою входную  строку- числовую или символьную,  любой длинны из буфера возвращает два символа "?"  с кодом 63?

Цитата
Oleg Boyaroff написал: Если в редакторе кода попробовать написать на кириллице, будет нормально отображаться или в виде белиберды?
в IDE кириллица набирается норм., вставляется  криво - вопросами.  
VBA: DataObject - некорректное отображение символов при вставке из буфера обмена
 
А какие - такие изменения могли бы произойти?

ОС как была Windows 10 так и осталась  ,Office 2013,  библиотека Forms 2.0.  
VBA: DataObject - некорректное отображение символов при вставке из буфера обмена
 
Отказался работать DataObject .

Запускаю код
Код
Dim MyDataObj As New DataObject
MyDataObj.SetText ActiveCell.Value  
MyDataObj.PutInClipboard  

После этого на Ctrl+V из буфера выдается белиберда,- непечатные символы ��.

Ссылка на библиотеку Forms 2.0  подключена.

Ранее этот код работал. Почему перестали ехать лыжи ?

Стиль ссылок при работе с PivotTables, Зачем-то приходится инвертировать стиль ссылок при работе с PivotTables
 
Цитата
sokol92 написал:
Excel иногда делает "послабления" для этого правила, однако полагаться на это не стоит
Так оно и было, Первоначально я собирал адрес с апострофами, но в процессе "оптимизации" они "отвалились" и до переключения  руками в настройках стиля ссылок ничто не предвещало проблем.  
Стиль ссылок при работе с PivotTables, Зачем-то приходится инвертировать стиль ссылок при работе с PivotTables
 
Цитата
sokol92 написал:
"Свистопляска" из-за пробелов в имени листа.

Да, действительно с .Address(external:=True)  все заработало как нужно и  без странных костылей, спасибо.
Однако встает вопрос как же эти кривые костыли с перевертыванием стиля ссылок работали ? Но то ладно, уже пустое.    
Стиль ссылок при работе с PivotTables, Зачем-то приходится инвертировать стиль ссылок при работе с PivotTables
 
Цитата
БМВ написал:
ну ожидает оно в R1С1 стиле, чай не первый случай. При этом всегда, выяснять ничего ненужно, просто .address(,,xlR1C1)
А вот и не факт, начинает "козлить"  если при открытом файле сводной меняется стиль ссылок в настройках (я менял вручную).
Прикладываю файл с рабочим примером с инверсией стиля ссылок диапазона данных сводной. Кстати припоминаю что подобная свистопляска была с установкой области печати.
Установлен 2013
 
Изменено: Столбенко Владислав - 20.11.2018 09:43:30
Стиль ссылок при работе с PivotTables, Зачем-то приходится инвертировать стиль ссылок при работе с PivotTables
 
Столкнулся с необходимостью инвертировать стиль ссылок при работе с PivotTables при изменении  источника данных сводной таблицы, иначе ругается.
Но зачем и почему?   Или лыжи невиноваты ?


Код
''''''''''''' зачем-то инвертируем стиль ссылок при формировании сроки адреса диапазона данных сводной
bRefStyle = iif(Application.ReferenceStyle= 1, -4150, 1)
 
''''''''''''''''''''''''''формируем сроку адреса диапазона данных сводной
sPtData = ФайлПодтверждения.Path & "\" & "[" & ФайлПодтверждения.Name & "]" & ФайлПодтверждения.Worksheets(4).Name & "!" & ФайлПодтверждения.Worksheets(4).[a1].CurrentRegion.Address(, , bRefStyle)

''''''''''''''''''''''''прогружаем диапазон данных сводной
ActiveSheet.PivotTables("СводнаяТаблица1").ChangePivotCache ActiveWorkbook. _
        PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        sPtData _
        , Version:=xlPivotTableVersion10)
Импорт/экспорт Dictonary в XML файл
 
Тема закрыта
Изменено: Столбенко Владислав - 30.10.2018 09:06:14
Импорт/экспорт Dictonary в XML файл
 
Структуру я приводил , она такого типа:

Покупатель
   Накладная
   атрибуты накладной
   таблица товаров

Не думаю что она сложная. Количество уровней дерева невелико и фиксировано,- поэтому я её и определил под термином "четкая".
А почему нельзя словарь пользовать на полную катушку его возможностей ? Почему нельзя использовать словарь как дерево и хранить в нем массивы?
Я считаю что мне для моей задачи возможностей и методов словаря достаточно,  использование XML вместо словаря избыточно, не нужны мне возможности xPatch, не собираюсь я по воробьям из танка.  
Импорт/экспорт Dictonary в XML файл
 
Речь идет о Словаре с достаточно простой и четкой структурой, в данном случае мне было-бы удобней оперировать  словарем чем XML напрямую. Проблема в том что словарь VBA невозможно сохранить в файл, но я предположил что существуют реализации импорта/экспорта словаря в файл и самое очевидное это через XML.
А какие проблемы создать словарь например экспортом из XML ? в обоих случаях дерево.
 
Страницы: 1 2 3 След.
Наверх