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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 156 След.
Power BI. Фильтрация массива данных по содержанию текста внутри ячейки, Необходимо отфильтровать массив данных по критерию внутри текста для отбора только необходимых значений
 
так вам в Power Query надо решить вопрос, или в DAX? Надеюсь, что в Power Query
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
    lst = List.Buffer(List.Transform(LookupTable[Данные для отбора], Text.Lower)),
    Select = Table.SelectRows(Source, each List.AnyTrue(List.Transform(lst, (x)=>Text.Contains(Text.Lower(_[Text]), x))))
in
    Select
F1 творит чудеса
Замена значения столбца по условию другого столбца. Power Query, Замена значения по условию внутри столбца без добавления нового
 
Цитата
surkenny написал:
при изменении сразу нескольких столбцов вариант из #9 будет лаконичнее.
Конечно. Плюс есть еще вариант на списках - через Table.FromList/ToList

А так - проверил на 100.000 записей, добавление+переименование+удаление самая быстрая операция (чтд). Ибо всеми остальными способами мы пытаемся повторить то же самое, но вручную.


tmhashNIK, не очень понимаю, что такое
Цитата
написал:
более чистого по структуре шагов
Как говорится, вам с шашечками или ехать? :)
F1 творит чудеса
Замена значения столбца по условию другого столбца. Power Query, Замена значения по условию внутри столбца без добавления нового
 
Цитата
surkenny написал:
создание нового столбца, удаление старого, переименование шустрее будет
тоже не понял, нафига сыр-бор такой. Накнопать - и будет работать быстро (!!!) и надежно. Вряд ли список складов для замены очень большой
F1 творит чудеса
Power BI. MIN и MAX дата по несколькими таблицам
 
В плане "а как еще можно"
Код
=
var min1 = min(min(Table1[Date]), min(Table2[Date]))
var min2 = min(min(Table3[Date]), min(Table4[Date]))
var min3 = min(min(Table5[Date]), min(Table5[Date]))
var minmin = min(min(min1, min2), min3)
F1 творит чудеса
Несовпадение значений таблицы в PowerQuery и DataGrip
 
Mikhail23,никто не видит ни ваш запрос PQ, ни того, как вы коннектитесь к базе.
Ну посмотрите профайлером, что именно запрашивает PQ и что ей отдает БД
F1 творит чудеса
PQ. Посдстановка значения из справочника в зависимости от диапазона значения
 
te1n, можно и без индекса, если не нужно сохранять предыдущий порядок
Код
// Значения
let
    Источник = Excel.CurrentWorkbook(){[Name="Значения"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Значение", Int64.Type}}),
    Custom1 = #"Измененный тип" & Справочник,
    #"Sorted Rows" = Table.Sort(Custom1,{{"Значение", Order.Ascending}, {"наименование", Order.Ascending}}),
    #"Filled Up" = Table.FillUp(#"Sorted Rows",{"наименование"})
in
    #"Filled Up"

// Справочник
let
    Источник = Excel.CurrentWorkbook(){[Name="Справочник"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"ДО", Int64.Type}, {"наименование", type text}}),
    #"Renamed Columns" = Table.RenameColumns(#"Измененный тип",{{"ДО", "Значение"}})
in
    #"Renamed Columns"
F1 творит чудеса
PQ фильтрация по дате и удаление промежуточных строк
 
Роман Богуславский, главное, не пытайтесь пока писать код М при помощи ChatGPT :)

и да, я хотел еще раз намекнуть. Сейчас мой код просто дает первое и последнее время за дату. Но если первое событие в дне - не вход, а выход, и/или последнее событие - не выход, а вход, то результат будет неверный.
Поэтому и задал уточняющий вопрос - всегда ли всё правильно, или есть нарушители, которые вошли и забыли отметиться на выходе, или забыли отметиться на входе. Тогда код будет сложнее.

Alien Sphinx, спасибо, поностальгировал :)
Изменено: Максим Зеленский - 15.06.2023 15:07:17
F1 творит чудеса
PQ фильтрация по дате и удаление промежуточных строк
 
Мне кажется, для целей анализа вам нужно не две строки, а одна - с началом и концом.
в таком случае всё делается кнопками:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Removed Top Rows" = Table.Skip(Источник,8),
    #"Promoted Headers" = Table.PromoteHeaders(#"Removed Top Rows", [PromoteAllScalars=true]),
    #"Removed Other Columns" = Table.SelectColumns(#"Promoted Headers",{"ФИО сотрудника", "Компания", "Подразделение", "Дата и время"}),
    #"Filtered Rows" = Table.SelectRows(#"Removed Other Columns", each [ФИО сотрудника] <> null and [ФИО сотрудника] <> "ФИО сотрудника" and [ФИО сотрудника] <> ""),
    #"Changed Type" = Table.TransformColumnTypes(#"Filtered Rows",{{"Дата и время", type datetime}}),
    #"Inserted Date" = Table.AddColumn(#"Changed Type", "Дата", each DateTime.Date([Дата и время]), type date),
    #"Grouped Rows" = Table.Group(#"Inserted Date", {"ФИО сотрудника", "Компания", "Подразделение", "Дата"}, {{"Start", each List.Min([Дата и время]), type nullable datetime}, {"Finish", each List.Max([Дата и время]), type nullable datetime}})
