Как я могу сгруппировать данные, сопоставив идентичные ячейки в одном столбце, а затем подсчитав экземпляры связанного столбца?

#business-objects #webi

#бизнес-объекты #webi

Вопрос:

вывод данных

Я довольно новичок в Webi, и у меня возникла проблема с созданием переменной. Я пытаюсь проверить, существует ли более 1 адреса электронной почты для каждого устаревшего номера учетной записи объекта и содержит ли 1 из имен контактов «Годовой отчет». Поэтому, когда я отмечаю для каждого объекта устаревший номер учетной записи без электронной почты, будут извлечены только те, у которых нет имени контакта, содержащего «Годовой отчет». В приведенном выше примере только желтые группы должны называться no email. Прямо сейчас все они загружаются в no email. Я попытался использовать if и match, поскольку это то, с чем я наиболее знаком. У кого-нибудь есть какие-либо предложения?

Ответ №1:

Есть несколько способов, которыми вы могли бы это сделать. Я собираюсь привести пример с использованием двух переменных, но вы могли бы легко объединить их в одну.

 Has No Email Var=If(Match(Upper([Contact EmailAddress]); "NOEMAIL*"); 1; 0)
Annual Report Contact Name Var=If(Match(Upper([Contact Name]); "ANNUAL REPORT*"); 1; 0)
  

Затем вы должны применить фильтр отчета с двумя компонентами…

 Has No Email Var = 1 
AND
Annual Report Contact Name Var = 0
  

Позвольте мне объяснить несколько вещей…

  • Назначение функции Upper заключается в том, что функция Match учитывает регистр. Если вы знаете, что ваш адрес электронной почты всегда указан в нижнем регистре, вы могли бы удалить эту функцию Upper и сопоставить ее с «noemail *».
  • Важно, что у меня есть только звездочка («*») в конце искомой строки. Это позволит найти совпадение только там, где соответствующее значение столбца начинается с этой строки. Если вы хотите, чтобы это было верно всякий раз, когда строка встречается где-либо в искомом столбце, вы должны ставить звездочки на обоих концах.
  • Вы также могли бы ввести ограничивающие критерии в свой фильтр запросов. Но вот где все может запутаться. В фильтре запросов вы можете выбрать оператор Matches pattern «Совпадения с шаблоном». Однако подстановочный знак отличается («%», а не «*»), и вы не заключаете текст поиска в двойные кавычки. Итак, у вас должно быть что-то вроде этого…

    Контактный адрес электронной почты соответствует шаблону noemail%

    И

    Имя контакта отличается от шаблона годового отчета%

    Я уверен, вы заметили, что я не преобразовал текст поиска в верхний регистр. На панели запросов Web Intelligence чувствителен к регистру в и, вероятно, будет учитывать чувствительность базы данных к регистру исходных данных. Все наши базы данных не чувствительны к регистру, поэтому, если ваша база данных чувствительна к регистру, вам, возможно, придется немного поиграть с этим. Или просто используйте подход создания переменных и фильтров отчета, как я изначально изложил.

  • Если вам нужен подстановочный знак для одного символа, а не для нескольких символов (для чего подойдут «*» и «%»), вам нужно использовать «?» в определении вашей переменной или «_» в вашем фильтре запросов.

Надеюсь, это поможет,

Ноэль

Комментарии:

1. Большое вам спасибо! Это действительно помогло мне!

2. Вот несколько других мест, которые являются хорошими источниками помощи BusinessObjects…

3. Для публикации вопросов требуется логин SAP… answers.sap.com/tags/907900296036854683333078008146613

4. Для этого входа в SAP не требуется … forumtopics.com/busobj /…