📜  使用文本功能清理数据

📅  最后修改于: 2020-12-01 05:45:45             🧑  作者: Mango


您从不同来源获得的数据可能没有准备好进行分析的形式。在本章中,您将了解如何准备文本形式的数据以进行分析。

最初,您需要清除数据。数据清理包括从文本中删除不需要的字符。接下来,您需要以进一步分析所需的形式来构造数据。您可以通过-

  • 使用文本功能查找所需的文本模式。
  • 从文本中提取数据值。
  • 使用文本功能格式化数据。
  • 使用文本功能执行数据操作。

从文本中删除不需要的字符

从另一个应用程序导入数据时,它可能具有不可打印的字符和/或多余的空格。多余的空间可以是-

  • 前导空格,和/或
  • 单词之间的多余空格。

如果对此类数据进行排序或分析,将会得到错误的结果。

考虑以下示例-

产品资料

这是您从包含产品ID,产品描述和价格的产品信息中获得的原始数据。字符“ |”分隔每一行中的字段。

当您将此数据导入Excel工作表时,其外观如下-

汇入资料

如您所见,整个数据位于单个列中。您需要构造此数据以执行数据分析。但是,最初需要清除数据。

您需要删除数据中可能存在的所有不可打印字符和多余的空格。为此,可以使用CLEAN函数和TRIM函数。

S.No. Function & Description
1.

CLEAN

Removes all nonprintable characters from text

2.

TRIM

Removes spaces from text

  • 选择单元格C3 – C11。
  • 键入= TRIM(CLEAN(B3)),然后按CTRL+。输入。

公式填充在单元格C3 – C11中。

公式填写

结果将如下所示-

公式填写结果

使用文本功能查找所需的文本模式

要构造数据,您可能必须进行某些文本模式匹配,然后才能提取数据值。一些对此有用的文本函数是-

S.No. Function & Description
1.

EXACT

Checks to see if two text values are identical

2.

FIND

Finds one text value within another (case-sensitive)

3.

SEARCH

Finds one text value within another (not case-sensitive)

从文本中提取数据值

您需要从文本中提取所需的数据以进行结构化。例如,在上面的示例中,您需要将数据放在三列中-ProductID,Product_Description和Price。

您可以通过以下方式之一提取数据-

  • 使用“将文本转换为列”向导提取数据值
  • 使用文本函数提取数据值
  • 使用Flash Fill提取数据值

使用“将文本转换为列”向导提取数据值

如果您的字段为-,则可以使用“将文本转换为列”向导将数据值提取到Excel列中-

  • 以字符分隔,或
  • 在各字段之间以空格对齐的列中。

在以上示例中,字段由字符“ |”定界。因此,您可以使用“将文本转换为列”向导。

  • 选择数据。

  • 将值复制并粘贴到同一位置。否则,“将文本转换为列”将以函数而不是数据本身作为输入。

将文本转换为列

  • 选择数据。

  • 单击功能区上“数据”选项卡下“数据工具”组中的“文本到列”

步骤1-将文本转换为列向导-显示第1步,共3步。

  • 选择定界。
  • 点击下一步。

将文本转换为列Step1

步骤2-将文本转换为列向导-显示第2步,共3步。

  • 在“分隔符”下,选择“其他”

  • 在“其他”旁边的框中,键入字符|。

  • 单击下一步

将文本转换为列Step2

步骤3-将文本转换为列向导-显示第3步,共3步。

在此屏幕中,您可以在向导中选择数据的每一列,并设置该列的格式。

  • 对于“目的地” ,选择单元格D3。

  • 您可以单击“高级” ,然后在出现的“高级文本导入设置”对话框中设置“十进制分隔符”和“千位分隔符”。

  • 点击完成

将文本转换为列Step3

转换为列的数据将显示在三个列中-D,E和F。

  • 将列标题命名为ProductID,Product_Description和Price。

名称列标题

使用文本函数提取数据值

