surkenny, СпасибО! Учту в работе))
Деление вычисленного значения на связанное значение из другой таблицы DAX
Деление вычисленного значения на связанное значение из другой таблицы DAX
Деление вычисленного значения на связанное значение из другой таблицы DAX
Деление вычисленного значения на связанное значение из другой таблицы DAX
Деление вычисленного значения на связанное значение из другой таблицы DAX
|
12.09.2023 13:52:49
Vladimir Ch, нет, считает тоже не правильно(
surkenny,попробую разжевать на примере. Логику самой меры пока не буду доводить. Она нам в общем-то и не нужна. математическая формула: Мера = (процедура1 * значение из справочника процедур1 + ... + процедура(n) * значение из справочника процедур(n) ) / соответствующее значение из справочника по дате. Допустим берем апрель. 1)Нам нужно сначала перемножить значения таблицы фактов на значения таблицы справочника процедур (только за апрель) 2) делим получившееся значение на значение из таблицы дат. То есть для процедуры 4 за месяц январь должно получиться: (32*10 + 1*10) / 150 = 2,2 Вы правы, что, деля строки в разрезе процедур вот так: 32*10 / 150 + 1 * 10 / 150 = 2,2 Дает то же значение. Но я так понимаю Формула
Дают нам не тот результат так как деление происходит непонятным образом. в сводной мы видим значение 0,533333333 арифметикой я не смог его получить) Близко примерно так 32*10/(150+160+165+140) + 1*10 / (150+160+165+140) = 0,5365 Как будто почему то в расчет берутся даже не связанные значения по справочнику месяцев..
Изменено: - 12.09.2023 14:00:22
|
|||||
|
|
|
Деление вычисленного значения на связанное значение из другой таблицы DAX
|
12.09.2023 11:31:10
Vladimir Ch, К сожалению эта формула ничем не отличается от моей формулы в 3ем примере. Одну скобку впереди формулы я поставил ошибочно.
Произведение таким образом делится также построчно. А нужно чтобы поделилось каждое итоговое по месяцу один раз на значение из соответствующего месяца |
|
|
|
|
Деление вычисленного значения на связанное значение из другой таблицы DAX
|
12.09.2023 10:39:44
Всем привет!
Есть 3 таблицы. 1 - факт и два справочника. Справочники имеют соответствующие связи с таблицей фактов 1 ко многим. Необходимо провести расчет используя меру. Мера = (процедура1 * значение из справочника процедур1 ... + ... процедура(n) * значение из справочника процедур(n) ) / соответствующее значение из справочника по дате. Как сделать первое действие я разобрался. В файле подготовлена модель данных.
Далее нужно поделить получившееся значение на соответствующее значение из справочника дат Мера 2 у меня с ошибкой
формула
Скорее всего нужно использовать условия: Filter, If. Но у меня с ними пока туго в DAX. Возможно есть более красивое решение? Использовать вычисляемые столбцы не хочу, так как реальный массив довольно большой.
Изменено: - 12.09.2023 11:31:34
|
|||||||
|
|
|
Форматирование ячеек со спарклайнами
|
19.06.2023 14:45:21
webley, Тоочно! Как же все просто) Нужно от сводной просто оттолкнуться было) Спасибо! Уже хотел ChatGPT спрашивать=D
|
|
|
|
|
Форматирование ячеек со спарклайнами
|
19.06.2023 14:31:18
webley, Можете прикрепить рабочий файл?) У меня не работает. По идее и не должно. Спраклайн это не значение же, а просто визуальный элемент
|
|
|
|
|
Форматирование ячеек со спарклайнами
|
19.06.2023 11:33:12
Всем привет!
Есть такая задачка. Нужно, чтобы границы строились автоматически там, где есть спарклайны напротив сводной таблицы. Если строки сводной сворачиваются, то нужно, чтобы и границы исчезали. Условное форматирование по непустым ячейкам, конечно, не срабатывает. Можно как-то такое реализовать может быть в vba?)) |
|
|
|
|
Помощь по формуле DAX
|
15.06.2023 08:45:10
Юрий М, давайте "Формула DAX для получения корректного суммирования в сводной таблице"
|
|
|
|
|
Помощь по формуле DAX
Помощь по формуле DAX
|
10.06.2023 21:04:37
Юрий М, Добрый день. Пустые строки убрал, но как отредактировать название темы, не вижу(
|
|
|
|
|
Помощь по формуле DAX
|
09.06.2023 14:21:30
Всем привет!
Клепаю свою первую модель данных в power pivot. Проблема следующая Есть такая табличка фактов (процедур), значения по столбцу процедура повторяются, потому что есть скрытые доп поля по разным видам. процедуры.Png (прикреплен) Есть табличка справочника занимаемого времени на процедуру. Справочники.Png Обе таблички связаны через смежную табличку справочника процедур power pivot.png Строю сводную, у которой задача - посчитать, сколько всего времени потрачено на каждую процедуру. Калькулятор.png Для меры 1 написал такую формулу
Неверный подсчет.png То есть считает правильно соответствуя логике формулы. и умножает сумм по табличке справочника времени 4,85 * 131 333 = 636 965. А нужно, чтобы сумма была рана 34 925 по логике кол-во процедур 1 * время на 1 процедуру 1 + кол-во процедур 2 * время на процедуру 2... и тд. Думаю, такое можно написать в DAX, но за 2 часа пока не разобрался, нужно учить матчасть))
Изменено: - 10.06.2023 21:03:51
|
|||
|
|
|
Расчет чистого времени между датами со временем
Расчет чистого времени между датами со временем
|
29.12.2022 12:24:08
_Boroda_, Класс, спасибо! Скажите, а возможно будет вторым вариантом посчитать так же только рабочее время. Например, между 8.00 и 17.00? и чтобы десятичное число уже не отталкивалось от суток, а от рабочего дня в 9 часов?
|
|
|
|
|
Расчет чистого времени между датами со временем
|
29.12.2022 11:34:12
New, Нет, 34 часа или примерно 1,3 по десятичному, ответ должен быть в десятичном виде именно
Изменено: - 29.12.2022 11:37:17
|
|
|
|
|
Расчет чистого времени между датами со временем
|
29.12.2022 11:21:42
New, Прикрепляю, там все просто. почти все варианты пересечения с выходными днями отражаются в 4 вариантах. Возможно что-то упустил
|
|
|
|
|
Расчет чистого времени между датами со временем
|
29.12.2022 10:46:36
Привет, форумчане! Всех с наступающим!
Задача встала такая. Рассчитать время между двумя датами без учета выходных дней (СБ, ВС). Не чистое раб время, а именно просто время, десятичными числами. Например, начальная дата 03.12.2022 10:00:00 конечная дата 06.12.2022 10:00:00. При вычитании двух дат получим 3,00. Десятичное число будет иметь дробную часть в зависимости от разницы времени вплоть до секунд. Соответственно, использовать функцию ЧИСТРАБДНИ.МЕЖД не получится. По крайней мере в ее простом применении. Самое близкое, что я пока сам смог написать выглядит так, добавлены 2 столбца с днями неделями для упрощения: =ЕСЛИ(И([@[День недели начальной даты ]]=5;[@[День недели конечной даты]]<>5);[@[конечная дата]-[@[начальная дата]]-2;ЕСЛИ(И([@[День недели начальной даты ]]=6;[@[День недели конечной даты]]<>6);[@[начальная дата ]]-[@[конечная дата]]-1;[@[конечная дата]]-[@[начальная дата]])) Попытался вычесть не учитываемое время выходных из срока. Но формула с сильной неточностью. 1) не учитывается именно время начальной и конечных дат. Начальная дата может быть суббота 00:00, конечная понедельник 10.00, должно учесться только 10 ч времени, т.е. примерно 0.4 по десятичному числу. Моя формула примерно вернет 58ч - 24ч = 34ч, т.е примерно 1,5 по десятичному. К тому же совсем не учитывается если начальная дата воскресенье. Да и вполне может быть так, что начальная дата четверг или в принципе любой день нед кроме выходного, но чаще всего перевод на выходные идет именно если начальная дата пятница 2) Для задачи не особо принципиально, обычно конечная и начальная даты не превышают неделю по разности, но в редких случаях бывает, что промежуток может заходить, например на 4 выходных дня.
Изменено: - 29.12.2022 10:50:57
|
|
|
|
|
Логика внутри определенного диапазона ячеек, удовлетворяющих требованию
|
28.12.2022 15:57:20
Andr85, Спасибо больше за такую скрупулёзную помощь! Вы не точно пока понимаете логику полученных сканов. На листе тайн заполнил все статусы правильно. Суть в перетекании статуса форм из одной в другую. Она такова: Сначала печатается форма (форма напечатана) => потом принимается скан подписанного документа (скан получен) => потом принимается оригинал (оригинал получен) => и последняя точка - отправляется и размещается в архиве. Получается, что если по печатной форме стоит оригинал получен или отправлено в архив, то и скан этой формы уже тоже был получен. Это должно решить огрехи в логике.
|
|
|
|
|
Логика внутри определенного диапазона ячеек, удовлетворяющих требованию
|
22.12.2022 10:02:30
Andr85, Спасибо! Понял, как работает массив сравнений.
По логике состояний все как описано в вставке текстом. Все, что "оригинал получен" и отправлено в любой архив или размещено там - Оригинал получен. Состояние "оригиналы не все" возможно только если хоть один оригинал получен (или отправлен какой-либо архив), но при этом все сканы получены. Если при этом будет хоть одна печатная форма "Форма напечатана", то состояние будет "Состояние неизвестно" |
|
|
|
|
Логика внутри определенного диапазона ячеек, удовлетворяющих требованию
|
20.12.2022 09:47:40
Andr85, Спасибо!
Ознакомился с логикой. Не получается только полностью воспринять работу истинности условий, не хватает базы) При копировании формулы вниз будет уже другой массив. Формируется массив первого множителя (соотв. позиции названия след. документа). Главное, что понимаю, что таким образом проходят вычисления в СУММПРОИЗВ по нужным ячейкам. Но выделенный фрагмент непонятен совершенно. В файле добавил "приемы", печатных форм по ним больше, но задача состоит в проверке основных печатных форм (ПФ). В целом неважно каких именно, но их тоже 3 как и по переводам. Условия определения состояния по всему документу те же. Но решил добавить все условия непосредственно из задачи. В ней немного больше состояний ПФ. Добавил в столбец "Форма напечатана". Добавляется 2 состояния общего документа: Скан получен и оригиналы не все. Логика определения описана в текстовой вставке в файле. Для себя пока решил задачу построением сводной по документам со столбцами и значениями по каждой ПФ. Получается напротив каждого документа количества по каждому состоянию. И справа простая логика: =ЕСЛИ([@[Форма напечатана]]>0;"Состояние неизвестно";ЕСЛИ([@[Скан получен]]=3;"Скан получен";ЕСЛИ([@[Оригинал получен]]=3;"Оригинал получен";ЕСЛИ(И([@[Оригинал получен]]>0;[@[Скан получен]]>0;[@[Форма напечатана]]<1);"Оригиналы не все";"Состояние неизвестно")))) Потом каждое итоговое состояние ВПРится в таблицу с выгрузкой. Эффект в целом тот же. Но очень интересно получить более функциональное решение именно сразу в формуле по таблице. Получится ли с использованием СУММПРОИЗВ определять точно с новыми состояниями: Оригиналы не все; Скан получен?) |
|
|
|
|
Логика внутри определенного диапазона ячеек, удовлетворяющих требованию
|
19.12.2022 08:53:38
|
|||
|
|
|
Логика внутри определенного диапазона ячеек, удовлетворяющих требованию
|
19.12.2022 08:17:44
Andr85,
Увольнения: Увольнение ТЦ284У-9 от 11.10.2022; Увольнение Д0276У-1 от 03.10.2022; Увольнение ДФ278У-12 от 05.10.2022 При этом увольнение содержит до двух печатных форм, а прием до 13.. |
|||||||
|
|
|
Логика внутри определенного диапазона ячеек, удовлетворяющих требованию
|
18.12.2022 13:38:27
Andr85, Спасибо! Беру подправленную формулу Игоря Гончаренко за основу. Ваш вариант с Суммпроизв нельзя или сложно модернизировать под большее количество критериев. В общей выгрузке есть также пара дополнительных состояний документов. Коротко: "Отправлено в архив" = "оригинал получен" и "форма напечатана" = "состояние неизвестно". Думаю, данные 2 состояния несложно будет засунуть в критерии формулы. Но на этом еще не все. Есть не только документ "Кадровый перевод", также есть Приемы и увольнения. Вот здесь у меня не получается понять, как в формуле идет определение диапазона для сверки?
Наверное, не до конца правильно читаю код.. Если количество ячеек в диапазоне А:А по критериям: любые символы и символы в ячейке от 18 символа в количестве 8 и любые символы? (вот здесь неясно) = количество по нескольким критериям в столбце А:А по критериям: любые символы и от 18 символа в количестве 8 символов и любые символы?(снова не понимаю)) и также в диапазоне С:C критерий = "Оригинал получен", то "Оригинал получен" и неизвестно при несоблюдении перечисленных условий... Не могли бы Вы . пожалуйста, немного разжевать? И возможно ли в данную логику добавить Приемы и увольнения? Ведь сверка идет почему то начиная с определенноо по счету символа, где другие доки кадровых переводов имеют другие номера. |
|
|
|
|
Логика внутри определенного диапазона ячеек, удовлетворяющих требованию
|
16.12.2022 15:06:51
Привет, форумчане!
Возникла непростая задачка. Прикладываю файлик с вырезкой из реальной выгрузки 1С ЗУП Суть в том, что есть строки документов. Например, Кадровый перевод АЧ274П-1 от 01.10.2022. Данная строка встречается 3 раза, так документ содержит 3 печатных формы. Далее по каждой печатной форме стоит ее состояние, например, оригинал получен. Таких состояний несколько. И теперь сама задача - необходимо вывести в отдельном столбце состояние именно самого документа, исходя из состояний его печатных форм. Не буду включать сюда все варианты логик, предположим достаточно: Если по всем печатным формам стоит "оригинал получен", то состояние равно "оригинал получен". Если хотя бы по одной печатной форме стоит иной статус, то состояние равно "состояние не известно". У меня при решении стоит 2 проблемы, во первых, как формулой прописать такую логику по диапазону ячеек, во вторых, как вписать логику внутрь того диапазона ячеек, который нужен, то есть который соответствует конкретному документу. Не уверен, что возможно обойтись только формулой. Если можно, то будет отлично. Если нет, то другие пути решения приветствуются. Нужно только по каждому документу получить итоговый статус |
|
|
|
|