[Excel] CUBE* формулы

pavg

Может кто знаком не понаслышке с экселевскими формулами типа CUBEMEMBER & CUBEVALUE.
Возможно ли там замутить такую штуку, у самого пока теорией и практикой никак не получается вот енту штуку:
 
=CUBEMEMBER("cube";{"[blabla].[ItemID].&[4141235]"\"[blabla].[ColorID].[Темно-коричневый]"})

сидящую, например, в ячейке R1C1 и используемую в расчёте CUBEVALUE как один из [member_expressions]:
 
=CUBEVALUE("cube";R1C1;[first_delivery_date])

заменить на рассчитываемую для сидящих в соседних ячейках, R1C2 и R1C3, ItemID (4141235) и ColorID (Темно-коричневый что-то типа такого:
 
=CUBEMEMBER("cube";{"[blabla].[ItemID].&["&R1C2&"]"\"[blabla].[ColorID].["&R1C3&"]"})

?
или подскажите, как правильно кортежи указывать в формулах с обращениям к ячейкам, т.к. фигня типа
 
=CUBEMEMBER("cube";"[blabla].[ItemID].&[4141235]";"[blabla].[ColorID].[Темно-коричневый]")

100% не выдаёт ничего :(

Alena_08_11

В русском есть 3 формулы : КУБЗНАЧЕНИЕ КУБЭЛЕМЕНТ и КУБМНОЖЕСТВО . Последнее это как раз ответ на твой последний вопрос.
А вообще замути хитрый пивот в ёкселе, разнеси по столбам и строкам разного всего, добавь фильтров (в некоторых чтоб по несколько значений было).
И потом сделай "Работа со сводными таблицами -> Параметры -> Средства OLAP -> Преобразовать в формулы"
Далее ткнуть галку о преобразовании фильтров тоже.
Далее повтыкать в получившуюся картину минут 10 - вполне достаточно, чтобы понять как эта вся хрень работает.
update :
КУБМНОЖ точнее.

pavg

спасибо за комментарий, конечно, но ответов своим вопросам даже в таинственном =CUBESET я не нашёл, хотя вероятнее всего просто не допёр как его использовать по-человечески в своём случае, можешь привести какой-нибудь пример?
официальный источник я также не воспринял с пары попыток до готовности использовать, тугодум, видать =(
вот таким хитрым способом я и пошёл, после чего натолкнулся на первую формулу топика, которую нативно надо бы преобразовать в третью формулу топика, но такой финт не работает.
сработала следующая штука - изначальная формула:
 =CUBEMEMBER("cube";{"[blabla].[ItemID].&[4141235]"\"[blabla].[ColorID].[Темно-коричневый]"}) 

затем преобразование R1C2 и R1C3 ячеек до вида:

R1C3="[blabla].[ItemID].["&R1C2&"]"
R1C4="[blabla].[ColorID].["&R1C3&"]"

и в конечной формуле указываем уже массив R1C3:R1C4 как-то так:
 =CUBEVALUE("cube";R1C3:R1C4;[first_delivery_date]) 

такая фигня работает и показывает реальный результат, соответствующий как нужному ColorID, так и ItemID.

Alena_08_11

вот эта формула

=CUBEMEMBER("cube";{"[blabla].[ItemID].&[4141235]"\"[blabla].[ColorID].[Темно-коричневый]"})

Выглядит очень странно.
Должны выглядеть как

=CUBESET("cube";{"[blabla].[ItemID].&[4141235]","[blabla].[ColorID].[Темно-коричневый]"}; "Some cell text")

допустим сия формула в A1
и тогда формула

=CUBEVALUE("cube";A1)

должна работать.
По хорошему нада ещё добавить выражение для Measure (вдруг добавятся новые и Default Measure изменится)

Что такое [first_delivery_date] в этой формуле - я хз.
если у тебя есть потебность хитро вычислять адрес элемента куба - всегда можно сгененировать строку и превратить её в элемент с помощью ДВССЫЛ
в формуле CUBEVALUE можно вставлять строки с адресами элементов куба через ";". Либо с тем же успехом выносить в элементы CUBESET и CUBEMEMBER и подставлять уже их (или ссылки на них)
в общем записи

=CUBEVALUE("CubeLink"; "[Dim1].[Dim11].&[2]"; "[Dim2].[Dim23].&[3]";"[Dim3].[Dim35].&[4]"; "[Measures].[BookValue]")

и

=CUBEVALUE("CubeLink";CUBEMEMBER("CubeLink";"[Dim1].[Dim11].&[2]");CUBESET("CubeLink";{"[Dim2].[Dim23].&[3]","[Dim3].[Dim35].&[4]"}; CUBEMEMBER("CubeLink";"[Measures].[BookValue]"

будут эквивалентны
и наверное, да, можно тупо строки типа "[Dim2].[Dim23].&[3]" размещать в ячейках, а в CUBEVALUE ссылатся на строки. При этом можно формировать строку адреса какими то формулами, и обертывать в ДВССЫЛ чтобы получить реальную ссылку.

pavg

[first_delivery_date] = CUBEMEMBER("blabla";"[Measure].[First Delivery Date]" сократил за ненадобностью.
первая формула через CUBEMEMBER вместо CUBESET была вытянута как раз при преобразовании сводной таблицы в формулы, в ней подразумевается, что этот цвет типа для этой номенклатуры и именно для неё, пересечение, получается.
формула CUBESET, или как она должна была выглядеть, ни в каком виде у меня не заработала =(
в итоге единственным пока работающим вариантом для меня явился описанный в предыдущем моём комментарии, все остальные заходы через CUBESET и компанию никак не желают претворяться в жизнь.
но всё равно спасибо за ответы.
Оставить комментарий
Имя или ник:
Комментарий: