У меня есть полное имя и адрес клиента в одной ячейке, например;
Mr Smith, 1 High Street, London NW12 1AB

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

Я пытаюсь определить и подсчитать количество клиентов на каждой улице и почтовый индекс. Например, сколько клиентов у нас в SE12, а также сколько клиентов у нас в NW12 1AB? Я думаю, моя проблема заключается в поиске в каждой ячейке трех разных битов информации.

Мне также нужно идентифицировать одну и ту же информацию в двух таблицах. Например, сколько мистеров Смитов у нас в двух таблицах. Сколько клиентов на Хай-стрит или один и тот же почтовый индекс появятся в обеих таблицах.

Я не одаренный в Excel, и я не буду обижаться, если вы сохраните язык очень простым.

2 ответа2

0

Как отмечает Math, у вас может быть больше гибкости, если вы преобразуете свои данные в отдельные столбцы. Этого легко достичь с помощью команды « Text to Columns на вкладке « Data », в которой для типа данных установлено значение « Delimited а в качестве разделителя - « Comma .

Тем не менее, совсем нетрудно получить количество клиентов по улицам или почтовым индексам и отфильтровать клиентов по конкретным улицам, почтовым индексам или фамилиям без преобразования данных в столбцы.

Предположим, у вас есть данные в диапазоне A2:A500 на листе 1 и в одном диапазоне на листе 2, и оба листа находятся в одной книге.

Чтобы подсчитать количество клиентов в почтовом индексе "NW12 1AB" в Sheet1, используйте формулу:

=COUNTIF(Sheet1!$A$2:$A$500, "*NW12 1AB*")

Чтобы подсчитать количество "кузнецов" в Sheet1 и Sheet2, используйте:

=COUNTIF(Sheet1!$A$2:$A$500,"*Smith*") + COUNTIF(Sheet2!$A$2:$A$500,"*Smith*")

Чтобы посчитать количество "Граймс" в почтовом индексе "NW12 1AB", используйте:

=COUNTIFS(Sheet1!$A$2:$A$500,"*Grimes*", Sheet1!$A$2:$A$500,"*NW12 1AB*")

Чтобы подсчитать количество клиентов в Sheet2, которые названы "Солтон" или живут на «Хай-стрит», используйте:

=COUNTIF(Sheet2!$A$2:$A$500,"*Salton*") + COUNTIF(Sheet2!$A$2:$A$500,"*High Street*") -
 COUNTIFS(Sheet2!$A$2:$A$500,"*Salton*", Sheet2!$A$2:$A$500,"*High Street*")

Чтобы отфильтровать Sheet1, чтобы получить Смитов, которые живут в почтовом индексе "NW12 1AB",

  • Выделите диапазон данных A2:A500 и выберите Sort & Filter -> Filter на вкладке Home ленты,

  • Выберите Text Filter -> Custom Filter из выпадающего списка в верхней части столбца.

  • Затем установите для полей ввода значение Contains "Smith" и Contains "NW12 1AB".

Вы можете установить два условия, используя этот метод.

Если вы хотите отфильтровать список и иметь более двух условий (или комбинацию условий «И» и «ИЛИ»), выделите диапазон данных и нажмите « Advanced в разделе « Sort & Filter » на вкладке данных.

Вам будет предложено указать диапазон списка и диапазон критериев.

Поскольку Advanced фильтр создает копию отфильтрованного списка, вам также будет предложено указать, куда вы хотите записать новый отфильтрованный список.

Вот пример диапазона критериев, который фильтрует список для всех Смитов, которые живут на «Хай-стрит»:

Обратите внимание, что использование «* Smith *» в качестве образца для фамилии Смит может быть не лучшим выбором: как заметил один комментатор, он будет соответствовать фамилии, такой как Смитсон (или Смит-Джонс), и уличному адресу, как Смитсоновский путь.

Лучшим примером будет «Смит, *, *, *». Даже это дало бы то, что можно было бы назвать ложноположительным для имени «Дональд Смит-младший». (Это имя также может вызвать проблемы при преобразовании текста в столбец с использованием запятой в качестве разделителя.)

Тот факт, что Excel распознает только две подстановочные знаки, "*" и "?«без семантики, доступной для регулярных выражений, означает, что результаты такого соответствия должны быть проверены в особых случаях.

0

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

  • B1 - =FIND(",", A1)
  • C1 - =TRIM(LEFT(A1, B1-1))
  • D1 - =FIND(",", A1, B1+1)
  • E1 - =TRIM(MID(A1, B1+1, D1-B1-1))
  • F1 - =TRIM(RIGHT(A1, LEN(A1)-D1))

Затем для предоставленных вами примеров данных вы получите следующие результаты:

  • B1 - 9
  • C1 - Mr Smith
  • D1 - 24
  • E1 - 1 High Street
  • F1 - London NW12 1AB

Функция TRIM() удаляет пробелы в начале и конце строки.  Без этой функции, если ваши исходные данные имеют пробелы после запятых, тогда E1 и F1 будут иметь пробелы в начале, что может повредить последующий анализ.  TRIM() также свернет несколько пробелов в один пробел; Например, если в ваших исходных данных указано « Mr   Smith , то B1 все равно будет « Mr Smith

Если некоторые значения A1 имеют меньше или больше двух запятых, это можно сделать с помощью более сложных решений.

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