Могу ли я получить реляционные данные в сводную таблицу Excel?

StackOverflow https://stackoverflow.com/questions/1552152

Вопрос

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

Есть столбец, в котором вино описывается тегами, разделенными запятыми, например «Фруктовое, Белое».

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

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

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

Это было полезно?

Решение

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

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

Ваша опорная точка настроена следующим образом:

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

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

  • Заголовки строк:Описание
  • Сумма значений:Сумма значений

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

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

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

Другие советы

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

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

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

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

=ЕСЛИ(ISERR(НАЙТИ("БЕЛЫЙ",ВЕРХНИЙ(B5))),0,1)

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top