如何防止TRANSPOSE范围内的更新搞乱其他工作表上的标题顺序?

时间:2016-04-04 22:27:57

标签: google-apps-script google-sheets

使用TRANSPOSE sheet1 上的列中填充 sheet2 上的标题时,当 sheet1 更新时,您能否阻止 sheet2 中的数据与标题不同步的问题。

我想不出任何优雅的解决方案,并且仍然希望能够直接在 sheet2 中添加数据,以及更新信息的能力在 sheet1 上。

我考虑将转置粘贴到 sheet2 中,因此它是静态的,但后来我从 sheet1 中丢失了任何更新我觉得要确定需要做出哪些改变将更加困难。

这是example spreadsheet

在这张表中,我用来自密歇根州的啤酒厂填充了它。 然后我用转置标题和啤酒风格填充 sheet2 。 然后我随机给每个检查。

然后,在删除所有已关闭的密歇根啤酒厂之前,我使用静态 sheet2 数据创建了一个缓存副本。

您可以看到 sheet2 上的信息无效。

我希望阻止这一点。

我无法通过公式单独看到这种方法。我认为可能有一个脚本可以像Transpose一样复制列,但是当列标题移动,消失或添加时,还会在 sheet2 中移动数据。

1 个答案:

答案 0 :(得分:1)

您要做的是在电子表格中使用交叉表来管理用户输入和存储数据。正如你已经发现的那样,这可能会在"标题"在源中被更改。

更好的方法是使用简单的表来存储数据。在提供的示例中,解决方案是为 Sheet1 添加每种啤酒的列以存储"检查"。

附注:由于密歇根州有许多啤酒厂,您可以通过使用过滤器并冻结一两行和一列来改善输入/数据存储表的电子表格可用性。

然后,要创建交叉表报表,请在新工作表中使用以下公式:

单元格B1:列标题

=transpose(Sheet1!$A$2:$A$26)

单元格A2:行标题

=transpose(Sheet1!$C$1:$H$1)

CELL B2:交叉选项卡值

=ArrayFormula(vlookup(B1:Z1,Sheet1!$A$2:$H$26,Match(A2:A7,Sheet1!$C$1:$H$1,0)+2,0))

由于单元格B2包含数组公式,如果您编辑任何所需的单元格以显示结果,您将收到如下错误

  

错误
  数组结果未展开,因为它会覆盖引用中的数据。

因此,这将让您记住,您应该在源代码处编辑数据,例如,如果它是 Sheet1