如何按Type列转置含唯一字符串的表格(按Type分列排布字符串)
表格转置:将唯一项目按类型归入对应列的可行方案
针对你需要将包含日期、类型、唯一项目的表格转置,让每个项目归入对应类型列的需求,以下是两种可靠的实现方案,适用于Google Sheets和Excel 365:
原始数据与期望效果
原始表格
| 日期 | 类型 | 项目 |
|---|---|---|
| 2020年1月1日 | 书写类 | 铅笔 |
| 2020年1月1日 | 工具类 | 锤子 |
| 2020年1月2日 | 服饰类 | 鞋子 |
| 2020年1月2日 | 书写类 | 钢笔 |
| 2020年1月3日 | 服饰类 | 衬衫 |
| 2020年1月3日 | 服饰类 | 长裤 |
期望转换结果
| - | 服饰类 | 工具类 | 书写类 |
|---|---|---|---|
| 2020年1月1日 | 锤子 | ||
| 2020年1月1日 | 铅笔 | ||
| 2020年1月2日 | 鞋子 | ||
| 2020年1月2日 | 钢笔 | ||
| 2020年1月3日 | 衬衫 | ||
| 2020年1月3日 | 长裤 |
方案1:使用LET函数生成完整结果(推荐)
该方案通过定义变量简化逻辑,自动生成表头和数据区域,无需手动拆分操作:
假设原始数据位于A2:C7(A1、B1、C1分别为"日期"、"类型"、"项目"表头),在空白单元格(比如E1)输入以下公式:
=LET( data,A2:C7, dates,INDEX(data,,1), types,INDEX(data,,2), items,INDEX(data,,3), unique_types,SORT(UNIQUE(types)), header,HSTACK("-",unique_types), body,HSTACK(dates,ARRAYFORMULA(IF(types=TRANSPOSE(unique_types),items,""))), VSTACK(header,body) )
公式说明
LET:定义变量,避免重复引用数据区域,提升可读性unique_types:提取所有唯一的类型并排序,作为结果的表头列header:组合结果的第一列表头("-")和类型列表头body:左侧保留原始日期,右侧通过IF判断每行类型是否匹配对应列的类型,匹配则填充项目,否则留空VSTACK:将表头和数据区域垂直拼接成最终表格
方案2:分步骤手动构建(适合新手)
如果不熟悉LET函数,可以分两步操作:
- 生成表头:
- 在E1输入
"-" - 在F1输入
=UNIQUE(B2:B7),公式会自动扩展出所有唯一类型(服饰类、工具类、书写类)
- 在E1输入
- 填充数据:
- 复制原始日期列到E2:E7
- 在F2输入公式
=IF($B2=F$1,$C2,""),然后向右向下拖动填充到整个数据区域,即可将项目填入对应类型列
内容的提问来源于stack exchange,提问作者Vladimir K.
相关产品推荐
相关产品推荐

