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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 155 След.
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 творит чудеса
При транспонировании таблицы через PQ требуется сохранить расположение определенных строк
 
Цитата
Max Long написал:
Для приведения моей исходной таблицы удобный формат для загрузки в сводную таблицу
требуемый формат, указанный вами, не соответствует понятию "удобный для загрузки в сводную". Зачем там повторяются заголовки и итоги по году?
F1 творит чудеса
Power Query инорирует определенные строки
 
akudja, покажите код запроса. Пока склонен присоединиться к StepanWolkoff по поводу причин.
Имейте в виду, если вы делали вот это:
Цитата
IURII Po написал:
убирались ненужные столбцы и строки.
то надо смотреть, как сработала формула в коде.
Например, если у вас список из А, Б, В, Г, Д и вы в Power Query в столбце сняли галочку с А , то у вас будет фильтр <> A. А если сняли галочки с А, Б, В, то у вас будет такой фильтр: = Г или = Д. Т.е. программа запоминает фильтр по пути наименьшего сопротивления.
Поэтому вполне возможно, что когда вы убирали ненужные строки, у вас фильтр запомнился не так, как вам надо. Хотели убрать фильтр со всего, что не Б, К, С, а получилось, что запомнили только Б и К.
F1 творит чудеса
Power Queryю Счет уникальных, вложенной таблицей
 
Kostya_Ye, не стоит так делать. В каждой строке вы будете фильтровать таблицу. Загнется уже на средних объемах данных
F1 творит чудеса
Power Query инорирует определенные строки
 
Буква С такая хитрая. Вот я ее написал латиницей или кириллицей?
F1 творит чудеса
Power BI. Рассчитать итоговое количество клиентов по каждой категории за период
 
Создаете таблицу в DAX например вот такую:
Код
Категории = 
DATATABLE(
    "Категория", STRING,
    "Порядок", INTEGER,
    {
        { "Горячий", 1 },
        { "Тёплый", 2 },
        { "Холодный", 3 },
        { "Потерянный", 4 }
    }
)
Второй столбец в ней для сортировки.

Мера вот такая:
Код
Количество клиентов по категориям =
VAR _ClientsInCurrentScope =
    VALUES( 'Посещения по клиентам'[ID Клиента] )
RETURN
    IF(
        ISINSCOPE( 'Категории'[Категория] ),
        COUNTROWS(
            FILTER(
                _ClientsInCurrentScope,
                [Мера Категория] = SELECTEDVALUE( 'Категории'[Категория] )
            )
        ),
        COUNTROWS( _ClientsInCurrentScope )
    )
F1 творит чудеса
DAX. Фильтрация результата вычисления, значениями из другой таблицы без связи., фильтровать средние значения.
 
Код
Return
if(AverageValue<FilterValue, AverageValue)
F1 творит чудеса
Как мерой DAX рассчитать расходы товара со складов, зная, как изменялись остатки.
 
Можно объединить таблицы в одну:
  • или сделать в PQ слияние по номеру склада и дате, присоединив таблицу Прих к таблице Остат,
  • или, так как у вас таблицы связаны по дате,и если я правильно понимаю, в одну дату только на один склад есть приход, то можно в Power Pivot создать вычисляемый столбец с формулой = RELATED('Прих'[Приход]),
чтобы у вас появился еще один столбец Приход.
Тогда просто добавляете в свою формулу
Код
+SUM('Остат'[Приход])
Если не хотите так менять данные, то вот такие формулы могут помочь:
Код
Сумма остаток =
SUM ( 'Остат'[Остаток] )
Код
Сумма прихода =
CALCULATE (
    SUM ( 'Прих'[Приход] );
    FILTER (
        'Прих';
        'Прих'[Дата прихода] = MIN ( 'Остат'[Дата остатка] )
            && 'Прих'[Номер склада] = MAX ( 'Остат'[Номер склада] )
    )
)

