【问题标题】:Apply formula to the entire column将公式应用于整个列
【发布时间】:2014-09-16 10:49:34
【问题描述】:

我正在尝试使用以下公式将 A 列中的所有邮政编码重新编码到 B 列:

=TEXT(A1,"00000")

像这样:

我希望使用上面的公式转换 B 列中的每个单元格。但是我有40000多行,所以不可能把公式往下拉,应用到整个B列。

有什么公式可以用来解决这个问题吗?

【问题讨论】:

  • 也可能对某些人有用:要忽略没有公式所需数据的单元格并将它们留空,请使用如下 if 语句:=IF(somecell<>"",yourformula,"")

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


【解决方案1】:

我认为这是一个更新的功能,但它对我有用:

双击高亮单元格右下角的方块会复制高亮单元格的公式。

希望对你有帮助。

【讨论】:

  • 这是问题的正确答案。双击“拖动指示器”(右下角)会将公式复制到所有单元格。确保首先清除列数据,并且仅将公式应用于一个。上面带有“ArrayFormula”的答案似乎能够将多个单元格应用于一个公式,这不是 OP 想要的。
  • 感谢分享。它对我来说很好,但我更喜欢使用 ArrayFormula 函数,因为与您的方法不同,它基本上会将完全相同的公式复制到每个单元格,ArrayFormula 将更加动态并且可以更轻松地编程。
  • @ThanasisKapelonis,您不需要清除数据,您只需双击拖动指示器,它将公式应用于所有后续行,其中每个占位符中的数据在该行的相应列中可用。它将在数据丢失的地方停止。如布雷特萨顿所示
  • 我有太多数据无法回答这个问题,它失败了,我必须重新加载页面。
  • 只有当您正在填充的列旁边的列中有数据时,此双击似乎才有效......如果有例如中间有一个空的“间隔”列,它只是默默地失败了。
【解决方案2】:

看起来其他一些答案已经过时了,但对我来说这很有效:

  1. 单击包含文本/公式的单元格进行复制
  2. Shift+单击要复制到的最后一个单元格
  3. Ctrl + 回车

(请注意,如果目标单元格不为空,则会替换文本)

