← Все курсы · Курс Excel · Все руководства
Как очистить беспорядочные данные в Excel: ОБРЕЗАТЬ, ОЧИСТИТЬ и пространство, которое вы не видите
В конце этой страницы вы сможете найти невидимые символы, которые незаметно нарушают ваши итоговые значения, точно назвать каждый из них, удалить его с помощью функции, которая его фактически удаляет, а затем доказать, что столбец чист. Это около двадцати пяти минут, и каждый приведенный ниже результат был получен в Excel с намеренно грязной копией настоящей таблицы из шестнадцати строк.
Вот что нужно сделать прямо сейчас в текстовом столбце, от которого зависят ваши формулы. Помещать =LEN(A2) рядом с ним и заполните его. Затем найдите значения, длина которых на один больше символов, которые вы можете посчитать. Этот единственный столбец находит конечные пробелы, ведущие пробелы, неразрывные пробелы и встроенные разрывы строк примерно за десять секунд, прежде чем вы решите что-либо исправить.
Вкратце: ячейка, которая выглядит правильно, все равно может оказаться неправильной строкой, и каждая текстовая функция, которую вы собираетесь использовать, нацелена на определенный тип неправильности. Сначала измерьте, затем выберите функцию.
Две ячейки, читающие одно и то же слово и не равные, — это идея, на которой основано все остальное, поэтому она имеет представление.
- Чего это стоит: 865 человек отсутствуют в общем объеме по региону
- Найдите это, прежде чем исправлять: LEN и CODE.
- TRIM: что удаляет, а что сжимает
- Пробел TRIM не удалит
- ЧИСТЫЙ, и два слова, которые оно объединяет
- СПРАВЕДЛИВОЕ, ВЕРХНЕЕ и НИЖНЕЕ, и названия СОБСТВЕННЫЕ ошибаются.
- Числа, хранящиеся в виде текста
- Очистите новый столбец, а затем докажите, что это работает.
- Полное до и после
- Краевые корпуса, выдержавшие очистку
- Почему это работает
- Использование этого в вашем собственном проекте
- Все на одном экране
1. Чего это стоит: 865 человек отсутствуют в общем объеме по региону
Пять из шестнадцати орденов относятся к Северному региону, и их общее количество составляет 2495. Две из этих пяти строк прибыли с проблемой, которую вы не видите: одна имеет завершающий пробел после «Север», а другая заканчивается неразрывным пробелом, символом, который веб-страница или документ Слово оставляет после себя, когда через него вставляется текст.
Ничто на экране не отличается. Вот что написано в трудовой книжке.
North revenue, clean data 2495
North revenue, same data with two bad cells 1630
Rows that are exactly "North" out of five 3
Distinct regions, clean 4
Distinct regions, messy 6
Всего осталось 865, то есть 425 плюс 440, два затронутых заказа. И количество регионов увеличилось с четырех до шести, потому что «Север» и «Север» плюс неразрывный пробел — это каждый отдельный регион с точки зрения Эксель.
Скажите вслух, какой из этих двух симптомов вы заметите в реальной рабочей тетради первым. Недостающее число 865 невидимо; ничто не говорит о том, что общая сумма должна была быть больше. Количество регионов — это показатель, и именно по этой причине первое, что нужно сделать с любым новым текстовым столбцом, — это подсчитать его отдельные значения и спросить, является ли это число тем числом, которое вы ожидали.
2. Найдите проблему, прежде чем исправлять: LEN и CODE.
Две формулы делают весь диагноз, и ни одна из них ничего не меняет.
LEN подсчитывает символы и превращает невидимую проблему в число.
=LEN(D8) 6 you can see five letters
=LEN(D12) 6 you can see five letters
Оба слишком длинные. Этого достаточно, чтобы понять, что что-то не так, и недостаточно, чтобы знать, что делать, поскольку у двух ячеек разные проблемы и нужны разные решения. CODE дает идентификацию персонажа в виде числа, поэтому, указав его на последний символ, можно назвать виновника.
=CODE(RIGHT(D8,1)) 32 an ordinary space
=CODE(RIGHT(D12,1)) 160 a non-breaking space
32 — пробел. 160 — персонаж, созданный на веб-странице и в Слово, когда два слова находятся в одной строке. Они выглядят одинаково в каждом шрифте. Только один из них удаляется функцией, к которой все обращаются первыми.
Сохраняйте эти две формулы скорее как привычку, а не как спасение. =LEN(A2) заполнил столбец и =CODE(RIGHT(A2,1)) в одной слишком длинной строке появляется тридцатисекундный диагноз, который превращает «поиск не работает» в «в строке 12 есть символ 160».
3. TRIM: что удаляет, а что сжимает
Перед объяснением: TRIM везде описывается как удаление пробелов. Скажи, что, по твоему мнению, это делает, чтобы "Dana Reyes", с тремя пробелами посередине.
=TRIM("Dana Reyes") Dana Reyes
=LEN(TRIM("Dana Reyes")) 10
Он выполняет две работы, а не одну. Он полностью удаляет пробелы в начале и конце и сжимает любую серию пробелов. внутри текст до одного пробела. Десять символов: девять букв и один пробел. Это второе поведение обычно является тем, чего вы хотите, а иногда и нет, поэтому его стоит знать, а не открывать.
В ячейке с конечным пространством все работает точно так, как заявлено.
=LEN(D8) 6
=LEN(TRIM(D8)) 5
Один символ исчез, и значение теперь соответствует всем остальным «северам» в столбце. Если ваша проблема в обычных пространствах, то это все решение, и именно поэтому TRIM вокруг ключа поиска — это стандартное первое, что нужно попробовать, когда поиск возвращает #N/A по значению, которое вы можете увидеть.
4. Пробел TRIM не уберет
Перед объяснением: другая плохая ячейка заканчивается на символ 160. Предскажите, что TRIM делает это.
=LEN(D12) 6
=LEN(TRIM(D12)) 6
=LEN(CLEAN(D12)) 6
Ничего. Ни одна из функций не касается его. TRIM удаляет символ 32 и только символ 32, и CLEAN удаляет управляющие символы с номерами от 0 до 31, включая 160. Это самая распространенная причина, по которой кто-то говорит: «Я уже обрезал это, но оно все еще не соответствует».
Исправление состоит в том, чтобы сначала преобразовать символ в обычный пробел, а затем обрезать.
=TRIM(SUBSTITUTE(D12, CHAR(160), " "))
=LEN( that ) 5
= that = "North" TRUE
SUBSTITUTE берет текст, вещь, которую нужно найти, и вещь, которую нужно поставить на место, и заменяет каждое вхождение. Вложение его внутрь TRIM дает одну формулу, которая обрабатывает оба типа пространства одновременно, и эту версию стоит сохранить.
Сделайте эту формулу очистки по умолчанию для любого текстового столбца, поступающего из-за пределов вашей книги:
=TRIM(SUBSTITUTE(A2, CHAR(160), " "))
Это ничего не стоит для данных, которые уже были очищены, и экономит время для данных, которые еще не были очищены.
5. ЧИСТЫЙ, и два слова, которые оно объединяет
CLEAN удаляет непечатаемые управляющие символы, наиболее распространенным из которых является разрыв строки, который кто-то нажал Альт+Ввод, или который прибыл в поле, экспортированное из другой системы.
Внутри одного из имен представителей в «грязной» копии есть разрыв строки, поэтому в ячейке имя отображается в двух строках. Вот что происходит.
=LEN(C10) 9
=LEN(CLEAN(C10)) 8
=CLEAN(C10) = "OwenPark" TRUE
Прочтите последнюю строчку дважды. CLEAN удалил разрыв строки, а не заменил его, поэтому «Оуэн» и «Парк» теперь объединены в одно слово без пробела. Ячейка больше не выглядит сломанной, что еще хуже, чем просто выглядеть сломанной, поскольку имя теперь неверно и выдерживает каждую последующую проверку.
Разрыв строки является разделителем, поэтому он должен стать пробелом, а не ничем.
=TRIM(SUBSTITUTE(C10, CHAR(10), " ")) Owen Park
Символ 10 — это перевод строки, а символ 13 — возврат каретки; текст из старых систем может содержать и то, и другое. Если вы очищаете столбец, который может содержать многострочные примечания, замените оба и используйте только CLEAN когда вы искренне хотите, чтобы персонаж исчез, а не был заменен.
6. СОБСТВЕННОЕ, ВЕРХНЕЕ и НИЖНЕЕ, и названия СОБСТВЕННЫЕ ошибаются.
В другом случае два одинаковых значения становятся двумя разными. UPPER и LOWER звучат именно так, и в них нет никаких сюрпризов. PROPER делает первую букву каждого слова заглавной, а их несколько.
=PROPER("owen park") Owen Park right
=PROPER("o'brien") O'Brien right
=PROPER("mcdonald") Mcdonald wrong
=PROPER("IBM") Ibm wrong
Он правильно определяет регистр апострофов, что действительно полезно. Он не может знать, что в «Макдоналдсе» есть заглавная буква посередине, и он с радостью уничтожит уже правильную аббревиатуру, потому что он применяет одно правило к каждому встречному слову.
Итак, правило для имен и кодов: никогда не бегайте. PROPER над колонкой реальных имен и считайте ее почищенной. Используйте его для данных, которые, как вы знаете, состоят из одного регистра и обычных слов, проверяйте вывод на глаз и сохраняйте исходный столбец, чтобы ущерб был обратимым. В любом случае для целей сопоставления вам редко нужны красивые заглавные буквы; сравнения в Excel уже игнорируют регистр, поэтому UPPER с обеих сторон — это более безопасный способ добиться согласия, чем пытаться сделать так, чтобы каждое значение выглядело красиво.
Представьте на секунду свою худшую колонку: имена клиентов, имена поставщиков, коды продуктов, набранные четырьмя разными людьми. Сколько из этих записей будет PROPER незаметно повредить, и заметит ли кто-нибудь до того, как посылка будет отправлена?
7. Числа, хранящиеся в виде текста
Та же проблема в числовых столбцах, с другим симптомом. Для одного из шестнадцати заказов значение Единицы введено в виде текста, а не числа. Ничего не видно, кроме маленького зеленого треугольника в углу, который большинство людей научились игнорировать.
=SUM(clean Units) 101
=SUM(messy Units) 95
=COUNT(messy Units) 15
=ISTEXT(that cell) TRUE
SUM пропускает текст, поэтому общая сумма сокращается ровно на пропущенное значение, и COUNT говорит 15, где 16 рядов. Этот COUNT — самый дешевый детектор: поместите =COUNT(range) рядом с любым числовым столбцом и сравните его с количеством строк. Несоответствие — это текст, притворяющийся числом.
Три способа исправить это в порядке того, насколько они вам должны понравиться. Лучше всего исправить импорт, чтобы он никогда не поступал в виде текста, что для CSV означает объявление типов столбцов в диалоговом окне импорта, а не двойной щелчок по файлу; диалоговое окно импорта, которое удаляет ваши почтовые индексы охватывает тот же диалог с противоположной стороны. Далее лучше всего преобразовать в новый столбец с помощью =VALUE(A2), который возвращает действительное число, или умножить на 1, что тоже работает. В крайнем случае, выберите столбец, щелкните предупреждающий треугольник и выберите «Преобразовать в число», при этом данные редактируются на месте и не остается никаких записей о том, что это произошло.
Одно предупреждение о VALUE: это терпит неудачу с #VALUE! для всего, что не является чистым числом, включая значение с случайным пробелом или символом валюты. Эта ошибка полезна, поскольку она указывает на строки, требующие участия человека. Обертывание его, чтобы скрыть неудачу, вернет вас туда, где скрытие ошибки тебя всегда ставит.
8. Очистите новый столбец и докажите, что это работает.
Два рабочих правила имеют большее значение, чем любая из функций.
Никогда не чистите на месте. Поместите формулу очистки в новый столбец рядом с исходным, который называется Region_clean или что-то подобное, и направьте свой анализ на это. Перезапись необработанного столбца уничтожает единственное свидетельство того, что поступило, поэтому, если в следующем месяце цифры не будут соответствовать исходной системе, сравнивать будет не с чем. Это также делает очистку повторяемой: вставляется файл следующего месяца, и столбец пересчитывается.
Докажите это, а не предполагайте это. Уборка — это единственный вид деятельности, при котором работа и чек выглядят одинаково, поэтому люди пропускают чек. Три формулы, выполняемые после каждого прохода:
=COUNTA(UNIQUE(Region_clean)) distinct values, is it the number you expect?
=SUMPRODUCT(--(LEN(A2:A17)<>LEN(TRIM(A2:A17)))) rows still carrying stray spaces
=COUNT(Units) against =COUNTA(Units) numbers against everything
В «грязной» копии после очистки количество отдельных регионов увеличилось с 6 до 4, а общее количество северных регионов вернулось к 2495. Эти две цифры являются доказательством. Без них колонка будет выглядеть чище, а это совсем не то же самое.
Когда значения различаются так, что ни одна функция не может совместить «ООО "Акме"» с «АКМЕ ЛИМИТЕД» с «Акме Ко», вы перешли от очистки к Разрешение объекта, это другая работа с другим методом.
Полное до и после
Те же шестнадцать заказов, тот же вопрос: что продал Норт?
До
=SUMIFS(H2:H17, D2:D17, "North") 1630
distinct regions 6
Units total 95
Три номера, все неправильные, ни один из них не отмечен. В региональном отчете не хватает 865 единиц, на стержне есть два несуществующих региона, а шесть единиц запасов исчезли из общего количества, которое все еще выглядит вполне разумным.
после
# one new column per dirty column, originals untouched
Region_clean =TRIM(SUBSTITUTE(D2, CHAR(160), " "))
Rep_clean =TRIM(SUBSTITUTE(C2, CHAR(10), " "))
Units_num =VALUE(F2)
# the three checks, on the sheet, not in your head
distinct regions =COUNTA(UNIQUE(Region_clean)) 4
North revenue =SUMIFS(H2:H17, Region_clean, "North") 2495
Units =COUNT(Units_num) equals row count 16
Утверждение, и это причина сделать столбец LEN прежде всего: два символа, которые никто не видел, переместили общую сумму региона на 865 и создали два региона, а одна ячейка в текстовом формате удалила шесть единиц товара со склада на листе, где каждое видимое значение было правильным.
Краевые корпуса, выдержавшие очистку
Шесть, которые прошли очевидные исправления.
Другой невидимый персонаж. Обычно используется значение 160, но пробелы нулевой ширины и указатели направления также перемещаются при копировании и вставке. Если LEN после замены 160 все еще слишком долго, используйте =CODE(MID(A2,n,1)) пройти и назвать то, что на самом деле там сидит.
Апострофы и кавычки, отличные от тех, которые вы набрали. Фигурный апостроф и прямой — это разные символы, поэтому «О’Брайен» из Слово никогда не совпадает с «О’Брайен» на вашей клавиатуре. Прежде чем сравнивать, замените одно на другое.
Ведущий апостроф, который вы не видите. Ввод текста '1001 заставляет Excel хранить текст и скрывать апостроф. LEN не считает это и ISTEXT сообщает об этом, поэтому существует числовая проверка в седьмом разделе.
Уборка, которая изменила смысл. TRIM свертывание внутренних прогонов подходит для имен и неправильно для всего, где интервал несет информацию, например, для кодов фиксированной ширины. Прежде чем применять его ко всей колонке, сверьте образец с источником.
Формулы, которые теперь указывают на необработанный столбец. Добавление чистого столбца ничего не дает, пока все последующие его не прочитают. Найдите в книге ссылку на старый столбец; наполовину переписанная рабочая тетрадь хуже, чем незавершенная, потому что обе половины расходятся во мнениях.
Текст, который выглядит числовым в одном месте, а не в другом. После неправильного импорта столбец может состоять наполовину из чисел, наполовину из текста, и в каждой формуле эти половины ведут себя по-разному. Сравнивать COUNT с COUNTA вместо чтения столбца и никогда не доверяйте выравниванию по правому краю как доказательству, потому что формат может его переопределить.
Почему это работает
Все это не является плохим поведением Эксель. Ячейка содержит строку символов, а две строки равны, только если каждый символ совпадает, и это единственное определение, которое может использовать компьютер. Несоответствие между этим определением и человеческим определением, где «Север» и «Север», очевидно, являются одним и тем же словом. Каждый метод на этой странице — это способ заставить два определения согласоваться, и причина, по которой диагноз стоит на первом месте, заключается в том, что вы не можете выбрать правильную функцию, пока не узнаете, какой символ присутствует.
Это также не маленькая побочная задача. Исследования того, как на самом деле тратят свое время аналитики, неоднократно показывали, что обнаружение и устранение проблем с данными занимает значительную часть общих усилий, и что самая сложная часть — не применение преобразования, а определение того, какое преобразование необходимо; Работа Рэнглер создала интерактивный инструмент специально для преодоления разрыва между обнаружением проблемы и указанием ее решения (Кандель, Пэпке, Хеллерштейн & Хир, 2011, Материалы конференции SIGCHI по человеческому фактору в вычислительных системах, 3363–3372). Столбец LEN во втором разделе представляет собой низкотехнологичную версию той же идеи: сделать невидимую проблему видимой, прежде чем что-либо решать.
Более широкое предупреждение заключается в том, что электронные таблицы изменяют данные сами по себе, и эти изменения сохраняются. Циманн и его коллеги обнаружили, что значительная часть опубликованных дополнительных файлов по геномике содержала имена генов, которые Excel автоматически преобразовывал в даты или числа в статьях, прошедших рецензирование, поскольку ничто в преобразованном значении не объявляет себя преобразованным (Циманн, Эрен и Эль-Оста, 2016, Геномная биология, 17, 177). Число, хранящееся в виде текста, и имя, хранящееся в виде даты, представляют собой тот же класс проблем, что и конечный пробел: отображение в порядке, а значение — нет.
Одно замечание в шпаргалке ниже. Он создан для того, чтобы его просматривали и вспоминали, а не перечитывали, потому что попытка восстановить что-то обеспечивает заметно лучшее запоминание, чем повторное изучение, даже если второй вариант кажется более продуктивным, пока вы его делаете (выбирать карпа & Тупой, 2011, Наука, 331(6018), 772–775).
Использование этого в вашем собственном проекте
Очистка всей унаследованной книги утомительна, и вы остановитесь на втором столбце. Вместо этого сделайте это по порядку.
- Подсчитайте различные значения в каждом текстовом столбце, по которому вы группируете или фильтруете.
=COUNTA(UNIQUE(range)). Любое значение выше, чем вы ожидали, — это то, где есть работа. - Добавьте столбец LEN рядом с худшим. и отсортируйте по нему. Проблемы поднимаются наверх в один клик.
- Назовите персонажа с помощью КОДА перед выбором функции. Тридцать два и сто шестьдесят нуждаются в разных исправлениях.
- Очистите в новый столбец, всегда, с
=TRIM(SUBSTITUTE(A2,CHAR(160)," "))как по умолчанию и дополнения только при наличии доказательств. - Сравните COUNT с количеством строк в каждом числовом столбце, чтобы поймать числа, хранящиеся в виде текста.
- Повторно запустите отдельный подсчет и затронутую сумму., и запишите оба числа. Это доказательство того, что пас сработал, и это занимает десять секунд.
Если у вас под рукой есть бумага, один дополнительный эскиз стоит пяти минут. Нарисуйте одно из значений вашей задачи в виде ряда прямоугольников, по одному квадрату на символ, и поставьте точку в каждом квадрате, где есть пробел. Большинство людей во время рисования обнаруживают, что не знают, сколько прямоугольников там должно быть, и именно эту неопределенность устраняет столбец LEN.
Все на одном экране
Это лист поиска. Закройте правую колонку, проработайте левую и произнесите каждый ответ вслух, прежде чем проверять его.
| вещь | Что он делает |
|---|---|
LEN(A2) | Считает символы. Превращает невидимую проблему в число. |
CODE(RIGHT(A2,1)) | Называет последнего персонажа. 32 — пробел, 160 — неразрывный пробел. |
TRIM | Удаляет начальные и конечные пробелы и сжимает внутренние пробеги до одного. |
| Чего не хватает TRIM | Символ 160. Длина не меняется. |
CLEAN | Удаляет управляющие символы от 0 до 31. Также пропускает 160. |
| CLEAN при разрыве строки | Удаляет его, а не заменяет. Оуэн-Парк становится Оуэн-Парком. |
| Исправление по умолчанию | =TRIM(SUBSTITUTE(A2,CHAR(160)," ")) |
| Разрывы строк | SUBSTITUTE(A2,CHAR(10)," ")и CHAR(13), если файл старше. |
PROPER | С большой буквы пишет каждое слово. Управляет О'Брайеном, разрушает Макдональдс и IBM. |
UPPER / LOWER | Безопасный. Используйте для принудительного согласования двух столбцов. |
| Числа как текст | SUM пропускает их молча. COUNT терпит неудачу. |
| Исправляем их | =VALUE(A2) в новом столбце или исправьте импорт. |
| Отдельная проверка | =COUNTA(UNIQUE(range)). Больше, чем ожидалось, означает почти дубликаты. |
| Проверка случайного пространства | =SUMPRODUCT(--(LEN(r)<>LEN(TRIM(r)))) |
| Где чистить | Новая колонка. Никогда не используйте необработанные данные. |
| Помимо очистки | Ценности, для согласования которых требуется суждение, — это разрешение сущности. |
Еще одна мысль, и мне бы искренне хотелось услышать ответы других людей. Больше всего мне стоила колонка поставщиков, в которой из электронного письма было вставлено одно значение, поэтому один поставщик появлялся дважды в каждом отчете за квартал, и обе записи выглядели одинаково на экране. Что скрывалось в ваших данных, и что в итоге заставило вас посчитать символы?
Ссылки
- Кандел С., Паепке А., Хеллерштейн Дж. и Хир Дж. (2011). Рэнглер: Интерактивная визуальная спецификация сценариев преобразования данных. Материалы конференции SIGCHI по человеческому фактору в вычислительных системах, 3363–3372.
- Циманн М., Эрен Ю. и Эль-Оста А. (2016). Ошибки в названиях генов широко распространены в научной литературе. Геномная биология, 17, 177.
- Карпике, Дж. Д., и Блант, Дж. Р. (2011). Практика поиска дает больше знаний, чем детальное изучение с картированием понятий. Наука, 331(6018), 772–775.
Excel для аналитиков это 378 страниц, ОБРЕЗКА, ОЧИСТКА и порядок очистки, который предотвращает сбой совпадения по причинам, которые вы не видите, с практическими вопросами, которые печатают ответ и причину, по которой он правильный.
Excel для аналитиков, 19 долларов США →тот Курс Excel дает вам повторения: столбцы, заполненные точными проблемами на этой странице, флэш-карточки, на которых функция удаляет какой символ, и пробный экзамен, который просит вас предсказать общую сумму, прежде чем вы очистите столбец. Теперь вы владеете методом; комплект - это практика. Ничего устанавливать, учетная запись не требуется.
Откройте набор Excel →