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

Страницы: 1
Формула для DAX мера для сводной таблицы, Формула неверно считает DAX меру при подсчете итогов в сводной таблице
 
Уважаемые форумчане,

Посоветуйте, пожалуйста, как правильно написать DAX формулу. Формула DAX меры при детальном развороте сводной таблицы считает правильно данные по строкам (доля_оплат), но при сворачивании итоговые строки (по товарам) мера считает неверно. Исходный набор данных приведен в прикрепленном файле.

Формула меры, которую необходимо исправить:    SUMX( DISTINCT( Sales[Товар №]); MAX(Sales[Доля платежей] ) )

В прикрепленном файле пример предоставлен. Также прикреплен скрин для визуальной оценки проблемы.

Спасибо за понимание, если что-то не так написал.
Изменено: Анатолий К - 14.02.2024 10:57:02
Расчет DAX меры по двум условиям из другой таблицы при условии связи "многие ко многим"., По дате и артикулу таблицы реализации необходимо рассчитать объем выпуска из другой таблицы выпуска с помощью расчетной меры DAX.
 
Добрый день, форумчане,

Требуется ваша помощь для расчета объема выпуска по месяцу и артикулу товара таблицы реализации из таблицы выпуска. Пример прикреплен. Сложность возникает в том, что между таблицами связь многие ко многим и использован составной ключ (связка месяц-артикул). Решения в интернете в основном в том, чтобы создать третью таблицу. Кроме этого, я это реализую в PowerPivot, в экселе, поэтому определить связь между таблицами многие ко многим нет такой функции. В таблице реализация есть затраты на производство по дням, а в таблице выпуска количество произведенного товара по дням. Дни не совпадают, и синхронности нет между двумя таблицами. Но месяц производства и месяц затрат совпадают. В примере приведена модель данных, есть попытка расчета меры, но она дает ошибку.
Код
ОбъемВыпуска:=CALCULATE(SUM('qProduced'[Количество]);  'qProduced'[Артикул] =  EARLIER('qSalesCost'[Артикул]); 'qProduced'[Дата выпуска]  = EARLIER('qSalesCost'[Дата реализации]))

В примере также показана результативная таблица, но с помощью функции sumifs().

Вопрос, есть ли возможность без создания третей таблицы написать меру по подобию экселевской функции sumifs() с условием связи таблиц "многие ко многим"?

Спасибо заранее.
Расчет по шаблону формулы в Excel с помощью PQ, Необходимо рассчитать значение в Excel, используя значение других показателей по шаблону формулы с помощью PQ
 
Добрый день, форумчане,

Необходима ваша помощь в решение задачи автоматизации расчетов на основании шаблонов формул. К сообщению прикреплен файл с примером. Есть решение данного вопроса в VBA, но требования изменились к использованию PQ, поэтому снова пришлось вернуться к этому вопросу. В примере указаны 5 показателей, из которых 2 показателя (показатели 4 и 5) получены расчетным путем на основании других показателей с использованием представленного шаблона формул. Шаблоны формул указаны по следующему правилу: наименование показателей заключены в квадратные скобки, другие знаки по правилам математики - вообщем в экселе, только вместо ячеек указан код показателя в квадратных скобках.

Спасибо за помощь.
Расчет по шаблону формулы в Excel с помощью VBA, Необходимо рассчитать значение в Excel, используя значение других показателей по шаблону формулы с помощью VBA
 
Добрый день, форумчане,

Необходима ваша помощь в решение задачи автоматизации расчетов на основании шаблонов формул. К сообщению прикреплен файл с примером. В примере указаны 5 показателей, из которых 2 показателя (показатели 4 и 5) получены расчетным путем на основании других показателей с использованием представленного шаблона формул. Шаблоны формул указаны по следующему правилу: наименование показателей заключены в квадратные скобки, другие знаки по правилам математики - вообщем в экселе, только вместо ячеек указан код показателя в квадратных скобках.

На простарах интернета не смог найти подходящий скрипт VBA, который просматривает шаблон формулы и на его основании, расчитывает значение искомого показателя.

