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

Страницы: 1
PowerPivot не распознает синтаксис функции Switch
 
Да, все уже перепробовал.
PowerPivot не распознает синтаксис функции Switch
 
Добрый день.


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

У меня есть вот такая формула: NameOfSelectableMeasure:=SWITCH ( [MeasureSelector], 1, [Sales Value, mln UAH], 2, [Sales Volume, SU], 3, [WTD],4,[Price per diaper],5,[Value Share],6,[Volume Share] )

Любая попытка внести изменение или просто нажать клавишу Enter в строке формул возвращает ошибку:

The expression is not valid or appears to be incomplete. Please review and correct the expression.

Пошаговый анализ синтаксиса показывает, что PowerPivot не распознает значения (Value). Т.е. первую единицу в формуле он не рассматривает как значение и только значение после следующей запятой для него является значением. Если попробовать изменить значение на текстовый формат, например, "1", начинает воспринимать как значение.

Что бы это могло быть?  
DAX формула аналог vlookup
 
Все гениальное просто )) Думал знаний не хватает, а оказывается глаз замылен. Спасибо!
DAX формула аналог vlookup
 
PooHkrd, спасибо! Так можно сделать, но страдает корректность расчетов цены за подгузник в своднике, т.к. не учитывается проданный объем по той или иной цене.

Я бы хотел добавить расчетное поле в сводную таблицу (Powerpivot => Calculated Fields => New Calculated Field), которое бы считало в своднике цену за подгузник как Sum(SalesValue)/Sum(SalesItem)/Sum(pieces per pack)
DAX формула аналог vlookup
 
Нет, Sales Item - это упаковка. В упаковке может быть различное количество штук(подгузников), которое необходимо подтянуть из таблицы SKU.
DAX формула аналог vlookup
 
Добрый вечер, уважаемые форумчане!

Недавно начал пробовать работать PowerPivot и что-то очень тяжело даются мне DAX формулы. Помогите, пожалуйста, разобраться.

Имеем 2 таблицы, связанные по полю barcode:
1. Sales Data - продажи детских подгузников
2. SKU - перечень артикулов с характеристиками продукта

Задача: в своднике добавить расчетное поле, рассчитывающее цену за 1 подгузник = расчетное поле в своднике Price per Pack / pieces per pack из таблицы SKU

Во вложении пример. Буду признателен за помощь.  
Счет с измением диапазона в зависимости от критерия
 
vikttur, работает! Спасибо большое!
Счет с измением диапазона в зависимости от критерия
 
физический смысл задачи:

есть портфель продуктов (SKU 1, 2, ..., n). Есть каналы продаж (channels). Есть клиенты (customers), которые могут относиться к тому или иному каналу.
Есть стандарт представленности портфеля (1 массив), где единицами отмечены SKU которые должны быть представлены в каждом из каналов.
Есть данные по представленности портфеля у клиентов (2 массив) .

Задача: посчитать какое количество SKU из стандарта канала (массив 1) представлено у конкретного клиента.
Во вложении немного расширенный пример того, как эту задачу решаю я решением, от которого я не в восторге.  
Счет с измением диапазона в зависимости от критерия
 
Кнопка цитирования не для ответа [МОДЕРАТОР]

Спасибо большое за решения, но пока не считает так, как задумывалось.

Показатель должен считаться по каждому кастомеру, а не по каждому каналу. Т.е., если у меня 2 кастомера в канале 1, то по каждому из них считается показатель и он необязательно будет одинаковым. Т.е. при расчете показателя для кастомера 1 мы берем во внимание только его данные, а не весь массив 2, аналогично для остальных кастомеров.

Если остаются вопросы - буду рад ответить.
Счет с измением диапазона в зависимости от критерия
 
Цитата
Юрий М написал:
george235 , Вам Z намекает на то, о чём Виктор Вас сразу предупредил:
Цитата vikttur  написал: Формула массива

Вводил как формулу массива, не получилось :(
Счет с измением диапазона в зависимости от критерия
 
Юрий М, спасибо. Похоже, что ошибка не в моем переводе.  
Счет с измением диапазона в зависимости от критерия
 
Цитата
vikttur написал: Кастомеры - измеритель каст?
ну если по буквам читать, то они кустомеры :)
Счет с измением диапазона в зависимости от критерия
 
vikttur, хм, что-то не так делаю, не пропускает эксель эту формулу. Возможно, где-то сложности с переводом, т.к. эксель у меня английский.

Вы не могли бы файл приаттачить?
Счет с измением диапазона в зависимости от критерия
 