假设数据中的字段既不用字符定界,也不在每个字段之间以空格对齐的列中对齐,则可以使用文本函数提取数据值。即使在字段被分隔的情况下,您仍然可以使用文本函数来提取数据。

一些对此有用的文本函数是-

S.No. Function & Description
1.

LEFT

Returns the leftmost characters from a text value

2.

RIGHT

Returns the rightmost characters from a text value

3.

MID

Returns a specific number of characters from a text string starting at the position you specify

4.

LEN

Returns the number of characters in a text string

您还可以根据手头的数据组合两个或多个这些文本函数,以提取所需的数据值。例如,结合使用LEFT,RIGHT和VALUE函数或结合使用FIND,LEFT,LEN和MID函数。

在上面的示例中,

  • 所有字符保留到第一个|命名为ProductID。

  • 所有字符都在第二个|命名为Price。

  • 第一个|之间的所有字符第二|命名为Product_Description。

  • 每个|前后有一个空格。

观察此信息,您可以通过以下步骤提取数据值:

  • 找到第一的位置-第一|位置

    • 您可以使用FIND函数

  • 找到第二个位置-第二|位置

    • 您可以再次使用FIND函数

  • 开始(第一页|位置– 2)文本给予的ProductID的字符

    • 您可以使用LEFT功能

  • (第一页|位置及加; 2)(第二|位置– 2)文本给予PRODUCT_DESCRIPTION的字符

    • 您可以使用MID功能

  • (第二|位置+ 2)到文本的结尾字符给出价格

    • 您可以使用RIGHT功能

  • 提取数据值

    结果将如下所示-

    提取数据值结果

    您可以观察到价格列中的值是文本值。要对这些值进行计算,必须格式化相应的单元格。您可以查看下面给出的部分,以了解格式文本。

    使用Flash Fill提取数据值

    使用Excel Flash Fill是从文本提取数据值的另一种方法。但是,这仅在Excel能够在数据中找到模式时才有效。

    步骤1-在数据旁边为ProductID,Product_Description和Price创建三列。

    创建列

    步骤2-复制并粘贴B3中C3,D3和E3的值。

    粘贴值

    步骤3-选择单元格C3,然后单击“闪存” 。在“数据”选项卡上的“数据工具”组中。 ProductID的所有值均已填写。

    闪光填充

    步骤4-对Product_Description和Price重复上述步骤。数据已填写。

    重复步骤

    使用文本功能格式化数据

    Excel具有多个内置文本功能,可用于格式化包含文本的数据。这些包括-

    根据您的需要格式化文本的功能

    S.No. Function & Description
    1.

    LOWER

    Converts text to lowercase

    S.No. Function & Description
    1.

    UPPER

    Converts text to uppercase

    2.

    PROPER

    Capitalizes the first letter in each word of a text value

    将数字转换和/或格式化为文本的函数

    S.No. Function & Description
    1.

    DOLLAR

    Converts a number to text, using the $ (dollar) currency format

    2.

    FIXED

    Formats a number as text with a fixed number of decimals

    3.

    TEXT

    Formats a number and converts it to text

    将文本转换为数字的函数

    S.No. Function & Description
    1.

    VALUE

    Converts a text argument to a number

    使用文本功能执行数据操作

    您可能必须对数据执行某些文本操作。例如,如果在组织中将雇员的登录ID更改为新格式,则可能需要根据格式更改来进行文本替换。

    以下文本函数可帮助您对包含文本的数据执行文本操作-

    S.No. Function & Description
    1.

    REPLACE

    Replaces characters within text

    2.

    SUBSTITUTE

    Substitutes new text for old text in a text string

    3.

    CONCATENATE

    Joins several text items into one text item

    4.

    CONCAT

    Combines the text from multiple ranges and/or strings, but it does not provide the delimiter or IgnoreEmpty arguments.

    5.

    TEXTJOIN

    Combines the text from multiple ranges and/or strings, and includes a delimiter you specify between each text value that will be combined. If the delimiter is an empty text string, this function will effectively concatenate the ranges.

    6.

    REPT

    Repeats text a given number of times