【讨论】:

  • 在 Mac 上与 CMD + Enter 配合使用。
  • 这是 2019 年的最佳答案。
  • 这个答案适用于更广泛的公式,应该是公认的答案
  • 一次只能处理一列,但效果很好。如果您想快速完成很多事情,Ctrl+Shift+Down 将一直选择到当前列的底部,Ctrl+Enter 如您所说,然后是Up, Right, [Down](如果您不需要最后一个'在第 1 行)以进入下一列。
  • 2021 年唯一有效的答案(Mac 的 cmd + Enter)。谢谢你。
【解决方案3】:

我认为你很幸运。请尝试进入B1:

=text(A1:A,"00000")

(非常相似!)但在按 Enter 之前按 Ctrl+Shift+Enter

【讨论】:

  • 当我尝试 Ctrl+Shift+Enter 时,它只是用 ArrayFormula(…) 包围我的公式。
  • @pnuts 你的意思是什么?这对我也不起作用。继续获取 ArrayFormula(
  • @pnuts 也许这在去年发生了变化,但是 ArrayFormula 没有将公式扩展到 B 列作为 OP 中的图像。对我来说,它只是填充所选单元格的值。
  • 感谢分享。对我来说效果很好。我认为人们可能缺少的一件事是我与自己挣扎了几秒钟的 B1:B 部分。您必须在公式中将单列(例如 B1)替换为 B1:B 列数组,才能使其正常工作。到目前为止,这是最好的方法,也是最有活力的。
  • 这对我也有用。感谢 cmets 的澄清。让我感到困惑的另一件事是下面的单元格必须都是空的。我想我以为它们会被覆盖。
【解决方案4】:

这适用于那些想要快速覆盖列单元格(无需剪切和复制)的人。这与双击单元格框相同,但与双击不同的是,第一次尝试后仍然有效。

  1. 选择您要向下复制的列单元格
  2. Ctrl+Shift+选择下面的单元格
  3. Ctrl+Enter将第一个单元格的内容复制到下面的单元格中

奖励:

转到最底部内容(仔细检查副本)的快捷方式是 Ctrl+。要返回,您可以使用 Ctrl+ 但如果您的顶行被冻结,您还必须按几次 Enter

【讨论】:

  • 这是最直接的hack。谢谢!
  • 在 macOS 中将 Ctrl 替换为 Cmd 仍然可以使用,谢谢
【解决方案5】:

这对我有用:

  • 在第一个单元格中写入formula
  • Enter
  • 单击第一个单元格并按 Ctrl + Shift + down_arrow。这将选择工作表上使用的列中的最后一个单元格。
  • Ctrl + D。这将在剩余单元格中填充复制公式。

【讨论】:

    【解决方案6】:

    假设您想替换字符串数组中的某些内容,并且您不想在整个工作表上执行复制粘贴

    我们以这个为例:

    • “A”列中的字符串数组:{apple,banana,orange,...,avocado}
    • 您想将“a”的字符替换为“x”以具有:{xpple, bxnxnx, orxnge, ..., xvocado}

    要以简洁优雅的方式将此公式应用于整个列(数组),您可以:

    =ARRAYFORMULA(SUBSTITUE(A:A, "a", "x"))
    

    它也适用于二维数组,比方说:

    =ARRAYFORMULA(SUBSTITUE(A2:D83, "a", "x"))
    

    【讨论】:

      【解决方案7】:

      找到另一个解决方案:

      • 将公式应用于列的前 3 或 4 个单元格
      • Ctrl + C 最后一行中的公式(如果复制第一行将不起作用)
      • 点击列标题选择整列
      • Ctrl + V 将其粘贴到下面的所有单元格中

      【讨论】:

      • 这对我来说似乎比双击更可靠。谢谢!
      【解决方案8】:

      这样我就不会丢失我的有效答案:

      1. 选择要复制的单元格
      2. 选择列中的最后一个单元格
      3. CTRL+D

      【讨论】:

      • 不错!注意:第 2 步应该是 shift-click。
      【解决方案9】:

      对于 Mac:

      单击具有公式的第一个单元格,然后按 Ctrl + Shift + down_arrow。这将选择工作表上使用的列中的最后一个单元格。

      command + D.(不要使用 ctrl)这将在剩余的单元格中填充公式。

      【讨论】:

        【解决方案10】:

        您也可以使用 Ctrl+Shift+Down+D 将公式添加到列中的每个单元格。

        只需单击/突出显示要复制的公式/公式所在的单元格,然后按住 Ctrl+Shift+Down+D,您的公式就会添加到每个单元格中。

        【讨论】:

          【解决方案11】:

          要清楚,当您使用拖动指示器时,它只会将单元格值复制到列中,而给定行中的相邻单元格中有一个值。 一旦拖动操作看到相邻的单元格为空白,它将停止向下复制公式。

          .例如

          1,a,b
          2,a
          3,
          4,a
          

          如果上面是电子表格,则使用“b”单元格上的双击拖动指示器将填充第 2 行,但不会填充第 3 或第 4 行。

          【讨论】:

          • 如果您试图通过使用“双击拖动指示器”将公式应用于Excel中过滤集中的行,它将在每次行的序列号跳转时停止,即行不。 1, 2, 3 如果它们按顺序出现将适用于公式,但是如果没有行。 5 出现在行号之后。 3(由于过滤)然后行号。 5 不会得到应用的公式。在这种情况下,您必须从第 1 行的单元格中复制。 3 并将其粘贴到第 3 行。 5 然后用同样的双击。是的,Excel 糟透了。
          • 虽然这可能是解决问题的宝贵提示,但一个好的答案也可以证明解决方案。请edit 提供示例代码来说明您的意思。或者,请考虑将其写为评论。
          【解决方案12】:

          确切的公式是:

          =ArrayFormula(text(A1:A,"00000"))
          

          ArrayFormula 适用于多行(在上面的示例中,每一行),结果放置在具有公式的单元格中,并且其下方的单元格在同一列中。看起来好像相同的公式被复制到所有这些行中。

          如果该列中的任何单元格不为空,则它们不会被覆盖。相反,您会收到一条错误消息。

          为了节省自己的打字时间,您可以使用上面answer pnuts 中的技巧:

          键入:=text(A1:A,"00000"),然后按以下组合键:

          • 在 Windows 上:Ctrl+Shift+Enter

          • 在 MAC 上:Command+Shift+Enter

          这会将公式转换为 ArrayFormula

          按下组合键后,您需要按 Enter,才能实际应用转换后的公式。

          如果您的工作表包含标题行,并且您想从(例如)第 5 行开始应用公式,则可以改用 =text(A5:A,"00000")。

          此答案包含来自pnuts 的答案和LOAS 的评论的信息。

          【讨论】:

            【解决方案13】:

            嗯,另一个最简单最简单的方法是在我的文件中,行数超过 16000,这是一个非常大的数字。所以帮助我的步骤是:

            1. 选择写入公式的单元格。
            2. 然后转到NameBox(它是告诉活动单元格的框)。在我的例子中,它是写入公式的单元格(即 P2)。
            3. 然后在该单元格中输入您的活动单元格编号:您的最后一行 .例如我的专栏最后一行是16745公式是用P2写的。 所以写 P2:P16745,
            4. 在名称框中按 Enter 并宾果游戏整个区域,直到最后一行被选中。
            5 . 现在按 Ctrl+D(Windows)

            【讨论】:

              【解决方案14】:

              您可以通过双击要从中复制的单元格的右下角来填充该列(否则您将拖动框上的点),它将应用于整个列。

              注意:如果您应用了过滤器,或者下面的单元格中已经存在某些内容,这将不起作用。

              【讨论】:

              • 这是正确的,但是,您必须确保包含公式的单元格下方的单元格中没有数据。
              • 虽然这可能是解决问题的宝贵提示,但一个好的答案也可以证明解决方案。请edit 提供示例代码来说明您的意思。或者,请考虑将其写为评论。
              猜你喜欢
              • 2015-01-08
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-11-23
              相关资源
              最近更新 更多