Спасибо за помощь.
Изменено: А К - 02.04.2023 15:04:21
Манипуляция панелью управления в файле эксель с xml кодом, При нажатии кнопки на панели управления вызывается макрос с ошибкой
 
Добрый вечер, форумчане! Подскажите, пожалуйста, как исправить макрос, который генерирует ошибку. К вопросу приложен файл, в котором с помощью xml созданы три вкладки: "Панель №1", "Панель №2" и "Вход в программу". Во вкладке "Вход в программу" есть единственная кнопка - "Вход в программу", необходимо, чтобы при ее нажатии две другие вкладки ("Панель №1", "Панель №2") появлялись, в исходном состоянии эти вкладки скрыты. Вот код XML:

Код
<?xml version="1.0" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
   <ribbon startFromScratch="false">
      <tabs>
         <tab id="PanelFirst" label="ПАНЕЛЬ №1" visible ="false">
         </tab>
                  
         <tab id="PanelSecond" label="ПАНЕЛЬ №2" visible ="false">
         </tab>
         
         <tab id="EnterTab" label="ВХОД В ПРОГРАММУ">
            <group id="grEnterTab" label="ВХОД В ПРОГРАММУ">
                  <button id ="btnEnter" label="ВХОД В ПРОГРАММУ" onAction="CRMEnter"/>
            </group>
         </tab>
      </tabs>
   </ribbon>
</customUI> 

Но при нажатии кнопки макрос выдает ошибку: Obect variable or With block variable not set. Вот макрос:

Код
Option Explicit

Sub CRMEnter(ByRef control As IRibbonControl)
   Application.ThisWorkbook.CommandBars("PanelFirst").Visible = True
   Application.ThisWorkbook.CommandBars("PanelSecond").Visible = True
End Sub

Подскажите из-за чего появляется ошибка. Спасибо за помощь.

Универсальный календарь, вызываемый из любой формы управления
 
Добрый день, форумчане. Помогите, пожалуйста, с установкой календаря в форме вода. К сожалению, в моем корпоративном экселе отсутствуют встроенная форма календаря. Поэтому пришлось с интернета позаимствовать уже созданные календарь с помощью макроса. К одной из форм ввода приспособить данный календарь не возникло проблем, а к двум другим, где также требуется ввод даты не получается организовать возврат даты. Т.е. когда вызываешь календарь из первой формы и выбираешь дату, то дата возвращается в комбобокс формы, т.к.в модуле календаря (процедура Sub Set_Date()) прописан возврат даты только  в первую форму. Из двух других форм календарь вызывается, но дата не возвращается в соответствующий комбобокс открытой формы. Не могу найти способ, чтоб даты возвращались в нужный комбобокс. Файл пример прикреплен.

Спасибо за помощь.
По начальному элементу отобразить всю его иерархию., неизвестно количество уровней иерархии и количество элементов на каждом уровне
 
Добрый день, форумчане.

Не получается сделать оптимальны алгоритм для обработки иерархии элементов. Существует определенная иерархия элементов как показано на картинке, заранее не известно кол-во ее уровней, и кол-во элементов на каждом уровне неодинаково, т.е. ветви каждого элементов могут содержать как 1, так и 100 элементов. И при указании наменовании первого элемента этой иерархии необходимо отобразить все элементы относящиеся только к этому элементу согласно иерархии. В данный момент я просто сделал 5 циклов, которые выполняют эту задачу, но это сильно тормозит процесс, а в будущем неизвестно будет ли достаточно этих 5 циклов, возможно надо будет еще добавлять.
Скрытый текст

Спасибо заранее за помощь.
Форма ввода данных, спрятанная в надстройке, В надстройке скрыта форма ввода данных в виде обычного листа. Но при работе надстройки возникают непредвиденные собщения системы.
 
Доброго времени суток, опытные разработчики приложений!

