众力资讯网

把 Excel 二维表的标题变成一维表的值

解答网友提问:如何将一个二维的员工工作状态表转换成更加便于统计的一维表?案例:下图 1 中整行为空的人,表示全勤状态。请

解答网友提问:如何将一个二维的员工工作状态表转换成更加便于统计的一维表?

案例:

下图 1 中整行为空的人,表示全勤状态。请将表格转换成一维表。

效果如下图 2 所示。

解决方案 1:

1. 将 G 列设置为“全勤”列 --> 在 G2 单元格中输入以下公式 --> 下拉复制公式:

=IF(SUM(B2:F2)=0,1,"")

公式释义:

如果所有假期列之和为 0,就是全勤出席;

非全勤则将结果留空。

2. 在 J2 单元格中输入以下公式 --> 回车:

=TOCOL(IFS(B2:G16,B1:G1),2)

公式释义:

IFS(B2:G16,B1:G1):

将 B2:G16 作为判断条件,就相当于 1 为 true,0 为 false;

如果为 true,则提取出同一列中 B1:G1 区域的值,否则返回错误值;

结果是一个多行多列的二维区域,效果如下图红框所示;

TOCOL(...,2):tocol 函数的作用是将区域转换成一列;参数 2 用于去除错误值。

解决方案 2:

同上述方案一样,先添加“全勤”列。

2. 选中数据表的任意非空单元格 --> 选中任务栏的“数据”-->“来自表格/区域”

3. 在弹出的对话框中保留默认设置 --> 点击“确定”

表格已经上传至 Power Query。

4. 选中“姓名”列 --> 选择任务栏的“转换”-->“逆透视”-->“逆透视其他列”

5. 将“属性”列的标题修改为“状态”。

6. 删除“值”列。

7. 选择任务栏的“主页”-->“关闭并上载”-->“关闭并上载至”

8. 在弹出的对话框中选择“表”--> 选择“现有工作表”及所需上传至的位置 --> 点击“确定”

右侧绿色的表格就是整理好的一维表。