vikttur,Спасибо, интересное решение. Однако, в результате данные по каналу считаются только по одному кастомеру, а это не совсем то, что нужно.

К одному каналу могут относиться несколько кастомеров. Другими словами, необходимо брать данные каждого кастомера и соотносить канал кастомера с соответствующим каналом в массиве 1. Т.е. результат расчета по разным кастомерам даже в одном канале будет отличаться.

Немного запутанно, возможно, но если остались вопросы - буду рад ответить.
Счет с измением диапазона в зависимости от критерия
 
vikttur, да. Нужно, каким-то образом сравнивать наименования полей и считать по полям с одинаковым значением.
Счет с измением диапазона в зависимости от критерия
 
Владимир,спасибо, тоже работает, но не решает вопрос выбора правильного поля в 1-м массиве.

Чтобы было поянтнее, добавил во 2-й массив еще одно поле. Посмотрите, пожалуйста.
Счет с измением диапазона в зависимости от критерия
 
Добрый день!

Есть 2 массива данных с одинаковыми наименованиями полей, но разным их кол-вом. Необходимо рассчитать кол-во ячеек со значением больше 0 в поле 2-го массива и со значением больше 0 в поле с аналогичным названием 1-го массива.

Возможно, на примере во вложении будет понятно. Я решаю эту задачу вложенным If. Можно сделать созданием еще одной таблицы, где будут перемножаться значения и зачем считать значения из этой таблицы, но уверен, что должно быть более элегантное решение. Результат моего расчета в желтых ячейках.

