Excel(WPS表格)中多列去重就用Tocol+Unique组合函数

一、基础函数功能及语法结构解读

(一)Unique函数

1.功能:从指定的区域或数组中返回唯一值,即对指定的区域或数组去重。

2.语法结构:=Unique(待去重的单元格区域或数组,[比较方向],[返回范围])。

3.参数解读:

(1)带去重的单元格区域或数组,必须:可以是1行,也可以是1列,还可以是多行多列组成的区域。

(2)比较方向,可选:当为默认值FALSE时,按行进行比较;当为TRUE时,按列进行比较。

(3)返回范围,可选:当为默认值FALSE时,返回所有不同的重复值;当为TRUE时,返回恰好出现1次的非重复值。

4.案例解读

目的1:单列去重——提取“学历”字段。

操作方法:

在目标单元格中输入公式:==UNIQUE(C21:C30)。

目的2:多列去重——提取“学历”和“性别”的唯一值。

操作方法:

在目标单元格中输入公式:==UNIQUE(C21:D30)。

(二)Tocol函数

1.功能:将多个单元格区域(或单个区域)的内容按照从上到下,从左到右的顺序提取,并纵向排成一列(忽略空白或按规则保留)。

2.语法结构:=Tocol(数据区域,[忽略特定值],[读取方向])。

3.参数解读:

(1)数据区域,必须:需要转换的数据源。

(2)忽略特定值,可选:默认值为0,不忽略任何值(包括空单元格,错误值);1为忽略空单元格,但保留错误值;2为忽略错误值,但保留空单元格;3为同时忽略错误值和空单元格。

(3)读取方向,可选:默认值为0,先按行读取(同一行从左到右读完,再读下一行);1为先按列读取(同一列从上到下读完,再读下一列)。

4.案例解读

目的1:将参赛者名单汇总为1列,同一项目的参赛者毗邻。

操作方法:

在目标单元格中输入公式:=TOCOL(C3:K9,3,0)。

公式也可以为=TOCOL(C3:K9,3),因为读取方向的默认值为0,即先行后列,即同一项目的参赛者毗邻。

目的2:将参赛者名单汇总为1列,队长(第一位参赛者)毗邻。

操作方法:

在目标单元格中输入公式:=TOCOL(C3:K9,3,1)。

案例说明:

如果要实现“先列后行”的目的,参数“读取方向”必须为1,不能省略。

(三)COUNTIF函数

2.语法结构:==COUNTIF(范围, 条件)。

基础用法

  1. 统计文本内容
    =COUNTIF(A1:A4, "苹果") 统计 A1 至 A4 单元格中包含“苹果”的单元格数量。

  2. 统计数值范围
    =COUNTIF(B2:B5, ">55") 统计 B2 至 B5 中数值大于 55 的单元格数量。

  3. 使用通配符
    =COUNTIF(A2:A5, "*") 统计包含任意字符的单元格数量(如空格或符号)。 ‌

二、应用案例解读

目的:统计参赛者的项目数。

操作方法:

1.先获取参赛者姓名,思路就是现用Tocol将所有的参赛者姓名转为1列,然后用Unique去重,所以在目标单元格中输入公式:==UNIQUE(TOCOL(C2:K8,3,0))

2.然后用Countifs(或Countif)计数,所以在目标单元格中输入公式:==COUNTIF($C$2:$K$8,M2)。

### ### 使用函数实现多列数据的横向合并 在 WPS 表格中,若需要将多个列的数据横向合并为一列,可以使用 `TEXTJOIN` 函数或 `CONCATENATE` 函数实现。这些函数能够将多个单元格中的文本内容合并到一个单元格中,并支持自定义分隔符。 例如,若需将 A2、B2、C2 三列的数据合并到 D2 单元格中,并使用逗号作为分隔符,可在 D2 单元格中输入以下公式: ```excel =TEXTJOIN(",", TRUE, A2, B2, C2) ``` - `","`:表示使用逗号作为分隔符 - `TRUE`:表示忽略空单元格 - `A2, B2, C2`:表示要合并的单元格范围 若使用 `CONCATENATE` 函数,则公式为: ```excel =CONCATENATE(A2, ",", B2, ",", C2) ``` 该方法适用于需要将多个字段信息整合为一个字段的场景,如合并地址信息、生成标签等 [^1]。 ### ### 使用 INDEX 和 MATCH 实现动态横向合并 当需要根据某一列的匹配结果横向合并多个列时,可结合 `INDEX` 和 `MATCH` 函数实现动态查找与合并。例如,若表1中包含 ID 和姓名列,表2中包含 ID、成绩和联系方式列,需根据 ID 将成绩和联系方式合并到表1中。 可在表1的 C2 单元格中输入以下公式获取成绩: ```excel =INDEX(Sheet2!B:B, MATCH(A2, Sheet2!A:A, 0)) ``` 在 D2 单元格中输入以下公式获取联系方式: ```excel =INDEX(Sheet2!C:C, MATCH(A2, Sheet2!A:A, 0)) ``` 该方法支持动态查找并横向扩展多个字段,适用于数据关联性强的场景 [^1]。 ### ### 使用 VLOOKUP 进行多列横向合并 若需一次性合并多个列,可使用 `VLOOKUP` 函数并指定列号。例如,在表1中根据 ID 合并表2中的成绩和联系方式: ```excel =VLOOKUP(A2, Sheet2!A:C, 2, FALSE) ``` 该公式用于获取成绩(第 2 列),若需获取联系方式(第 3 列),则公式为: ```excel =VLOOKUP(A2, Sheet2!A:C, 3, FALSE) ``` 此方法适用于结构清晰、主键一致的多表合并操作 [^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值