in
    #"Grouped Rows"

Но вот вопрос - а у вас всегда последняя запись за день - это выход, а первая - вход? насколько знаю, на практике такое может встречаться вообще не всегда :)
F1 творит чудеса
Power Query | Перенос данных из сформированной таблицы в другую
 
Цитата
Сергей Никитин написал:
при редактировании цены на первой странице
редактирование в столбце Прайс?

Итого, если я правильно понял, проще всего сделать так: сделайте обновление один раз, затем просто замените в столбце цены в прайсе на простую формулу
=ВПР([@[Наименование товара]];Таблица_с_сравнением;3;ЛОЖЬ)
Тогда при редактировании цены она подтянется сразу в прайс и при следующем обновлении уже прочтется.
Ну или новый столбец сделайте. Короче, поэкспериментируйте с тестовыми вариантами. в PQ я бы не возился тут, незачем
F1 творит чудеса
Power Query | Перенос данных из сформированной таблицы в другую
 
Цитата
Alien Sphinx написал:
не тот случай
почему же, мне кажется, именно тот :) Но тут вопрос к автору, что значит вот это вот:
Цитата
Сергей Никитин написал:
при изменении цены в этой объединенной таблице, менялась цена в прайс-листе
F1 творит чудеса
Power Query | Перенос данных из сформированной таблицы в другую
 
Цитата
Alien Sphinx написал:
нет, ошибка будет (cyclic reference).
да ну не обязательно...
F1 творит чудеса
PQ как из одной широкой таблицы сделать высокую, Как с помощью PQ в конец существующей таблицы автоматически перенести текс следующих Х столбцов, а затем следующих Х столбцов и так Y раз
 
вариантик

Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    N = 2,
    Group = 4,
    Combined = List.Combine(
        Table.ToList(
            Source, 
            (x)=>List.TransformMany(
                {List.FirstN(x, N)}, 
                (y)=>List.Select(List.Split(List.Skip(x, N), Group), each List.NonNullCount(_)>0),
                (x, y) => x & y
                )
            )
        ),
    toTable = Table.FromList(Combined, (x)=>x, List.FirstN(Table.ColumnNames(Source), N + Group))
in
    toTable
F1 творит чудеса
Ошибка в запросе Power Query, Expression Error в запросе Power Query
 
Alexander, ну, попробуйте ещё это поменять
Код
Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv)

на
Код
Splitter.SplitTextByDelimiter(";")
F1 творит чудеса
Power Query. Ошибка DataFormat.Error: Входные данные не удалось распознать как допустимый документ Excel.
 
Александр, макрос на VBA, например. где-то пробегал по форуму. Там всё просто должно быть.
Это, конечно, если не получается сохранять из 1С сразу в CSV а не в Excel.
F1 творит чудеса
Отобразить подсказку только на колонке строк, Power Bi
 
не встречал такого
F1 творит чудеса
PQ: определение кол-ва столбцов при загрузке из csv
 
Логика такая будет:
Код
let
    file = Binary.Buffer(File.Contents("ххх.csv")),
    SecondLine = Lines.FromBinary(file){1},
    ColumnsNo = List.Count(Table.ColumnNames(Csv.Document(SecondLine,[Delimiter=";", Encoding=1251, QuoteStyle=QuoteStyle.None]))),
    Source = Csv.Document(file,[Delimiter=";", Columns = ColumnsNo, Encoding=1251, QuoteStyle=QuoteStyle.None])
in
    Source

но вообще преобразовывать в таблицу с 10000+ столбцов - так себе идея. Там вообще другие строки есть?
Если файлы очень большие (сотни Мб), то BinaryBuffer может сыграть злую шутку
F1 творит чудеса
Поиск нескольких элементов в срезе на дашборде PBI, Массовый поиск в срезах pbi
 
Student64, есть и другие кастомные визуалы. поройтесь в магазине, там точно что-то есть нужное (копипастой можно вставлять списком через запятую). Запамятовал название
F1 творит чудеса
Можно ли в PowerBi - использовать макросы
 
Цитата
PooHkrd написал:
имеется лимит в 48 обновлений в сутки? При этом есть возможность запускать обновления через  Power Automate  чаще чем раз в полчаса, но суммарное количество обновлений в сутки ограничено все равно 48 раз.
Вообще нет, на премиуме ограничение 48 раз - только для обновления по расписанию. Вручную (и аналогичными методами) - хоть каждую минуту тыкай.
F1 творит чудеса
Пользовательский столбец - пользовательская функция - ошибка без ошибки - Power Query / Power BI
 
