Я не могу найти один хороший способ решить эту проблему. Я постараюсь подвести итоги как можно лучше:

Я использую надстройку Hyperion Essbase Excel для навигации внутри кубов OLAP. Здесь я пытаюсь сопоставить определенные метки со значениями измерения. Внутри этого измерения находятся несколько уровней группировки данных, поэтому один дочерний узел может иметь несколько уровней родителей. Я заранее знаю, какими будут участники, но они могут меняться каждый месяц, и поиск пропавших членов может быть утомительным, поэтому мы используем родительские элементы и увеличиваем их членов. Однако внутри одного родителя может быть несколько разных меток. Я достиг части этого с помощью VLOOKUP(), и если текущая строка не найдена в моей таблице, тогда я смотрю на одну строку вниз и перетаскиваю эту формулу, это имеет следующий нежелательный эффект:

Я пронумеровал, что происходит вместе. Как вы можете видеть в моем примере, элемент "24566" также находится в родительском "FD120465". В результате все элементы, найденные перед ним в той же группе, сопоставляются с "Расходом B", но целевой результат заключается в том, что все дочерние элементы должны быть сопоставлены с "Расходом D", но "24566". Вот формула, которую я использовал в этом примере:

=IFERROR(VLOOKUP(C11,$C$3:$D$8,2,0), D12)

Есть несколько способов справиться с этим, которые я придумала, но ни один из них мне не нравится. Я мог бы сделать две разные формулы, одну, которая смотрит только на дочерние элементы, а другую, которая смотрит только на родительские элементы. Если дочерние элементы помещаются первыми, не имеет значения, что в группе будет размещена неправильная метка ("24566" будет помечена как "Расход D" в оранжевой части). Это также имеет тот недостаток, что требует больше работы (определяя регионы, где использовать формулу 1 и формулу 2, и либо выполняйте работу вручную, либо перебивайте ее с помощью VBA ...)

Другой способ - просто вынуть каждый дочерний элемент и поместить его в таблицу с соответствующим отображением. Проблема состоит в том, что родители должны иметь больше или меньше элементов каждый месяц, и отображение может измениться (хотя это не должно происходить так часто), поэтому управление каждым дочерним элементом станет утомительным. Образец, который я предоставил, очень мал по сравнению с тем, что у меня есть (15-20 детей на одного родителя).

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

Спасибо !

1 ответ1

0

Это работает, если вы хотите то, что я подозреваю, что вы хотите, и начинаете с того места, где я подозреваю вас. (Это не обязательно лучший способ достичь результата, который он дает на основе данных, но может, по крайней мере, помочь в разъяснении того, что требуется.)

  1. Добавьте вспомогательный столбец, чтобы у всех детей был родитель (при условии, что они есть):

    B11 = IF (ВЛЕВО (C11,2) = "FD", C11, B12) (копируется по мере необходимости)

  2. =IFERROR(VLOOKUP(C11,$C$3:$D$8,2,FALSE),VLOOKUP(B11,$C$3:$D$8,2,FALSE)) (в D11 копируется по мере необходимости).

Пример SU526563

Я предположил, что две нижние записи в таблице содержат опечатки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .