Google apps script 如何从一个以连字符分隔的列表中提取文本,并且在一个单元格中可能有新行(因此有多个条目)?
我有一个专栏,包含主客场球队用连字符分隔的足球比赛。一个单元内可能有多个装置,这些装置将由单元内的新线完成 我想做的是把主客场球队分成新的小组。我可以在主队中使用:Google apps script 如何从一个以连字符分隔的列表中提取文本,并且在一个单元格中可能有新行(因此有多个条目)?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一个专栏,包含主客场球队用连字符分隔的足球比赛。一个单元内可能有多个装置,这些装置将由单元内的新线完成 我想做的是把主客场球队分成新的小组。我可以在主队中使用: =LEFT(B2, SEARCH("-",B2,1)-1) 但这并没有考虑细胞内的新细胞系 我怎样才能从一个牢房里抓到主客场球队(包括新线上的参赛者) 演示:您可以使用一些AppsScript代码来帮助您 并粘贴此代码: function splitTeams(cellData) { return cellData.split
=LEFT(B2, SEARCH("-",B2,1)-1)
但这并没有考虑细胞内的新细胞系
我怎样才能从一个牢房里抓到主客场球队(包括新线上的参赛者)
演示:您可以使用一些AppsScript代码来帮助您 并粘贴此代码:
function splitTeams(cellData) {
return cellData.split('-');
}
function hasOddIndex(item, index) {
return index%2==0;
}
function hasEvenIndex(item, index) {
return index%2!=0;
}
function getHomeTeams(cellData) {
var homeTeams = [];
homeTeams = splitTeams(cellData).filter(hasOddIndex);
return homeTeams.join('\n');
}
function getAwayTeams(cellData) {
var awayTeams = [];
awayTeams = splitTeams(cellData).filter(hasEvenIndex);
return awayTeams.join('\n');
}
现在,您可以在电子表格中使用函数=getHomeTeam()
和=getAwayTeam()
希望这有帮助 您可以使用一些AppsScript代码来帮助您 并粘贴此代码:
function splitTeams(cellData) {
return cellData.split('-');
}
function hasOddIndex(item, index) {
return index%2==0;
}
function hasEvenIndex(item, index) {
return index%2!=0;
}
function getHomeTeams(cellData) {
var homeTeams = [];
homeTeams = splitTeams(cellData).filter(hasOddIndex);
return homeTeams.join('\n');
}
function getAwayTeams(cellData) {
var awayTeams = [];
awayTeams = splitTeams(cellData).filter(hasEvenIndex);
return awayTeams.join('\n');
}
现在,您可以在电子表格中使用函数=getHomeTeam()
和=getAwayTeam()
希望这有帮助 样品配方:
=数组公式(
修剪(拆分(转置(拆分(查询(过滤器(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(替换(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
=过滤器(拆分)(REGEXREPLACE(A2:A,
报告(([^-\n]*)[-v]s?([^-\n]*)\n?),1+LEN(A2:A)-LEN(替换(A2:A,char(10),),
VLOOKUP(1+LEN(A2:A)-LEN(替换(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…
是要返回的团队编号。示例公式:
=数组公式(
修剪(拆分(转置(拆分(查询(过滤器(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(替换(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
=过滤器(拆分)(REGEXREPLACE(A2:A,
报告(([^-\n]*)[-v]s?([^-\n]*)\n?),1+LEN(A2:A)-LEN(替换(A2:A,char(10),),
VLOOKUP(1+LEN(A2:A)-LEN(替换(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…
是要返回的团队编号。Sweet。如何设置同一单元格中的主团队名称,然后再次在同一单元格中渲染?i、 e.第四栏,将那不勒斯和莱斯特放在同一个单元格中。是的,可能的话,请查看编辑。正则表达式的替换是一个棘手的部分,为了简化最终的公式,我制作了一个helper表。如何设置同一单元格中的主团队名称,然后再次在同一单元格中渲染?i、 e.第四栏,将那不勒斯和莱斯特放在同一个单元格中。是的,可能的话,请查看编辑。正则表达式的替换是一个棘手的部分,为了简化最终的公式,我制作了一个helper表。