我想用多个字符串选项替换单元格列表中的一个重复出现的字符串,以接收所有可能组合的列表。
为了更好地理解,我为您准备了一张纸: https://docs.google.com/spreadsheets/d/1SKvwWIE9LqM9pYZ90r68h3Sl_Bl8Keid21Y0ukokqUM/edit?usp=sharing
在此示例中,我有一个表达式列表(A2:A),其中都包含单词“ next”,我希望将其替换为所有可用选项(B2:B),以创建所有可能组合的列表(C2:C)
我知道,为了创建A2:A和B2:B的所有可能组合,我可以使用: = ArrayFormula(transpose(split(rept(concatenate(A2:A&char(9)),counta(B2:B)),char(9))) &“”&transpose(split(concatenate(rept(B2:B&char(9),counta(A2:A))),char(9))))
答案 0 :(得分:0)
您想要做的是查找并替换。这就是您想要的:
Per3WithUValuesOnly = COUNT(CASE WHEN Per3 = 'U' THEN 1 END)
短语=ARRAYFORMULA(
REPLACE( TRANSPOSE( SPLIT( REPT( CONCATENATE(A2:A & CHAR(9)), COUNTA(B2:B) ),
CHAR(9)
)
),
FIND( "next", TRANSPOSE( SPLIT( REPT( CONCATENATE(A2:A & CHAR(9)),
COUNTA(B2:B)
),
CHAR(9)
)
)
),
4,
TRANSPOSE( SPLIT( CONCATENATE( REPT( B2:B & CHAR(9), COUNTA(A2:A) ),
CHAR(9)
),
CHAR(9)
)
)
)
)
创建一个列,该列重复列A中的项目与列B中的项目的次数相同。此模式一遍又一遍地重复整个列表。我称这个为TRANSPOSE( SPLIT ( REPT( CONCATENATE(A2:A & CHAR(9)), COUNTA(B2:B) ), CHAR(9) ))
。
短语PHRASE1
创建一列,该列重复B列中的项目的次数与A列中存在项目的次数相同。此模式一遍又一遍地重复每个项目。我称这个为TRANSPOSE( SPLIT( CONCATENATE( REPT( B2:B & CHAR(9), COUNTA(A2:A)), CHAR(9) ), CHAR(9) ))
。
现在您有两个大小相等的数组。目的是在第一个数组中找到单词 next 并将其替换为第二个数组中的单词。为了找到单词 next ,我使用了PHRASE2
。这为我提供了替换阶段的起点。我们称之为FIND("next", PHRASE1)
。
最后,替换很简单:START
。这就是您在上面的代码中看到的。
我已经对此进行了测试,并且可以正常工作。