Тогда вот так (с учетом правильного подсчета в итогах строк и столбцов):
Код
Расход =
SUMX (
    ADDCOLUMNS (
        SUMMARIZE ( 'Остат'; 'Остат'[Дата остатка]; 'Остат'[Номер склада] );
        "Value";
            CALCULATE ( [Сумма остаток]; PREVIOUSMONTH ( 'Остат'[Дата остатка] ) ) - [Сумма остаток] + [Сумма прихода]
    );
    [Value]
)

но, конечно, по-хорошему надо менять модель данных - сделать справочник складов, справочник дат (календарь), и использовать в сводной данные из них, тогда вообще всё просто было бы
F1 творит чудеса
Вопросы по основам работы со списками в PQ
 
Цитата
Kirill Gureev написал:
как объединить всё в одну последовательность. включая все уровни вложений, даже если их несколько.
Цитата
buchlotnik написал:
вроде как цель - объединить списки
если объединить как List.Combine, то можно и &. Если же нужно из {1, {2, 3}} и {{2, 3}, 3, 4} сделать {1,2,3,4}, то тогда  надо List.Distinct в конце натравливать (Combine + Distinct будет гораздо быстрее, чем использовать List.Union в рекурсии)
Изменено: Максим Зеленский - 16.11.2020 14:06:37
F1 творит чудеса
Вопросы по основам работы со списками в PQ
 
Цитата
Kirill Gureev написал:
Не очень понял роль s в этих выражениях?
почитайте тут. Хоть пример с СУММПРОИЗВ и не очень корректный, но суть показывает
F1 творит чудеса
Вопросы по основам работы со списками в PQ
 
Я Table.FromList не использую. Многословная и предназначена чуть для другого. Я так понимаю, как элемент преобразования списка строк с разделителями в таблицу (это же далеко не всегда CSV), поэтому когда строку резать не надо, то и подставляется ничего не делающий Splitter.SplitByNothing(). Вместо него вполне подходит любая функция типа (x)=>x

Более быстрые и дешевые варианты:
Код
Table.FromColumns({Source},{"OneColumn"})
Код
= #table({"OneColumn"}, List.Zip({Source}))

Если пофиг, как называется столбец, а главное получить таблицу, то вот так получим таблицу со столбцом Column1:
Код
Table.FromColumns({Source})
Код
= #table(1, List.Zip({Source}))

а вот так с названным и типизированным столбцом:
Код
Table.FromColumns({Source}, type table [OneColumn = number])
Код
= #table(type table [OneColumn = number], List.Zip({Source}))
F1 творит чудеса
Хранение больших баз данных
 
F1 творит чудеса
Диаграмма по сводной таблице.
 
Цитата
com_BBC написал:
Вопрос: есть ли способ запихнуть формулу с указанием диапазона (как диапазона, а не Таблицы или СвТаблицы) в диаграмму?
х.з. Наверное можно при помощи VBA создать именованный диапазон, которое будет перестраивать свою ссылку при обновлении сводной, но это еще больший костыль
Гораздо проще создать копию сводной на скрытом листе и построить диаграмму к ней (к копии). Потом настроить срезов там же на скрытом листе и подключить их к указанным сводным, чтобы одним срезом фильтровать и диаграмму, и таблицу. Смотрите пример тут
Сделал так же в файле.
F1 творит чудеса
Конфиденциальность в Power BI (имеют ли посторонние доступ)
 
Elefant_73, нет, не сможет. Это не про доступ к вашему отчету, а про параметры источника данных.
Уровни конфиденциальности относятся к источникам данных имеют значение при использовании (смешивании) разных источников данных. Например, источники уровня Private нельзя смешивать с другими (джойнить, ссылаться в запросах, имеющих другой источник и т.п.). Уровень Organizational позволяет смешивать данные с источниками такого же уровня конфиденциальности. Уровень Public не имеет ограничений по смешиваниям. Там есть еще нюансы. Вот целая серия статей об этом

