如何在 Google 表格中使用数组公式


2023 年初,表格的 谷歌推出多项新功能 个,其中 8 个用于处理数组。使用这些函数,您可以将数组转换为行或列,从行或列创建新数组,或附加当前数组。

数组处理更加灵活,超越了基本的 ARRAYFORMULA 函数,让我们看看如何将这些数组函数与 Google 表格中的公式 一起使用。

提示:如果您也使用 Microsoft Excel,那么其中一些函数可能看起来很熟悉。

转换数组:TOROW 和 TOCOL

如果您的数据集中有一个数组想要转换为单行或单列,则可以使用 TOROW 和 TOCOL 函数。

每个函数的语法是相同的,TOROW(array,ignore,scan)和TOCOL(array,ignore,scan)其中只需要第一个参数对于两者。

  • 数组:要转换的数组,格式为“A1:D4”。
  • 忽略:默认情况下,不忽略任何参数 (0),但您可以使用 1 忽略空格,2 忽略错误,或 3 忽略空格和错误。
  • Scan:该参数决定如何读取数组中的值。默认情况下,该函数按行扫描或使用值 False,但如果您愿意,可以使用 True 按列扫描。
  • 让我们来看一些使用 TOROW 和 TOCOL 函数及其公式的示例。

    在第一个示例中,我们将获取数组 A1 到 C3,并使用默认参数和以下公式将其转换为一行:

    =TOROW(A1:C3)

    如您所见,数组现在排成一行。因为我们使用了默认的 scan参数,所以该函数从左到右(A、D、G)、向下读取,然后再次从左到右(B、E、H)读取,直到完成 - 扫描行。

    要按列而不是按行读取数组,我们可以使用 True作为 scan参数。我们将ignore参数留空。公式如下:

    =TOROW(A1:C3,,TRUE)

    现在您会看到该函数从上到下(A、B、C)、从上到下(D、E、F)、从上到下(G、H、I)读取数组。.

    TOCOL 函数的工作方式相同,但将数组转换为列。使用相同的范围(A1 到 C3),以下是使用默认参数的公式:

    =TOCOL(A1:C3)

    同样,使用 scan参数的默认值,该函数从左到右读取并提供结果。

    要按列而不是按行读取数组,请为 scan参数插入 True,如下所示:

    =TOCOL(A1:C3,,TRUE)

    现在您会看到该函数改为从上到下读取数组。

    从行或列创建新数组:CHOOSEROWS 和 CHOOSECOLS

    您可能想要从现有数组创建一个新数组。这使您可以创建一个仅包含另一个单元格区域中的特定值的新单元格区域。为此,您将使用 CHOOSEROWS 和 CHOOSECOLS Google 表格功能

    每个函数的语法相似,CHOOSEROWS (array, row_num, row_num_opt)CHOOSECOLS (array, col_num, col_num_opt),其中前两个参数是必需的对于两者。

    • 数组:现有数组,格式为“A1:D4”。
    • Row_numCol_num:要返回的第一行或第一列的编号。
    • Row_num_optCol_num_opt:您要返回的其他行或列的数字。 Google 建议您使用负数 从下往上返回行或从右到左返回列。
    • 让我们看一些使用 CHOOSEROWS 和 CHOOSECOLS 及其公式的示例。

      在第一个示例中,我们将使用数组 A1 到 B6。我们想要返回第 1、2 和 6 行中的值。公式如下:

      =CHOOSEROWS(A1:B6,1,2,6)

      如您所见,我们收到了这三行来创建新数组。

      再举一个例子,我们将使用相同的数组。这次,我们想要返回第 1、2 和 6 行,但 2 和 6 的顺序相反。您可以使用正数或负数来获得相同的结果。

      使用负数时,您可以使用以下公式:

      =CHOOSEROWS(A1:B6,1,-1,-5).

      解释一下,1 是返回的第一行,-1 是返回的第二行,即从底部开始的第一行,-5 是从底部开始的第五行。

      使用正数,您可以使用以下公式获得相同的结果:

      =CHOOSEROWS(A1:B6,1,6,2)

      CHOOSECOLS 函数的工作原理类似,只不过当您想要从列而不是行创建新数组时使用它。

      使用数组 A1 到 D6,我们可以使用以下公式返回第 1 列(A 列)和第 4 列(D 列):

      =CHOOSECOLS(A1:D6,1,4)

      现在我们有了只有这两列的新数组。

      作为另一个示例,我们将从第 4 列开始使用相同的数组。然后,我们首先将第 1 列和第 2 列与 2(B 列)相加。您可以使用正数或负数:

      =CHOOSECOLS(A1:D6,4,2,1)

      =CHOOSECOLS(A1:D6,4,-3,-4)

      正如您在上面的屏幕截图中看到的,使用单元格中的公式而不是公式栏中的公式,我们使用这两个选项都会收到相同的结果。

      注意:由于 谷歌建议使用负数 会颠倒结果的位置,因此如果您没有收到使用正数的正确结果,请记住这一点。

      换行以创建新数组:WRAPROWS 和 WRAPCOLS

      如果您想从现有数组创建一个新数组,但将每个列或行包含一定数量的值,则可以使用 WRAPROWS 和 WRAPCOLS 函数。

      每个函数的语法相同,WRAPROWS(范围、计数、填充)WRAPCOLS(范围、计数、填充),其中前两个参数是两者都需要。

      • 范围:要用于数组的现有单元格范围,格式为“A1:D4”。
      • 计数:每行或每列的单元格数量。
      • Pad:您可以使用此参数将文本或单个值放置在空单元格中。这将替换您在空白单元格中收到的 #N/A 错误。将文本或值包含在引号内。
      • 让我们来看一些使用 WRAPROWS 和 WRAPCOLS 函数及其公式的示例。.

        在第一个示例中,我们将使用单元格范围 A1 到 E1。我们将创建一个新的数组,将行包裹起来,每行包含三个值。公式如下:

        =WRAPROWS(A1:E1,3)

        如您所见,我们有一个具有正确结果的新数组,每行三个值。由于数组中有一个空单元格,因此会显示 #N/A 错误。对于下一个示例,我们将使用 pad参数将错误替换为文本“None”。公式如下:

        =WRAPROWS(A1:E1,3,”无”)

        现在,我们可以看到一个单词,而不是 Google 表格错误。

        WRAPCOLS 函数通过从现有单元格范围创建新数组来执行相同的操作,但它是通过换行列而不是行来实现的。

        在这里,我们将使用相同的数组(A1 到 E3),每列包含三个值:

        =WRAPCOLS(A1:E1,3)

        与 WRAPROWS 示例一样,我们收到了正确的结果,但由于单元格为空,我们也收到了错误。通过此公式,您可以使用 pad参数添加单词“Empty”:

        =WRAPCOLS(A1:E1,3,”空”)

        这个新数组用一个单词而不是错误看起来要好得多。

        组合创建新数组:HSTACK 和 VSTACK

        我们将看到的最后两个函数用于附加数组。使用 HSTACK 和 VSTACK,您可以将两个或多个单元格范围添加在一起以形成单个数组(水平或垂直)。

        每个函数的语法是相同的,HSTACK (range1, range2,…)和 VSTACK (range1, range2,…),其中只有第一个参数是必需的。但是,您几乎总是会使用第二个参数,它将另一个范围与第一个范围相结合。

        • Range1:要用于数组的第一个单元格范围,格式为“A1:D4”。
        • Range2,…:要添加到第一个单元格区域以创建数组的第二个单元格区域。您可以组合两个以上的单元格范围。
        • 让我们看一些使用 HSTACK 和 VSTACK 及其公式的示例。

          在第一个示例中,我们将使用以下公式将范围 A1 到 D2 与 A3 到 D4 组合起来:.

          =HSTACK(A1:D2,A3:D4)

          您可以看到我们的数据范围组合 组成了一个水平阵列。

          对于 VSTACK 函数的示例,我们组合了三个范围。通过以下公式,我们将使用范围 A2 到 C4、A6 到 C8 以及 A10 到 C12:

          =VSTACK(A2:C4,A6:C8,A10:C12)

          现在,我们有了一个数组,其中包含在单个单元格中使用公式的所有数据。

          轻松操作数组

          虽然您在某些情况下可以使用 数组公式 ,例如使用 SUM 函数或 IF 函数,但这些附加的 Google 表格数组公式可以节省您的时间。它们可以帮助您使用单个数组公式完全按照您的需要排列工作表。

          有关更多类似的教程,但使用非数组函数,请查看如何 使用 COUNTIFGoogle 表格中的 SUMIF 函数

          .

          相关文章:


          10.06.2023