用第一列排列所有列的公式
Formula to array all columns with first column
我正在将 csv 数据拉入 Google Spreadsheet,其中 A 列垂直名称 运行,第 1 行水平问题 运行。有某些列中的分数和其他列中的分数是空白的。像这样:
| | Q1 | Q2 | Q3 | Q4 | Q5 | Q6 | Q7 |
|-------|-----|-----|----|-----|-----|----|-----|
| Name1 | ##% | ##% | | ##% | ##% | | ##% |
| Name2 | ##% | ##% | | ##% | ##% | | ##% |
| Name3 | ##% | ##% | | ##% | ##% | | ##% |
| Name4 | ##% | ##% | | ##% | ##% | | |
| Name5 | ##% | ##% | | ##% | ##% | | |
我想构建一个公式,将每个列的分数与名称列和 header 列匹配成 3 列,无论天气如何,单元格中有任何值。我想要一个名称列、一个问题标题列和一个分数列,如下所示:
| Name1 | Q1 | ##% |
| Name2 | Q1 | ##% |
| Name3 | Q1 | ##% |
| Name4 | Q1 | ##% |
| Name5 | Q1 | ##% |
| Name1 | Q2 | ##% |
| Name2 | Q2 | ##% |
| Name3 | Q2 | ##% |
| Name4 | Q2 | ##% |
| Name5 | Q2 | ##% |
| Name1 | Q3 | ##% |
| Name2 | Q3 | |
| Name3 | Q3 | |
| Name4 | Q3 | |
| Name5 | Q3 | |
And so on....
目前我正在通过在新 sheet 的单元格 A1 中一遍又一遍地排列第一列来执行此操作,例如:
= {FILTER(Input!A:A,Input!A:A<>"");FILTER(Input!A:A,Input!A:A<>"");FILTER(Input!A:A,Input!A:A<>"");FILTER(Input!A:A,Input!A:A<>"");FILTER(Input!A:A,Input!A:A<>"");
FILTER(Input!A:A,Input!A:A<>"");FILTER(Input!A:A,Input!A:A<>"");FILTER(Input!A:A,Input!A:A<>"");FILTER(Input!A:A,Input!A:A<>"");FILTER(Input!A:A,Input!A:A<>"")};
然后在单元格 B2 中像这样排列所有列:
={FILTER(Input!B:B,Input!A:A<>"");FILTER(Input!C:C,Input!A:A<>"");FILTER(Input!D:D,Input!A:A<>"");FILTER(Input!E:E,Input!A:A<>"");FILTER(Input!F:F,Input!A:A<>"");
FILTER(Input!G:G,Input!A:A<>"");FILTER(Input!H:H,Input!A:A<>"");FILTER(Input!I:I,Input!A:A<>"");FILTER(Input!J:J,Input!A:A<>"");FILTER(Input!K:K,Input!A:A<>"");}
我有一个公式,我已向下拖动 C 列以找到数组中的 header 行并将它们复制下来以获取所有名称。
由于我有数百列问题,这些数组公式非常庞大。有没有一种更简单的方法,只需用某种矩阵引用所有列即可?
感谢任何帮助。
我有一个用于此类任务的示例脚本。它可以用作自定义公式:
=unpivotTable(false, B1, B2, B3)
其中
false
使用当前文件
B1
持有第一个 header 范围:Sheet1!A1
B2
保持第二个 header 范围:Sheet1!B1:Z1
B3
为旋转列保留 headers:Question,%
如果我的剧本适合你,请试试:
Sample file 探索。
我正在将 csv 数据拉入 Google Spreadsheet,其中 A 列垂直名称 运行,第 1 行水平问题 运行。有某些列中的分数和其他列中的分数是空白的。像这样:
| | Q1 | Q2 | Q3 | Q4 | Q5 | Q6 | Q7 |
|-------|-----|-----|----|-----|-----|----|-----|
| Name1 | ##% | ##% | | ##% | ##% | | ##% |
| Name2 | ##% | ##% | | ##% | ##% | | ##% |
| Name3 | ##% | ##% | | ##% | ##% | | ##% |
| Name4 | ##% | ##% | | ##% | ##% | | |
| Name5 | ##% | ##% | | ##% | ##% | | |
我想构建一个公式,将每个列的分数与名称列和 header 列匹配成 3 列,无论天气如何,单元格中有任何值。我想要一个名称列、一个问题标题列和一个分数列,如下所示:
| Name1 | Q1 | ##% |
| Name2 | Q1 | ##% |
| Name3 | Q1 | ##% |
| Name4 | Q1 | ##% |
| Name5 | Q1 | ##% |
| Name1 | Q2 | ##% |
| Name2 | Q2 | ##% |
| Name3 | Q2 | ##% |
| Name4 | Q2 | ##% |
| Name5 | Q2 | ##% |
| Name1 | Q3 | ##% |
| Name2 | Q3 | |
| Name3 | Q3 | |
| Name4 | Q3 | |
| Name5 | Q3 | |
And so on....
目前我正在通过在新 sheet 的单元格 A1 中一遍又一遍地排列第一列来执行此操作,例如:
= {FILTER(Input!A:A,Input!A:A<>"");FILTER(Input!A:A,Input!A:A<>"");FILTER(Input!A:A,Input!A:A<>"");FILTER(Input!A:A,Input!A:A<>"");FILTER(Input!A:A,Input!A:A<>"");
FILTER(Input!A:A,Input!A:A<>"");FILTER(Input!A:A,Input!A:A<>"");FILTER(Input!A:A,Input!A:A<>"");FILTER(Input!A:A,Input!A:A<>"");FILTER(Input!A:A,Input!A:A<>"")};
然后在单元格 B2 中像这样排列所有列:
={FILTER(Input!B:B,Input!A:A<>"");FILTER(Input!C:C,Input!A:A<>"");FILTER(Input!D:D,Input!A:A<>"");FILTER(Input!E:E,Input!A:A<>"");FILTER(Input!F:F,Input!A:A<>"");
FILTER(Input!G:G,Input!A:A<>"");FILTER(Input!H:H,Input!A:A<>"");FILTER(Input!I:I,Input!A:A<>"");FILTER(Input!J:J,Input!A:A<>"");FILTER(Input!K:K,Input!A:A<>"");}
我有一个公式,我已向下拖动 C 列以找到数组中的 header 行并将它们复制下来以获取所有名称。
由于我有数百列问题,这些数组公式非常庞大。有没有一种更简单的方法,只需用某种矩阵引用所有列即可?
感谢任何帮助。
我有一个用于此类任务的示例脚本。它可以用作自定义公式:
=unpivotTable(false, B1, B2, B3)
其中
false
使用当前文件B1
持有第一个 header 范围:Sheet1!A1
B2
保持第二个 header 范围:Sheet1!B1:Z1
B3
为旋转列保留 headers:Question,%
如果我的剧本适合你,请试试:
Sample file 探索。