Необходимы ваши советы и опыт разработки надстроек. Ситуации состоит в следующем, есть надстройка, в которой "спрятана" форма ввода в виде обычного листа excel. Смысл в том, чтобы при подключении надстройки, находящийся в ней макрос отображает форму ввода в обычном листе excel. Триггер для запуска макроса в надстройке будет кнопка в понели инструментов, которая появится в момент подключения надстройки - "Run Macro". Технически макрос выполняет копирование листа со всеми кнопками управления из надстройки в новый открытый файл, но как видно в коде надстройка преобразуется в файл, а затем снова - в надстройку. Как начинающий разработчик я опасаюсь определенной уязвимости кода, но из-за недостатка опыта пока не могу определить характер такой уязвимости. Уязвимость я имею ввиду, что код может не сработать у пользователя, или случайно пользователь запустить vba editor. Код приведен ниже:
Код
Private Sub AddinsActivate()
Dim sAddinName$
Dim ws As Worksheet

On Error Resume Next

Application.ScreenUpdating = False
ThisWorkbook.IsAddin = False
Application.DisplayAlerts = False

sAddinName = ThisWorkbook.Name

'преобразование надстройки в файл
Workbooks(sAddinName).Windows(1).Visible = False

'переборка листов в новом файле, если будут листы с похожим наименованием
For Each ws In ActiveWorkbook.Sheets
    If VBA.LCase(ws.Name) Like "*ффф*" Then ws.Delete
Next

Workbooks(sAddinName).Worksheets("ФФФ").Copy _
After:=ActiveWorkbook.Sheets(1)

ThisWorkbook.IsAddin = True
Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub

По теме два вопроса:
1) На сколько механизм реализации отображения формы ввода надежен, или есть возможность это реализовать лучшим способом. Сразу оговорюсь, форма ввода необходима в виде листа excel.
2) После закрытия нового файла, почему-то выходит сообщение о необходимости сохранения и надстройки. Как убрать это сообщение.

Файл-надстройка также в приложении.

Спасибо за помощь.
Ошибка ( Error '9') при создании массива с помощью VBA
 
Уважаемые форумчане,

Помогите, пожалуйста, устранить ошибку (Error '9') при создании массива с помощью макроса VBA. Есть таблица с данными по продуктам в разрезе по магазинам и районам. Необходимо создать двухмерный массив данных с помощью VBA, где колонками будут выступать магазины, а строками районы (см.прикрелпенный файл).

Вот существующий код:
Код
Sub PopulateMassiv()
Dim a, i, j, k As Integer
Dim strA, strB, strC As String
Dim arrA, arrB(), arrVar, c, b As Variant

arrA = Array("Юг Итого", "Восток Итого", "Запад Итого")
b = 0
c = 0
i = 0

For a = 0 To UBound(arrA)
    Do While Worksheets("Запасы").Cells(4 + b, 2).Value <> arrA(a)    
        If Worksheets("Запасы").Cells(4 + b, 2).Value = arrA(a) Then
            b = b + 3
        
            ElseIf Right(Worksheets("Запасы").Cells(4 + b, 2).Value, 5) = "Итого" Then
            b = b + 2
            
            Else 
        End If
        
        Do While Right(Worksheets("Запасы").Cells(4 + b, 2).Value, 5) <> "Итого"
            'strA = Worksheets("Çàïàñû").Cells(4 + b, 2).Value
            j = j + 1
            b = b + 1
        Loop
    
        ReDim Preserve arrB(a, 0 To 4)
        arrB(a, i) = j - 1
                        
        i = i + 1
        b = b + 1
        j = 0   
    Loop
        
    a = a + 1
Next a
End Sub

Нужен совет опытных гуру VBA. Спасибо заранее.
Изменено: А К - 22.08.2016 18:43:58
Макрос VBA по создания диаграммы (ошибка)
 
Уважаемые форумчане!
Помогите,пожалуйста, c макросом. При выполнении макроса появляется сообщение об ошибке:
Код
Sub ChartCreat()    
Dim RowNum, ValCount, i As Integer

RowNum = 7
ValCount = 1
Range("S21").Select
ActiveSheet.ChartObjects.Add(840, 350, 600, 250).Select
ActiveChart.ChartType = xlColumnStacked

