Сравнение двух ячеек и добавление тега HTML к соответствующим значениям - PullRequest
1 голос
/ 13 июня 2019

У меня есть два столбца, один со всеми предметами в наборе, а другой с предметами, которые у меня есть в настоящее время. Я хотел бы сравнить их и для результатов сопоставления добавить немного текста, если они совпадают. Вот пример .

Таким образом, в этом примере столбец A - это номер набора, столбец B - это установленные значения, столбец C - это то, что у меня есть в данный момент, а столбец D - ожидаемый результат.

Итак, я хочу сравнить B с C, и если есть совпадающие имена, то я хочу, чтобы B добавил это <img src='tick.svg'> к соответствующему имени.

Получил некоторую помощь, работая над этим с помощью следующей функции:

=ARRAYFORMULA(TEXTJOIN("<br />&#10 ", 1, REGEXREPLACE(TRIM(IFERROR(SPLIT(B2, "<br />&#10"))), 
 TEXTJOIN("|", 1, IF(REGEXMATCH(TRIM(IFERROR(SPLIT(B2, "<br />&#10"))), 
 TEXTJOIN("|", 1, TRIM(IFERROR(SPLIT(C2, "<br>"))))), 
 TRIM(IFERROR(SPLIT(B2, "<br />&#10"))), )), TRIM(IFERROR(SPLIT(B2, "<br />&#10")))&" <img src='tick.svg'>")))

Однако, когда у меня есть '<br>' теги или '<br />&#10' в ячейке, он пропускает или заменяет определенные слова (например, строка 2, столбец E ). Кроме того, в настоящее время мне нужно перетащить его в следующую ячейку, было бы удобно, чтобы оно автоматически применялось к каждой строке,

Примечание. В веб-приложениях содержится ссылка на этот вопрос , который был решен, но имеет больший охват.

1 Ответ

0 голосов
/ 14 июня 2019

вставить в D2 ячейку:

=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 />&#10", ","), ",")<>"", "♠"&A2:A&"♦"&
 TRIM(IFERROR(SPLIT(SUBSTITUTE(B2:B, " <br />&#10", ","), ","))), )))
 ,,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 />&#10", ","), ",")<>"", "♠"&A2:A&"♦"&TRIM(IFERROR(SPLIT(
 SUBSTITUTE(B2:B, " <br />&#10", ","), ","))), ))),,999^99)),,999^99),
 "♠")))&" - CHECK", )<>"", IF(REGEXMATCH(TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IFERROR(IF(SPLIT(SUBSTITUTE(B2:B, " <br />&#10", ","), ",")<>"", "♠"&A2:A&"♦"&TRIM(IFERROR(
 SPLIT(SUBSTITUTE(B2:B, " <br />&#10", ","), ","))), )))
 ,,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 />&#10", ","), ",")<>"", "♠"&A2:A&"♦"&TRIM(IFERROR(SPLIT(
 SUBSTITUTE(B2:B, " <br />&#10", ","), ","))), ))),,999^99)),,999^99), 
 "♠")))&" - CHECK", ), TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IFERROR(IF(
 SPLIT(SUBSTITUTE(B2:B, " <br />&#10", ","), ",")<>"", "♠"&A2:A&"♦"&TRIM(IFERROR(SPLIT(
 SUBSTITUTE(B2:B, " <br />&#10", ","), ","))), ))),,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 />&#10", ","), ",")<>"", 
 "♠"&A2:A&"♦"&TRIM(IFERROR(SPLIT(SUBSTITUTE(B2:B, " <br />&#10", ","), ","))), )))
 ,,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 />&#10", ","), ",")<>"", "♠"&A2:A&"♦"&TRIM(IFERROR(
 SPLIT(SUBSTITUTE(B2:B, " <br />&#10", ","), ","))), ))),,999^99)),,999^99), "♠")))&
 " <img src='tick.svg'>", )<>"", IF(REGEXMATCH(TRIM(TRANSPOSE(SPLIT(QUERY(
 TRANSPOSE(QUERY(TRANSPOSE(IFERROR(IF(SPLIT(SUBSTITUTE(B2:B, " <br />&#10", ","), ",")<>"", 
 "♠"&A2:A&"♦"&TRIM(IFERROR(SPLIT(SUBSTITUTE(B2:B, " <br />&#10", ","), ","))), )))
 ,,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 />&#10", ","), ",")<>"", "♠"&A2:A&"♦"&TRIM(IFERROR(
 SPLIT(SUBSTITUTE(B2:B, " <br />&#10", ","), ","))), ))),,999^99)),,999^99), "♠")))&
 " <img src='tick.svg'>", ), TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(
 TRANSPOSE(IFERROR(IF(SPLIT(SUBSTITUTE(B2:B, " <br />&#10", ","), ",")<>"", "♠"&A2:A&"♦"&
 TRIM(IFERROR(SPLIT(SUBSTITUTE(B2:B, " <br />&#10", ","), ","))), )))
 ,,999^99)),,999^99), "♠")))), "♦")), "select count(Col1) where Col1 is not null group by Col1 
 pivot Col2", 0), 1, ), ), " ", "♂")),,999^99))), " ", " <br />&#10 "), "♂", " "))

0

...