Могу ли я получить реляционные данные в сводную таблицу Excel - PullRequest
0 голосов
/ 12 октября 2009

У меня есть лист (например, вина), в котором перечислены все бутылки вина в моем погребе, когда я его купил, сколько я заплатил и т. Д.

Есть столбец, который описывает вино в разделенных запятыми метках, таких как "Fruity, White".

Я создал сводную таблицу из этих данных с описанием в качестве столбца фильтра. Однако я не могу отфильтровать его по «Белому». Я должен найти каждое описание, которое содержит «Белый», такой как «Сухой, Белый», «Белый, Четкий» и т. Д.

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

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

Ответы [ 4 ]

1 голос
/ 24 декабря 2009

Да, вы можете сделать это в Excel, и поля описания могут оставаться как «Сухой, Белый» и т. Д., Так как вам не нужно разделять запятые значения.

Допустим, источник таблицы содержит текстовый столбец для описания, числовой столбец для значения и числовой столбец для года покупки.

Ваш свод настроен со следующим

  • Поля: описание, стоимость и год покупки.

  • Метки столбцов: год покупки

  • Метки строк: Описание
  • сумма значений: сумма значений

На ярлыках строк есть выпадающий фильтр меток - щелкните по нему, и там должна быть опция, чтобы выбрать Фильтры меток. Выберите это, а затем выберите Содержит. Вы можете ввести «Белый», который выберет все ваши описания, которые содержат белый цвет, например. «Сухой, белый», «Белый, Хрустящий». Фильтр включает в себя? для обозначения одного символа и * для представления любой серии символов.

Существуют аналогичные фильтры меток для "начинается с" и "заканчивается", а также отрицания.

Я пробовал это в Excel 2007, и оно должно также работать в 2003 году. Я думаю, что в Excel 2003 вы могли бы даже объединить фильтры, например. содержит «White» и не содержит «Dry», но в 2007 году я не смог найти способ сделать это.

0 голосов
/ 12 октября 2009

= ЕСЛИ (ISERR (FIND ( "белый", ВЕРХНИЙ (B5))), 0,1)

создайте дополнительный столбец и добавьте формулу. Есть 2 хитрости к этому. Один из них заключается в поиске WHITE в столбце описания, используя верхний - чтобы превзойти тот факт, что в Excel find учитывается регистр. Во-вторых, он возвращает ошибку значения, если строка не существует, поэтому iserr позволит вам перехватить это и вернуть в этом примере 0, если это не так, или 1, если это так. Вы можете заменить белое и пустое на 1 и 0.

0 голосов
/ 12 октября 2009

вы можете написать скрипт, который просматривает данные и добавляет новые строки для каждого элемента, разделенного запятыми, в столбце описания. Это позволило бы более эффективно фильтровать сводную таблицу.

0 голосов
/ 12 октября 2009

Простите, если я утверждаю очевидное, но причина, по которой у вас возникают проблемы, заключается в том, что столбец описания не в 1NF, а интерфейс поворота Excel недостаточно гибок, чтобы разрешить поиск по шаблону.

Самый простой вариант - нормализовать CSV в ряд столбцов, каждый из которых представляет один атрибут - один столбец для цвета вина, один для сладости, один для страны происхождения и т. Д., - и применить фильтр к несколько столбцов. Однако, если (как следует из вашего комментария к вопросу) вино является метафорой для вашей реальной проблемы, вы не можете позволить себе роскошь пересмотреть дизайн исходных данных.

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

Третья возможность - это VBA, используемый в в этом вопросе , который выглядит так, как будто он будет настраивать пользовательскую фильтрацию видимых строк сводной таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...