Volodymyr S, пересохраните книгу как XLSM. Не любит Power Query форматы XLS и XLSB. В вашем файле примера, кстати, нет никаких UDF
F1 творит чудеса
Power Query сравнение текущего значения с предыдущим значением
 
Олег Бакунин, как понять вот это:
1. Окончание мойки без начала.
2. Два финиша подряд

Это нормальная ситуация при выгрузке, или это такие ошибки вкрались в сэмпл?
Что с ними делать - если в первом случае можно, например, просто убрать или еще какую-то логику применить, то во втором - вообще непонятно, что это и откуда.
F1 творит чудеса
Power Query при объединении запросов добавляет дополнительные строки и не подтягивает данные из (выборочно) из объединенных запросов
 
Цитата
EvgenijjSamec написал:
теряется часть данных с того запроса который подтягиваешь к основному (в ячейку встает значение null).
берем две таблицы: ЛЕВАЯ и ПРАВАЯ.
Если в таблице ЛЕВАЯ есть какое-то значение ключа (или нескольких ключей), а в ПРАВОЙ такое с 200% (совпадением) сочетание отсутствует, и мы выполняем "Внешнее соединение слева", то в итоговой таблице будут все строки таблицы ЛЕВАЯ, а для тех ключей, которые в таблице ПРАВАЯ не нашлись, будет заполнено null.
Причины, по которым могут быть не найдены ключи при кажущемся внешнем 100% совпадении:
1. Разный регистр символов (Power Query чувствителен к регистру) - приводим текст к одному регистру (верхнему или нижнему) перед слиянием.
2. Наличие лишних "невидимых" пробелов в хвосте текста - делаем операцию "Усечь" (Выделили столбец - правой мышью или в меню "Преобразование" ищем такой пункт) на столбцах слияния в обеих таблицах
3. Наличие непечатаемых (служебных) символов в одном из текстов тексте - делаем операцию "Очистить" (Выделили столбец - правой мышью или в меню "Преобразование" ищем такой пункт) на столбцах слияния в обеих таблицах.

Все остальные случаи (за редчайшим исключением) относятся к реальному несовпадению данных.
F1 творит чудеса
PQ/P BI - Минимальное из 2х столбцов.
 
Вот вопрос у вас так составлен, что ничего не понятно.
Ладно...
Есть два столбца, table[xx] и table[yy]. Мы хотим в новом столбце получить на уровне строки минимальное значение из двух.
В PQ:
Код
List.Min({[xx], [yy]})

В DAX:
Код
MIN(table[xx], table[yy])