Когда вы ставите "Игнорировать", это значит, что при разработке не будет проверяться уровень конфиденциальности источника, и разработка будет вестись быстрее. В Excel в принципе эта настройка работает постоянно, в Power BI - только в Power BI Desktop. В Power BI Service (после публикации) уровни конфиденциальности  придется назначить в параметрах источника (например, при привязке к шлюзу), там игнор не работает
F1 творит чудеса
Как сделать экспорт умной таблицы, созданной через PQ в XML из excel?, Как сделать экспорт умной таблицы, созданной через PQ в XML из excel?
 
Цитата
Дмитрий kh121 написал:
- почему на таблицу-результат обработки PQ эксель выдает такую ошибку при сопоставлении полей XML карте и не дает использовать сформированные таким образом умные таблицы для сопоставления с данными карты? Можно ли как-то это обойти?  
думаю, потому что такая таблица для Excel - внешний диапазон (если обращали внимание, при первой загрузке на лист из запроса PQ сначала видно "ExternalData1...". Скорее всего, не предусмотрено сопоставление полей с динамическим диапазоном, основанном на внешних данных.
По макросу не подскажу, но, скорее всего, именно там лежит решение
F1 творит чудеса
Power Query/ Перенос данных строк одной операции 1С в отдельные столбы
 
Kristina D, еще бы понять, почему у вас вдруг на некоторых операциях артикул пишется первым, до отдела, а на некоторых - после. Спишу на подготовку примера. Но если он (артикул) действительно там первый, то вопрос остается - должно быть хоть какое-то правило, чтобы понять, что это именно артикул
код для вызова из другого файла
Изменено: Максим Зеленский - 12.11.2020 19:04:11
F1 творит чудеса
Power Query. Таблица по запросу + значения вручную
 
Александр П, ок, сходил по нескольким ссылкам за вас. https://exceleratorbi.com.au/self-referencing-tables-power-query/
F1 творит чудеса
Power Query. Таблица по запросу + значения вручную
 
Добрый день.
Вот по поиску по словам self referencing tables много разных тем можно найти, где такие задачи разбирались.
F1 творит чудеса
Некорректные итоги по мере в сводной таблице excel
 
Цитата
neчepara написал:
Все, я разобралсяВсем спасибо!
пожалуйста. Мое решение помогло, или по-другому решили?
F1 творит чудеса
ABC анализ как срез в сводной таблице
 
Owlet, это уже, конечно, тема отдельного вопроса, но да, делаете 4-ю меру, в которой  просто сцепляете результаты: [ABCProfit] & [ABCTurn] & [XYZ]
F1 творит чудеса
ABC анализ как срез в сводной таблице
 
Owlet, в Excel создаете на листе таблицу с именами категорий и грузите ее в модель данных. Потом по столбцу этой таблицы делаете срез. Значения среза получаете при помощи вот такой формулы:
ALLSELECTED('Таблица для среза'[Столбец для среза])
это будет табличка из одного столбца с выбранными на срезе значениями. Эту формулу можно использовать в других формулах для фильтрации (и только там).
Ну вообще тема очень обширная, вы можете почитать тут https://www.daxpatterns.com/abc-classification/ конечно, но в вашем случае надо плясать от конкретных задач и структуры данных
F1 творит чудеса
DAX. % Доля товара в Адресе
 
Простите, понятнее не стало. Простой пример в виде файла помог бы
F1 творит чудеса
DAX. % Доля товара в Адресе
 
сорян, на словах
Цитата
Дмитрий Марков написал:
Оцениваемая категория – через меру, одна категория на вход в визуализацию, определение доли товара в Адресе
я сломался. Как это связано с приведенной формулой? Вам нужна мера или столбец?
Цитата
Дмитрий Марков написал:
возможно ли такое вообще ... (два уровня вложенности)
да, возможно. И три бывает.
F1 творит чудеса
Не загружает новые столбцы при обновлении данных импорта из CSV
 
PooHkrd, ну то есть все же определяет по первой строке в соответствии с заданным разделителем. Значит, я не ошибся :)
Поэтому если первая строка содержит заголовки, то можно опускать параметр Columns, но надо потом следить за всеми остальными ссылками на имена столбцов (обычно далее на типизации начинает "ломаться")
F1 творит чудеса
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 155 След.
Наверх