google-apps-script - 如何从连字符分隔的列表中提取文本,单元格内可能有新行(因此有多个条目)?
问题描述
我有一个包含足球赛程的列,主队和客队用连字符隔开。一个单元内可能有多个固定装置,这些将由单元内的新行完成。
我想做的是将主队和客队分成新的单元。我可以做主队:
=LEFT(B2, SEARCH("-",B2,1)-1)
但这并没有考虑单元格内的新行。
我怎样才能从一个单元格中获取主队和客队(包括在新行上的条目)?
解决方案
样本公式:
=ARRAYFORMULA(
TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(FILTER(A2:A&char(10),A2:A<>""),,2^99),char(10))),"-")))
结果:
Sevilla Sociedad
Leicester Newcastle
Napoli Brescia
Leicester Newcastle
Leicester Newcastle
Napoli Brescia
每个团队在一个单独的单元格中
示例公式#2:
=FILTER(REGEXEXTRACT(A2:A,REPT("([^-\n]*) [-v]s? ([^-\n]*)\n?",1+LEN(A2:A)-LEN(SUBSTITUTE(A2:A,char(10),)))),A2:A<>"")
结果:
Sevilla Sociedad
Leicester Newcastle
Napoli Brescia Leicester Newcastle
Leicester Newcastle Napoli Brescia Espanyol Valladolid
Napoli Brescia Leicester Newcastle
相应行的团队
示例公式#3
=FILTER(SPLIT(REGEXREPLACE(A2:A,
REPT("([^-\n]*) [-v]s? ([^-\n]*)\n?",1+LEN(A2:A)-LEN(SUBSTITUTE(A2:A,char(10),))),
VLOOKUP(1+LEN(A2:A)-LEN(SUBSTITUTE(A2:A,char(10),)),E2:F4,2,)),"-"),A2:A<>"")
1 $1-$2
2 $1
$3-$2
$4"
3 $1
$3
$5-$2
$4
$6
此帮助表是正则表达式替换:$1, $2, $3...
要返回的团队编号。
推荐阅读
- spss - 在 SPSS 中系统地重命名变量(没有 Python)
- ios - 将“String”类型的值转换为预期的参数类型“Int”
- javascript - Javascript 横幅.innerHTML += ""不工作
- java - 从内部函数获取变量
- machine-learning - SageMaker 在部署时无法为容器提取模型数据存档 tar.gz
- javascript - Javascript:停止直到按下 RETURN 键
- android - 无法在 Facebook 中分享照片
- javascript - 从数组Javascript中删除多个对象
- apache-spark - Pyspark One 热编码
- c# - 使用 If 多个条件创建 JSchema 的 C# 语法