Версия PowerQuery: вы можете создать настраиваемый столбец следующим образом:
IsStandard = [End Date] = Date.EndOfMonth([End Date]) and [Start Date] = Date.AddDays(Date.AddMonths(Date.EndOfMonth([Start Date]),-1),1)
Эта версия возвращает значение ИСТИНА, если дата начала - это начало месяца, а дата окончания - это конец месяца. В соответствии с вашим вариантом использования вы можете инвертировать logi c или разбить его на столбец, чтобы отметить начало месяца / не начало месяца, а другой - конец месяца / не конец месяца.
Причина странного logi c в начале месяца в том, что PowerQuery предоставляет функцию Date.EndOfMonth, но не Date.StartOfMonth, поэтому вам нужно взять конец месяца, вычесть месяц, а затем добавить день, чтобы добраться до начало месяца.
Надеюсь, это поможет :).
Edit RE: always false ... Это еще одна причуда языка и не интуитивно понятная, но ключ в том, что преобразование типа через Date.FromText () возвращает дату, допускающую значение NULL, которая отличается от строгого типа данных Date (это можно подтвердить, добавив столбец на основе формулы Date.FromText ([End Date]) и проверив тип данных неявно назначается новому столбцу, который не является датой.
Вероятно, самым простым вариантом было бы изменить тип столбцов [Дата начала] и [Дата окончания] на Дата до оценки для «стандартного» и «нерегулярного» и удалите вызовы Date.FromText из нового столбца. В любом случае это может сделать поля более согласованными, но вы можете столкнуться с проблемой, если какое-либо из необработанных значений на самом деле является нулевым или пустым. Если какие-либо значения являются пустыми или пустыми, вы выполняете проверку на нулевое значение, чтобы сократить преобразование даты и проверить начало / конец месяца. Если проверка на null не удалась, у вас будет возможность пометить запись как отличную от «Стандартной» и «Нерегулярной», если это важно для вашего варианта использования.