如何在Google Sheets中批量拖拽独立公式生成结构化数据
实现方法
核心逻辑:原表每1行数据对应目标表6行结构,通过ROW()计算当前目标行对应的原表数据行,再用INDEX()提取对应值即可实现批量拖拽生成。
假设目标表从A1单元格开始构建,以下是各单元格的公式及说明:
目标表单元格公式(按6行分组)
第1行(对应原表第N行,N从2开始)
| 目标单元格 | 公式 | 用途 |
|---|---|---|
| A1 | =INDEX(Sheet1!$B:$B, INT((ROW()-1)/6)+2) | 提取原表「1st Part」列的值 |
| B1 | =INDEX(Sheet1!$C:$C, INT((ROW()-1)/6)+2) | 提取原表「2nd Part」列的值 |
| C1 | =INDEX(Sheet1!$F:$F, INT((ROW()-1)/6)+2) | 提取原表「title」列的值 |
第2-4行
| 目标单元格 | 公式 | 用途 |
|---|---|---|
| A2-A4 | "merged with ("&INDEX(Sheet1!$B:$B, INT((ROW()-1)/6)+2)&")" | 生成关联原表「1st Part」的固定文本 |
| B2-B4 | "merged with ("&INDEX(Sheet1!$C:$C, INT((ROW()-1)/6)+2)&")" | 生成关联原表「2nd Part」的固定文本 |
| C2 | =INDEX(Sheet1!$H:$H, INT((ROW()-1)/6)+2) | 提取原表「meta1」列的值 |
| C3 | =INDEX(Sheet1!$I:$I, INT((ROW()-1)/6)+2) | 提取原表「meta2」列的值 |
| C4 | =INDEX(Sheet1!$J:$J, INT((ROW()-1)/6)+2) | 提取原表「note」列的值 |
第5行
| 目标单元格 | 公式 | 用途 |
|---|---|---|
| A5 | =INDEX(Sheet1!$D:$D, INT((ROW()-1)/6)+2) | 提取原表「data1st」列的值 |
| B5 | =INDEX(Sheet1!$E:$E, INT((ROW()-1)/6)+2) | 提取原表「data2nd」列的值 |
| C5 | "merged with ("&INDEX(Sheet1!$J:$J, INT((ROW()-1)/6)+2)&")" | 生成关联原表「note」的固定文本 |
第6行
| 目标单元格 | 公式 | 用途 |
|---|---|---|
| A6 | =INDEX(Sheet1!$G:$G, INT((ROW()-1)/6)+2) | 提取原表「desc」列的值 |
| B6 | "merged with ("&INDEX(Sheet1!$G:$G, INT((ROW()-1)/6)+2)&")" | 生成关联原表「desc」的固定文本 |
| C6 | "merged with ("&INDEX(Sheet1!$J:$J, INT((ROW()-1)/6)+2)&")" | 生成关联原表「note」的固定文本 |
操作步骤
- 在目标表的A1-C6区域,依次填入上述对应公式;
- 选中A1-C6整个矩形区域;
- 鼠标移至区域右下角的填充柄(小方块),按住左键向下拖拽,即可自动为原表后续行生成对应的6行结构。
公式核心逻辑解释
INT((ROW()-1)/6)+2:
ROW()返回当前目标单元格的行号;(ROW()-1)/6将目标行按6行一组划分,得到组序号(从0开始);INT()取整后加2,得到对应原表的数据行号(原表第2行是第一组数据,对应目标表1-6行)。
内容的提问来源于stack exchange,提问作者marcanuy
相关产品推荐
相关产品推荐

