【问题标题】:Google Sheet hide formula in frozen title barGoogle Sheet 在冻结的标题栏中隐藏公式
【发布时间】:2019-09-27 17:42:03
【问题描述】:

有没有办法将公式定位到它下面的单元格?我有一个复杂的公式,可以跨多列和多行转置和构建结果。我喜欢在数据中进行排序和过滤,因此公式最终会四处移动,因为它位于数据的第一个单元格中。

例如,第 1 行被冻结并具有每列的标题。我在 A2 中有公式,数据一直填充到 A 和 B、C 和 D 中。如果我对 A 列进行排序或过滤,公式会移动。我想将公式向上移动到标题栏(A1)中,这样它就保持在同一个地方并且永远不会移动。但我希望它仍然从 A2 开始填充数据。然后我还希望标题单元格(A1)仍然显示列标题的文本而不是公式....所以基本上将公式隐藏在单元格的背景中。这可以吗?

编辑:

https://docs.google.com/spreadsheets/d/1MbvMGhrVNhXGfMi4Q5VjwODLgDpKtXtMj0PtKre3Q2U/edit?usp=sharing

添加了一个示例以获得更好的视觉效果,使我的问题更清晰。基本上我现在拥有的是填充 A2:C 的单元格 A2“Data1”中的公式。它将根据需要在垂直和水平方向填充和转置以显示数据。这会自动填充单元格。我想将公式本身向上移动到 A1(“标题 1”),但仍然让单元格读取“标题 1”。当我这样做时,我会丢失 Data1、Data2、Data3,因为它将公式的整个结果向上移动了 1 行。我想强制将结果向下推 1 行,以使结果保持不变,但公式与冻结栏相关。

【问题讨论】:

    标签: google-sheets array-formulas google-sheets-formula google-sheets-query


    【解决方案1】:

    基本上,你要求这个:

    ={"header for A", "header for B"; ARRAYFORMULA(A2:B)}
    

    请注意,为避免数组错误,即使""为空,您也需要为每列定义一个标题


    ={""; ARRAYFORMULA(IFERROR(SUBSTITUTE(SPLIT(TRIM(
        TRANSPOSE(QUERY(TRANSPOSE(SUBSTITUTE(IF(LEN($A$3:$L), {
     IF(TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99))=IFERROR(VLOOKUP(
        TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99)),
        TRANSPOSE(QUERY(TRANSPOSE('T1'!$A$3:$L),,999^99)),1,0)), "T1", ),
     IF(TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99))=IFERROR(VLOOKUP(
        TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99)),
        TRANSPOSE(QUERY(TRANSPOSE('B1'!$A$3:$L),,999^99)),1,0)), "B1", ),
     IF(TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99))=IFERROR(VLOOKUP(
        TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99)),
        TRANSPOSE(QUERY(TRANSPOSE('T2'!$A$3:$L),,999^99)),1,0)), "T2", ),
     IF(TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99))=IFERROR(VLOOKUP(
        TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99)),
        TRANSPOSE(QUERY(TRANSPOSE('B2'!$A$3:$L),,999^99)),1,0)), "B2", ),
     IF(TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99))=IFERROR(VLOOKUP(
        TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99)),
        TRANSPOSE(QUERY(TRANSPOSE('M1'!$A$3:$L),,999^99)),1,0)), "M1", ),
     IF(TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99))=IFERROR(VLOOKUP(
        TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99)),
        TRANSPOSE(QUERY(TRANSPOSE('B3'!$A$3:$L),,999^99)),1,0)), "B3", ),
     IF(TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99))=IFERROR(VLOOKUP(
        TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99)),
        TRANSPOSE(QUERY(TRANSPOSE('M2'!$A$3:$L),,999^99)),1,0)), "M2", ),
     IF(TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99))=IFERROR(VLOOKUP(
        TRANSPOSE(QUERY(TRANSPOSE($A$3:$L),,999^99)),
        TRANSPOSE(QUERY(TRANSPOSE('B4'!$A$3:$L),,999^99)),1,0)), "B4", )}, ),
     " ", "♦")),,999^99))), " "), "♦", " ")))}
    

    注意:如果您收到ARRAY LITERAL error,则需要添加更多""
    like:={"", "", "", ""; ARRAYF....

    【讨论】:

    • 我认为我的问题太模糊了,所以我完全复制了我对公式的内容。这是我相信你可能已经为我写过一段时间的东西,而且效果很好。基本上粉红色单元格中的公式填充粉红色单元格中的数据+所有黄色单元格。它真的很好用。我想将公式移动到紫色单元格,因此公式永远不会移动,但我希望公式的结果仍然从粉红色单元格开始并填充所有黄色。
    • 基本上当我将粉色单元格公式移动到紫色时,结果开始显示在紫色单元格中。我希望紫色单元格显示“标题 1”,但其中也有公式,但结果保留在粉色 + 黄色单元格中。
    • 只是想知道我的问题是否更清楚了,因为我用一个更好的例子更新了电子表格......
    猜你喜欢
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    相关资源
    最近更新 更多