Excel Data Analysis 简明教程
Cleaning Data with Text Functions
从不同来源获得的数据可能不适合于分析。在本章中,你将了解如何准备你的数据,即以文本格式用于分析的数据。
最初,你需要清理数据。数据清理包括从文本中移除无用字符。接下来,你需要按你所需的分析格式来组织数据。通过以下步骤可以完成该操作:
-
使用文本函数查找必需的文本模式。
-
从文本中提取数据值。
-
使用文本函数格式化数据。
-
使用文本函数执行数据操作。
Removing Unwanted Characters from Text
当您从另一个应用程序导入数据时,其中可能包含不可打印的字符和/或多余的空格。多余的空格可能是:
-
leading spaces, and/or
-
extra spaces between words.
如果您对该数据进行排序或分析,您会得到错误的结果。
考虑以下示例 −
这是您获得的产品信息中包含产品 ID、产品描述和价格的原始数据。字符“|”分隔每一行中的字段。
当您将该数据导入 Excel 工作表时,它将显示如下所示 −
正如您所看到的,整个数据都在单列中。在执行数据分析之前,您需要对数据进行结构化处理。但是,您首先需要清洗数据。
您需要删除数据中可能存在的任何不可打印的字符和多余空格。为此,可以使用 CLEAN 函数和 TRIM 函数。
S.No. |
Function & Description |
1. |
CLEAN 从文本中删除所有不可打印的字符 |
2. |
TRIM Removes spaces from text |
-
选择单元格 C3 – C11。
-
键入 =TRIM(CLEAN(B3)),然后按 Ctrl + Enter。
公式填入单元格 C3 – C11 中。
结果将如下所示:
Extracting Data Values from Text
您需要从文本中提取所需数据以对其进行结构化处理。在上例中,假设您需要将数据放入三个列中:ProductID、Product_Description 和 Price。
您可以通过以下方式之一提取数据:
-
使用“将文本转换为列”向导提取数据值
-
使用文本函数提取数据值
-
使用快速填充提取数据值
Extracting Data Values with Convert Text to Columns Wizard
如果您的字段符合以下条件,则可以使用 Convert Text to Columns Wizard 将数据值提取到 Excel 列中:
-
以字符分隔,或者
-
在列中对齐,每个字段之间有空格。
在上例中,字段以字符“|”分隔。因此,可以使用 Convert Text to Columns 向导。
-
Select the data.
-
在相同位置复制并粘贴值。否则, Convert Text to Columns 会将函数而并非数据本身作为输入。
-
Select the data.
-
在功能区上 Data 标签下的 Data Tools 组中单击 Text to Columns 。
出现 Step 1 −“文本到列向导” - 步骤 1/3。
-
Select Delimited.
-
Click Next.
出现 Step 2 −“文本到列向导” - 步骤 2/3。
-
Under Delimiters, select Other.
-
在 Other 旁边的方框中,键入字符 |
-
Click Next.
出现 Step 3 −“文本到列向导” - 步骤 3/3。
在此屏幕中,您可以在向导中选择数据的每一列,并为该列设置格式。
-
对于 Destination ,选择单元格 D3。
-
您可以单击 Advanced ,并在出现的 Advanced Text Import Settings 对话框中设置 Decimal Separator 和 Thousands Separator 。
-
Click Finish.
已转换为列的数据显示在三列中 - D、E 和 F。
-
将列标题命名为 ProductID、Product_Description 和 Price。
Extracting Data Values with Text Functions
假设您数据中的字段既没有用字符分隔,也没有用空格排列在列中,则可以使用文本函数来提取数据值。即使字段已分隔,您仍然可以使用文本函数来提取数据。
可用于此目的的一些文本函数如下:
S.No. |
Function & Description |
1. |
LEFT 从文本值返回最左边的字符 |
2. |
RIGHT 从文本值返回最右边的字符 |
3. |
MID 从文本字符串返回从您指定的位置开始的特定数量的字符 |
4. |
LEN 返回文本字符串中的字符数量 |
您还可以根据手头的数据,将两个或更多文本函数组合在一起,以提取所需的数据值。例如,使用 LEFT、RIGHT 和 VALUE 函数的组合或使用 FIND、LEFT、LEN 和 MID 函数的组合。
在上面示例中,
-
直到第一个 | 左边的所有字符提供名称“ProductID”。
-
直到第二个 | 右边的所有字符提供名称“Price”。
-
介于第一个和第二个 | 之间的所有字符提供名称“Product_Description”。
-
每个 | 的前后都有一个空格。
观察此信息后,您可以按以下步骤提取数据值 −
-
查找第一个 | 的位置 - First | Position 您可以使用 FIND 函数
-
查找第二个 | 的位置 - Second | Position 您可以再次使用 FIND 函数
-
文本的从 ( First | Position - 2) 个字符开始的部分提供了 First | Position 您可以使用 LEFT 函数
-
文本的从 ( Second | Position + 2) 到 ( Second | Position - 2) 个字符提供了 Second | Position 您可以使用 MID 函数
-
文本的从 ( Flash Fill + 2) 个字符到结尾的部分提供了 Second | Position 您可以使用 RIGHT 函数
结果将如下所示:
您可能会观察到,价格列中的值是文本值。要对这些值执行计算,您必须设置相应单元格的格式。您可以参阅下面提供的部分,了解如何设置文本格式。
Extracting Data Values with Flash Fill
使用 Excel Step 1 是从文本中提取数据值的另一种方式。但是,只有在 Excel 能够在数据中找到模式时,此方法才会起作用。
Step 2 − 在数据旁边创建三列,分别用于 ProductID、Product_Description 和 Price。
Step 3 − 复制并粘贴 B3 中的 C3、D3 和 E3 的值。
Flash Fill − 选择单元格 C3,然后单击 Data Tools 选项卡上的 Data 组中的 Step 4 。将填充 ProductID 的所有值。
Functions that format the Text as per your need − 对 Product_Description 和 Price 重复上述步骤。将填充数据。
Formatting Data with Text Functions
Excel 具有几个内置文本函数,您可以使用这些函数设置包含文本的数据的格式。其中包括 −
PROPER −
S.No. |
Function & Description |
1. |
LOWER Converts text to lowercase |
S.No. |
Function & Description |
1. |
UPPER Converts text to uppercase |
2. |
@{s16}将文本值中每个单词的第一个字母大写 |
Functions that convert and/or format the Numbers as Text −
S.No. |
Function & Description |
1. |
DOLLAR 使用 $(美元)货币格式将数字转换为文本 |
2. |
FIXED 使用固定位数的小数点将数字设定为文本格式 |
3. |
TEXT 将数字转换为文本 |
Functions that convert the Text to Numbers −
S.No. |
Function & Description |
1. |
VALUE 将文本参数转换为数字 |
Executing Data Operations with the Text Functions
你可能需要在你的数据上执行一些文本操作。例如,如果组织中员工的登录 ID 更改为新格式,基于格式更改,可能必须执行文本替换。
以下文本函数可帮助你对你包含文本的数据执行文本操作:
S.No. |
Function & Description |
1. |
REPLACE Replaces characters within text |
2. |
SUBSTITUTE 替换文本字符串中的旧文本为新文本 |
3. |
CONCATENATE 将几个文本项合并成一个文本项 |
4. |
CONCAT 合并来自多个区域和/或字符串的文本,但它不提供分隔符或 IgnoreEmpty 参数。 |
5. |
TEXTJOIN 合并来自多个区域和/或字符串的文本,并在每个要合并的文本值之间包括你指定的定界符。如果定界符是空文本字符串,此函数将有效地连接范围。 |
6. |
REPT 给定次数内重复文本 |