ActiveChart.SeriesCollection(1).Values = Range("U" & RowNum & ":" & "U" & (RowNum + 1) & ",U" & (RowNum + 13))  'В ЭТОЙ СТРОКЕ ПОЯВЛЯЕТСЯ СООБЩЕНИЕ
ActiveChart.SeriesCollection(2).Values = Range("V" & RowNum & ":" & "V" & (RowNum + 1) & ",V" & (RowNum + 13))
ActiveChart.SeriesCollection(3).Values = Range("W" & RowNum & ":" & "W" & (RowNum + 1) & ",W" & (RowNum + 13))
ActiveChart.SeriesCollection(3).XValues = Range("S" & RowNum & ":" & "S" & (RowNum + 1) & ",S" & (RowNum + 13))

With ActiveChart.SeriesCollection(1).Points(2).Format
        .Fill.Visible = 0
        .Line.Visible = 0
        .Shadow.Visible = False
       
End With
End Sub

Файл с примером прикреплен.Спасибо заранее
Изменено: А К - 08.01.2015 02:54:19
Создание диаграммы с помощью VBA, В файле при помощи VBA сортируются данные и создаются 11 диаграмм. Проблема написанной программки - быстродействие
 
Уважаемые форумчане!
Помогите, пожалуйста, советом что необходимо сделать чтоб повысить быстродействие и отказоустойчивость написанного кода VBA, работающего только в 2013 Excel -  такие заданные условия. Файл так работает, что необходимо только вставить значения в незакрашенные области и запустить макрос с помощью кнопки "создать диаграммы". Сортировку и построение диаграмм макрос выполняет сам.

Есть одна проблема в коде, которую мне пока не удалось обойти, что если значение в незакрашенной области только одно, то диаграмма не создается в нужном виде. Поделитесь, опытные кодеры как можно обойти эту проблему с помощью использования массива, но не того типа, который сейчас используется в коде.

Спасибо заранее за помощь
Изменение местонахождения Data Label гистограммы с помощью VBA, Созданный макрос выдает ошибку при выполнении Run-time error '438'
 
Уважаемы, форумчане!
Подскажите, пожалуйста, почему при написании следующего макроса, возникает ошибка:
Код
Sub DataLabels()
    ActiveChart.SeriesCollection(1).ApplyDataLabels
    With ActiveChart.SeriesCollection(1).DataLabels
        With .Font
            .Name = "Times New Roman"
            .Size = 10
            .Bold = msoTrue
        End With
        .Position = xlLabelPositionAbove
        .NumberFormat = "#,##0.00_);[Red](#,##0.00)"
    End With
End Sub 
Основная цель макроса - установление положения Data Labels над столбцами гистограммы. Ошибка появляется при выполнении строки #9. Или возможно есть другой вариант исполнения макроса.

Заранее спасибо за советы.
Изменено: А К - 24.10.2014 23:38:38
Округление чисел до указанной кратности
 
ТОварищи,  
 
Помогите решить проблему округления. Мне необходимо округлить определенный перечень значений, но так округлить, чтоб конечный результат был кратен указанному мной значению. Например, я имею 15 566, это значение должно быть кратно 300 (по условиям задачи), самое близкое кратное значение должно быть 15600. Подскажите какими способами можно решить данную проблему! Спасибо заранее.
Создание макроса с нуля
 
Товарищи,  
 
Помогите, пожалуйста, создать макрос с нуля. Суть макроса - создание функции, которая будет считать согласно выставленным требованиям. Сразу скажу, что то, что должна делать эта функция можно добиться и обычными средствами Экселя, но дело в том, что есть требование к тому как она должна выглядеть,т.е. ее синтаксис четко прописан. Описание проблемы находится в прикрепленном файле.
Настройка сочетания клавиш при использовании горячих клавиш
 
Здравствуйте Уважаемые форумчане!!!  
 
Всех с наступившим Новым годом! Помогите, подскажите, пожалуйста, каким образом в Excel 2003 и 2007 можно настроить горячие клавиши. Если, например, я хочу, чтоб определенные функции (увеличение разрядности, изменить цвет заливки и т.д.) выполнялись при нажатии удобного для сочетания клавиш. Извиняюсь зараннее, если еще раньшее был данный вопрос :)
Страницы: 1
Наверх