У меня есть два столбца, один со всеми элементами в наборе, а другой с элементами, которые у меня есть в данный момент. Я хотел бы сравнить их, а для совпадающих результатов добавить немного текста, если они совпадают. Вот пример.
Таким образом, в этом примере столбец A — это заданное число, столбец B — заданные значения, столбец C — это то, что у меня есть в настоящее время, а столбец D — ожидаемый результат.
Итак, я хочу сравнить B с C, и если есть совпадающие имена, то я хочу, чтобы B добавил это <img src='tick.svg'>
к совпадающему имени.
Получил некоторую помощь, работая над этим со следующей функцией:
=ARRAYFORMULA(TEXTJOIN("<br />
 ", 1, REGEXREPLACE(TRIM(IFERROR(SPLIT(B2, "<br />
"))),
TEXTJOIN("|", 1, IF(REGEXMATCH(TRIM(IFERROR(SPLIT(B2, "<br />
"))),
TEXTJOIN("|", 1, TRIM(IFERROR(SPLIT(C2, "<br>"))))),
TRIM(IFERROR(SPLIT(B2, "<br />
"))), )), TRIM(IFERROR(SPLIT(B2, "<br />
")))&" <img src='tick.svg'>")))
Однако, когда у меня есть теги '<br>'
или '<br />
'
в ячейке, он будет пропускать или заменять определенные слова (например, ряд 2 цв Е). Кроме того, в настоящее время мне нужно перетащить его в следующую ячейку, было бы удобно, чтобы он применялся к каждой строке автоматически,
Примечание. Он ссылается на этот вопрос в веб-приложениях, который был решен, но имеет более широкий охват.
вставьте в ячейку Д2:
=ARRAYFORMULA(SUBSTITUTE(SUBSTITUTE(TRIM(TRANSPOSE(QUERY(TRANSPOSE(SUBSTITUTE(IF(ISNUMBER(
QUERY(QUERY(IFERROR(SPLIT(IF(IF(REGEXMATCH(TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(
TRANSPOSE(IFERROR(IF(SPLIT(SUBSTITUTE(B2:B, " <br />
", ","), ",")<>"", "♠"&A2:A&"♦"&
TRIM(IFERROR(SPLIT(SUBSTITUTE(B2:B, " <br />
", ","), ","))), )))
,,999^99)),,999^99), "♠"))),SUBSTITUTE(TRIM(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IFERROR(IF(
SPLIT(C2:C, ",")<>"", A2:A&"♦"&TRIM(IFERROR(SPLIT(C2:C, ","))), ))),,999^99)),,999^99))
, " ", "|")), TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IFERROR(IF(
SPLIT(SUBSTITUTE(B2:B, " <br />
", ","), ",")<>"", "♠"&A2:A&"♦"&TRIM(IFERROR(SPLIT(
SUBSTITUTE(B2:B, " <br />
", ","), ","))), ))),,999^99)),,999^99),
"♠")))&" - CHECK", )<>"", IF(REGEXMATCH(TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
IFERROR(IF(SPLIT(SUBSTITUTE(B2:B, " <br />
", ","), ",")<>"", "♠"&A2:A&"♦"&TRIM(IFERROR(
SPLIT(SUBSTITUTE(B2:B, " <br />
", ","), ","))), )))
,,999^99)),,999^99), "♠"))),SUBSTITUTE(TRIM(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IFERROR(IF(
SPLIT(C2:C, ",")<>"", A2:A&"♦"&TRIM(IFERROR(SPLIT(C2:C, ","))), ))),,999^99)),,999^99)),
" ", "|")), TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IFERROR(IF(
SPLIT(SUBSTITUTE(B2:B, " <br />
", ","), ",")<>"", "♠"&A2:A&"♦"&TRIM(IFERROR(SPLIT(
SUBSTITUTE(B2:B, " <br />
", ","), ","))), ))),,999^99)),,999^99),
"♠")))&" - CHECK", ), TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IFERROR(IF(
SPLIT(SUBSTITUTE(B2:B, " <br />
", ","), ",")<>"", "♠"&A2:A&"♦"&TRIM(IFERROR(SPLIT(
SUBSTITUTE(B2:B, " <br />
", ","), ","))), ))),,999^99)),,999^99),
"♠")))), "♦")), "select count(Col1) where Col1 is not null group by Col1 pivot Col2", 0),
"offset 1", 0)), INDEX(QUERY(IFERROR(SPLIT(IF(IF(REGEXMATCH(TRIM(TRANSPOSE(SPLIT(QUERY(
TRANSPOSE(QUERY(TRANSPOSE(IFERROR(IF(SPLIT(SUBSTITUTE(B2:B, " <br />
", ","), ",")<>"",
"♠"&A2:A&"♦"&TRIM(IFERROR(SPLIT(SUBSTITUTE(B2:B, " <br />
", ","), ","))), )))
,,999^99)),,999^99), "♠"))),SUBSTITUTE(TRIM(QUERY(TRANSPOSE(QUERY(
TRANSPOSE(IFERROR(IF(SPLIT(C2:C, ",")<>"", A2:A&"♦"&TRIM(IFERROR(SPLIT(C2:C, ","))), )))
,,999^99)),,999^99)), " ", "|")), TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
IFERROR(IF(SPLIT(SUBSTITUTE(B2:B, " <br />
", ","), ",")<>"", "♠"&A2:A&"♦"&TRIM(IFERROR(
SPLIT(SUBSTITUTE(B2:B, " <br />
", ","), ","))), ))),,999^99)),,999^99), "♠")))&
" <img src='tick.svg'>", )<>"", IF(REGEXMATCH(TRIM(TRANSPOSE(SPLIT(QUERY(
TRANSPOSE(QUERY(TRANSPOSE(IFERROR(IF(SPLIT(SUBSTITUTE(B2:B, " <br />
", ","), ",")<>"",
"♠"&A2:A&"♦"&TRIM(IFERROR(SPLIT(SUBSTITUTE(B2:B, " <br />
", ","), ","))), )))
,,999^99)),,999^99), "♠"))),SUBSTITUTE(TRIM(QUERY(TRANSPOSE(QUERY(
TRANSPOSE(IFERROR(IF(SPLIT(C2:C, ",")<>"", A2:A&"♦"&TRIM(IFERROR(SPLIT(C2:C, ","))), )))
,,999^99)),,999^99)), " ", "|")), TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
IFERROR(IF(SPLIT(SUBSTITUTE(B2:B, " <br />
", ","), ",")<>"", "♠"&A2:A&"♦"&TRIM(IFERROR(
SPLIT(SUBSTITUTE(B2:B, " <br />
", ","), ","))), ))),,999^99)),,999^99), "♠")))&
" <img src='tick.svg'>", ), TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(
TRANSPOSE(IFERROR(IF(SPLIT(SUBSTITUTE(B2:B, " <br />
", ","), ",")<>"", "♠"&A2:A&"♦"&
TRIM(IFERROR(SPLIT(SUBSTITUTE(B2:B, " <br />
", ","), ","))), )))
,,999^99)),,999^99), "♠")))), "♦")), "select count(Col1) where Col1 is not null group by Col1
pivot Col2", 0), 1, ), ), " ", "♂")),,999^99))), " ", " <br />
 "), "♂", " "))
Объяснение было бы очень хорошим, что это делает?