如何在后续计算中使用数组公式的输出?

How to use the output of an array formula in subsequent calculations?

我有一个 google sheet,我在其中获取 Youtube 视频的时长如下:

=REGEXEXTRACT(IMPORTXML(A2,"//*[@itemprop='duration']/@content"),"PT(\d+)M(\d+)S")

这为我提供了两个具有两个值(分和秒)的单元格。但是,我想对它们进行进一步的计算(将分钟乘以 60 并加上秒)。我如何 'access' 函数中的这些值(如果有的话)?

  • 您想检索以秒为单位的持续时间。
  • 您想使用电子表格的内置公式来实现。

如果我的理解是正确的,这些示例公式怎么样?

示例公式:

=VALUE(REGEXREPLACE(IMPORTXML(A2,"//*[@itemprop='duration']/@content"),"PT(\d+)M(\d+)S","00::")*24*3600)
  • 在此示例公式中,单元格 "A2" 具有 URL,例如 https://www.youtube.com/watch?v=###
  • 检索到的持续时间转换为时间格式,检索值为秒。
    • 比如当IMPORTXML(A2,"//*[@itemprop='duration']/@content")returnsPT1M10S,VALUE(REGEXREPLACE("PT1M10S","PT(\d+)M(\d+)S","00::")*24*3600)returns70.
    • 即使时间超过1小时,例如返回PT123M45S这样的值。和 =VALUE(REGEXREPLACE("PT123M45S","PT(\d+)M(\d+)S","00::")*24*3600) returns 7425.

参考文献:

如果我误解了您的问题而这不是您想要的结果,我深表歉意。

已添加:

作为其他模式,如果你想使用=REGEXEXTRACT(IMPORTXML(A2,"//*[@itemprop='duration']/@content"),"PT(\d+)M(\d+)S"),下面的公式怎么样?

示例公式:

=QUERY(ARRAYFORMULA(VALUE(REGEXEXTRACT(IMPORTXML(A2,"//*[@itemprop='duration']/@content"),"PT(\d+)M(\d+)S"))),"SELECT Col1*60+Col2 label Col1*60+Col2 ''")
  • 在此公式中,使用并计算了数组中的值。

或者像这样:

=TEXT(VALUE("00:"&SUBSTITUTE(REGEXREPLACE(
 IMPORTXML(A1, "//*[@itemprop='duration']/@content"), "PT|S", ), "M",":")), "[ss]")*1

或最短的:

=REGEXREPLACE(IMPORTXML(A1,"//*[@itemprop='duration']/@content"), 
 "PT(\d+)M(\d+)S", "00::")*86400