如何在后续计算中使用数组公式的输出?
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
我有一个 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)
returns7425
.
- 比如当
参考文献:
如果我误解了您的问题而这不是您想要的结果,我深表歉意。
已添加:
作为其他模式,如果你想使用=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