关于数据表转置成二维表,且不要聚合的案例,今天解答继续。这次教公式解法,带大家领略一下高阶函数的魅力。
案例:将下图 1 的数据表按菜品转置成二维表,每个菜品下的数量纵向列出,不要加总。
效果如下图 2 所示。
解决方案:1. 在 D1 单元格中输入以下公式:
=TRANSPOSE(UNIQUE(A2:A21))
公式释义:
UNIQUE(A2:A21):
UNIQUE 是个 O365 函数,作用是返回列表或范围中的一系列唯一值;
UNIQUE 的参数为 UNIQUE (要查询的区域,[返回列还是行的唯一值,默认情况下是按行],[返回区域内仅出现过一次的值,默认情况下不启用该选项]);
这段公式最终会将 A 列的菜品去重,输出一列唯一值;
O365 函数会自动生成动态数组区域,因此不需要拖动公式,就能自动生成结果区域;
TRANSPOSE(...):将上述结果转置,变成按行显示
2. 在 D2 单元格中输入以下公式 --> 向右拖动 D2 单元格复制公式:
=FILTER($B$2:$B$21,$A$2:$A$21=D1)
公式释义:
FILTER 函数的作用是基于定义的条件筛选数据;
语法为 FILTER(要筛选的数组或区域,高度或宽度与数组相同的布尔值数组,[为空时返回的值]);
本案例公式表示如果 A 列的菜品与 D1 标题相同,则筛选出 B 对应区域中的值
3. 将原数据表的格式用格式刷复制过来。