Если речь идет о том, что нужно получить минимум из всех значений двух столбцов, то
В PQ:
Код
List.Min({List.Min(table[xx]), List.Min(table[yy]})

В DAX:
Код
MIN(MIN(table[xx]), MIN(table[yy]))


Если DAX в старом Excel, а не в Power BI, то там может не работать синтаксис MIN(scalar1, scalar2). Тогда так:
Код
var Min1 = MIN(table[xx])
var Min2 = MIN(table[yy])
return
IF(Min1<Min2, Min1, Min2)
F1 творит чудеса
некорректный результат при вычитании округленных значений в Power Query
 
Mr-Dno, это не глюк, а особенность вычисления чисел в формате "десятичное число". Там по умолчанию вот такая точность (с возможностью погрешности в дальних знаках). Эта погрешность - особенность хранения чисел Double, источник которой - двоичная система хранения чисел, а не Power Query
Чтобы избежать такой погрешности, есть смысл переводить числа в формат Currency.Type (десятичное число с фиксированной запятой) - там не более 4-х знаков.
Либо переводить в этот формат результат вычитания, например (может быть так, что два числа с фикс. запятой, но результат с плавающей точкой.
Либо использовать для сравнения функцию Value.Compare с применением третьего параметра Precision.Decimal
F1 творит чудеса
VBA проверка на число (по заданному региональному стандарту)
 
Коллеги, спасибо за вопросы - подготовлю файл, приложу. Там еще маленькие нюансы выяснились, уточню их по ходу дела
F1 творит чудеса
VBA проверка на число (по заданному региональному стандарту)
 
допилил на проверку тысячных разделителей американских
В моем случае они ошибка, поэтому для них false. Для проверки сначала их чищу от "," и заменяю разделитель, он думает, что это число, а дальше не проходит проверку.
Код
Sub tezt()
Dim st
'st = Empty
'st = "0,5"
'st = 0.5
'st = "0.5"
'st = 1
'st = True
st = "12,345.67"

If IsNumeric(CStr(st)) Or IsNumeric(Replace(Replace(Cstr(st), ",", ""), ".", Application.International(xlDecimalSeparator))) Then
        If Not IsNumberDotSeparated(st) Then
            Debug.Print CStr(st), False
        Else
            Debug.Print CStr(st), True
        End If
    Else
        'non-number branch
        Debug.Print CStr(st), False
 
    End If
End Sub

sokol92, на значении 0.5 (как число) ломается, похоже. Если брать из ячейки его, например.

UPD
блин, нет, хромая логика. Изменил разделитель в системе, неправильно работает :(
F1 творит чудеса
VBA проверка на число (по заданному региональному стандарту)
 
sokol92, спасибо за вопросы, навело на кучу мыслей :)

Цитата
sokol92 написал:
Такой текст допустим "123,456.78" (числа в локализации en_US)?
с таким пока не знаю, что делать. По идее, тысячные разделители вряд ли встретятся, но надо допилить будет код. Текст в формате "123.45" как раз то, что должно считаться числом.
Цитата
sokol92 написал:
Что должна возвращать функция: True / False или число / False?
достаточно true/false
Цитата
sokol92 написал:
В Excel логические значения ячеек - самостоятельный базовый тип (не числа и не текст). Для них что возвращать?
false
Цитата
sokol92 написал:
Для пустых ячеек что возвращать?
false

Вроде решил я, как-то так (не оптимально для Empty, но не страшно)
Код
Function IsNumberDotSeparated(ByRef MyVal) As Boolean

If CStr(MyVal) = Replace(CStr(MyVal), Application.International(xlDecimalSeparator), ".") Then
    'Debug.Print MyVal, "Number with Dot separator"
    IsNumberDotSeparated = True
Else
    'Debug.Print MyVal, "Number with other separator"
    IsNumberDotSeparated = False
End If

End Function

Sub tezt()
Dim st
st = Empty
'st = 0.5
'st = "0.5"
'st = 1
'st = "2"
'st = True
If IsNumeric(CStr(st)) Then
        If Not IsNumberDotSeparated(st) Then
            Debug.Print CStr(st), "false"
        Else
            Debug.Print CStr(st), "true"
        End If
    Else
        'non-number branch
        Debug.Print CStr(st), IsNumeric(Replace(st, ".", Application.International(xlDecimalSeparator)))
    End If
End Sub


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

Есть три ячейки, в которых может быть написано число с десятичным знаком или без десятичного знака, причем может быть сохранено как текст или как число:
0.5true
0,5false
1true
нужен кусочек кода VBA для проверки содержимого ячейки
Если в ячейке записано целое число, без десятичного знака, то это не ошибка. Неважно, как оно сохранено - как текст или как число
Если в ячейке записано число со знаками после запятой, то если разделитель не точка - это ошибка.
Если в ячейке записано число со знаками после запятой, то если разделитель точка - это не ошибка.

Макрос должен работать в системе с любыми региональными стандартами. Иными словами, хороши только целые числа, и то, что может быть преобразовано в число, но при этом обязательно в нем разделитель - точка.

вот такой код не дает нормального результата, увы :(
Код
Sub tezt()
With Application
       .DecimalSeparator = "."
       .ThousandsSeparator = ","
       .UseSystemSeparators = False
End With

Debug.Print "0.5", IsNumeric("0.5")     ' false, должно быть true
Debug.Print "0,5", IsNumeric("0,5")     ' true, должно быть false
Debug.Print "1", IsNumeric("1")           ' true, всё в порядке

Application.UseSystemSeparators = True
End Sub


Идеи?
F1 творит чудеса
Как избежать повторного обращения к источнику данных в запросе Power query?, использование функции Table.Buffer при работе с большими массивами данных
 
Генератором календарь создавать как-то расточительно.
Код
let
  src = Csv.Document(), 
  dates = List.Buffer(src[Дата]),
  dateStart = Date.StartOfMonth ( List.Min ( dates ) ), 
  dateEnd = Date.EndOfMonth ( List.Max ( dates ) ), 
  generate = Table.FromColumns(
    {List.Dates(dateStart, Duration.TotalDays(dateEnd-dateStart)+1, #duration(1, 0, 0, 0) )},
    type table [Дата = Date.Type]
  )
in
  generate
F1 творит чудеса
Семантическая ошибка с функцией "Calculate"
 
ANSWERIVER, в вашем файле-примере данные не соответствуют коду меры - нет поля VISIT DATE. Изобретать за вас?
Чем не устраивает вариант из #5?
F1 творит чудеса
PQ. Создание полей на основании разделителя в строках., Имеется поле, в котором находится несколько атрибутов, которые необходимо разделить на разные поля.
 
ivanka, если у вас там и правда несколько пробелов в начале, то так
F1 творит чудеса
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 156 След.
Наверх