То, что вы хотите сделать, это найти и заменить.Это делает то, что вы хотите:
=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)
)
)
)
)
Объяснение
Фраза TRANSPOSE( SPLIT ( REPT( CONCATENATE(A2:A & CHAR(9)), COUNTA(B2:B) ), CHAR(9) ))
создает столбец, который повторяет элементы в столбце A столько раз, сколько элементов в столбце B.повторяет весь список снова и снова.Я назову это PHRASE1
.
Фраза TRANSPOSE( SPLIT( CONCATENATE( REPT( B2:B & CHAR(9), COUNTA(A2:A)), CHAR(9) ), CHAR(9) ))
создает столбец, который повторяет элементы в столбце B столько раз, сколько элементов в столбце A. Шаблон повторяет каждый элемент снова и снова.Я назову это PHRASE2
.
Теперь у вас есть два массива одинакового размера.Цель состоит в том, чтобы найти слово next в первом массиве и заменить его словом во втором массиве.Чтобы найти слово далее , я использовал FIND("next", PHRASE1)
.Это дает мне отправную точку для фазы замены.Давайте назовем это START
.
Наконец, замена проста: REPLACE(PHRASE1, START, 4, PHRASE2)
.Это то, что вы видите в коде выше.
Я проверил это, и оно работает.