К сожалению, ничего похожего не нашел, но очень интересно, можно ли решить эту задачу проще.
формула If(AND(... vba
 
Подскажите пжста, что может быть не так в этой формуле.

Код
quadrantRange.Value = "=IF(AND(" & startCell.Offset(0, -6).Address(False, False) & " = """")," & startCell.Offset(0, -3).Address(False, False) & " = """"),""hide"","""")"


при попытке запуска получаю вот такое сообщение.
Как добавить формулу IFERROR (vba)?
 
Цитата
Юрий М написал: Предложите новое название.
Юрий, полагаю, название "формула IFERROR vba" будет более полно отражать суть кейса.  
Как добавить формулу IFERROR (vba)?
 
Казанский, Спасибо большое! Работает!
Как добавить формулу IFERROR (vba)?
 
Уважаемые форумчане,

пытаюсь немного допилить чужой профессионально сделанный код в vba. Задача добавить ф-цию iferror, чтобы избежать ошибок при пересчете. При попытке добавить ф-цию iferror эксель выдает ошибку 1004. Наверное что-то делаю не так.

Ниже исходный код:
Код
' Use a template version of the formula and replace the parameters with the proper values
    ' Using a template version because the same formula is used in 3 different columns
    ' Only the Column Id is different in each one
    Dim quadrantFormula     As String
    quadrantFormula = "=INDEX(Analysis!$$$COLUMNID$$$7:$$$COLUMNID$$$$LASTROW$$,SMALL(IF((Analysis!$F$7:$F$$$LASTROWWITHOFFSET$$=""$$QUADRANTCODE$$""),ROW($1:$$$LASTROW$$)),ROW()-$$STARTROWOFFSET$$))"

    Dim formulaToUse        As String
    quadrantFormula = Replace(quadrantFormula, "$$LASTROWWITHOFFSET$$", lastRow + 6)
    quadrantFormula = Replace(quadrantFormula, "$$LASTROW$$", lastRow)
    quadrantFormula = Replace(quadrantFormula, "$$STARTROWOFFSET$$", startRow)
    quadrantFormula = Replace(quadrantFormula, "$$QUADRANTCODE$$", quadrantCode)

    ' This portion is used to set the Formulae of the Quadrant (starting at 1 row lower than the one above)

    ' Product Name
    formulaToUse = Replace(quadrantFormula, "$$COLUMNID$$", "B")
    Set quadrantRange = quadrantSheet.Range(quadrantSheet.Cells(startRow + 1, startCol), quadrantSheet.Cells(startRow + lastRow, startCol))
    quadrantRange.FormulaArray = formulaToUse

    ' ROS
    formulaToUse = Replace(quadrantFormula, "$$COLUMNID$$", "D")
    Set quadrantRange = quadrantSheet.Range(quadrantSheet.Cells(startRow + 1, startCol + 1), quadrantSheet.Cells(startRow + lastRow, startCol + 1))
    quadrantRange.FormulaArray = formulaToUse
    quadrantRange.NumberFormat = "0"

    ' WD
    formulaToUse = Replace(quadrantFormula, "$$COLUMNID$$", "E")
    Set quadrantRange = quadrantSheet.Range(quadrantSheet.Cells(startRow + 1, startCol + 2), quadrantSheet.Cells(startRow + lastRow, startCol + 2))
    quadrantRange.FormulaArray = formulaToUse
    quadrantRange.NumberFormat = "0"

я изменяю 2-ю строчку кода следующим образом:
   
Код
quadrantFormula = "=IFERROR(INDEX(Analysis!$$$COLUMNID$$$7:$$$COLUMNID$$$$LASTROW$$,SMALL(IF((Analysis!$F$7:$F$$$LASTROWWITHOFFSET$$=""$$QUADRANTCODE$$""),ROW($1:$$$LASTROW$$)),ROW()-$$STARTROWOFFSET$$));"")"


В ответ получаю ошибку (скриншот во вложении). Что я делаю не так?
Изменено: george235 - 24.04.2015 22:50:15
Сообщение "Нельзя изменять часть массива"
 
Спасибо!
Сообщение "Нельзя изменять часть массива"
 
Добрый вечер, уважаемые форумчане!

Нашел решение своего кейса (http://www.planetaexcel.ru/techniques/2/81/), но у меня оно почему-то не хочет работать.
К сожалению, не могу загрузить сюда файл, т.к. он слишком большой. Попробую описать иначе.

Во вложении скриншот с формулой. Саму формулу эксель берет в фигурные скобки и при попытке добавления ф-ции ЕСЛИОШИБКА выдает сообщение "Нельзя изменять часть массива"

Это как-то можно вылечить?
макрос добаляющий строку в таблицу
 
Михаил Лебедев, спасибо большое!
Попробовал разобраться с кодом, на мой взгляд, очень элегантное решение. Я подобного в сети не встречал.

KuklP, спасибо большое! Да, вторая таблица как-то непонятно себя ведет.  
макрос добаляющий строку в таблицу
 
Таблицы отформатированы как "умные" таблицы. Проблемы с форматированием нет. Проблема с добавлением последней строки в таблицы.
макрос добаляющий строку в таблицу
 
Да, пожалуйста.
Во вложении пример с таблицами. Необходимо чтобы при нажатии кнопки в правом верхнем углу шапки добавлялось по одному ряду (последней строкой в таблице) в каждую из 3 таблиц под шапкой.  
макрос добаляющий строку в таблицу
 
Уважаемые форумчане, знаю, что вопрос обсуждался и есть в архивах. Но у меня не получилось до конца разобраться, поэтому решусь поднять эту тему.
У меня есть 3 таблицы с формулами. Мне необходимо сделать так, чтобы при нажатии кнопки добавлялась строка в каждую из них с сохранением формата и формул предыдущих строк каждой из таблиц.
Нашел в архиве вот это решение:  Range("A10:J10").Offset(1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Вроде работает, но начиная со второй строки подставляет строки выше последней.
Насколько я понимаю, необходимо задать переменную которой нужно присвоить в цикле номер последней строки в таблице и которую нужно добавить в диапазон вместо ("A10:J10"). Понимаю, вижу похожие решения, но ничего не получается сделать.

Буду признателен за подсказку.
средненедельный объем продаж за выбранный диапазон дат
 
Мотя, спасибо! Тоже отлично работает.

С макросами пока дело не имел. Посмотрел код, буду разбираться как работает. Захватывающая штука этот эксель :)
средненедельный объем продаж за выбранный диапазон дат
 
Алишер, спасибо огромное!
Пошел разбираться как Вы это сделали :)
средненедельный объем продаж за выбранный диапазон дат
 
Доброе утро, уважаемые форумчане!
Несколько дней читаю форум, много полезного научился делать, но задачу свою так и не решил.

Исходные данные:
Имеется несколько артикулов товаров (SKU1, SKU2 и т.д.), по каждому артикулу есть продажи за каждую из 52 недель года.
Задача: найти средненедельные продажи за выбранный диапазон дат (недель). Например, пользователь выбирает диапазон 2 неделя и 4 неделя и формула считает средненедельные продажи за этот период.

Научился возвращать с помощью ф-ций индекс и поискпоз данные за одну любую неделю, но с диапазоном не разобрался. Пытался совместить с ф-цией срзначеслимн, но безуспешно.

Пример файла во вложении.
Страницы: 1
Наверх