为了好玩,稍微扩展和修改了要求,以尝试更灵活的解决方案。
COUNTIF
的通配符(不区分大小写)选项方法:收集术语,用通配符(
*
)包裹起来,得到计数。
姓名 | 指的是 |
---|---|
_get_pairs_as_col | =LAMBDA(arr, LET(全部, arr & TRANSPOSE(arr), TOCOL(_na_if_repeating(all),2) )) |
_na_if_重复 | =LAMBDA(文本, IF( LEN(SUBSTITUTE(文本, LEFT(文本,1),"")), 文本,NA())) |
主要:
count_if_partial_ci_match
=LAMBDA(_range,_terms,[_col_delim],[_row_delim],
LET(
_col_delim, IF(ISOMITTED(_col_delim), ",", _col_delim),
_row_delim, IF(ISOMITTED(_row_delim), ";", _row_delim),
_terms, IF(ROWS(_terms)>1, TEXTJOIN(_row_delim,,_terms), _terms),
_all_terms_as_col, TOCOL(TEXTSPLIT(_terms,_col_delim,_row_delim),2 +N("Ignore errors")),
_count_single, IFERROR(SUM(COUNTIF(_range,"*" & _all_terms_as_col &"*")),0),
_count_pairs, IFERROR(SUM(COUNTIF(_range,"*" & _get_pairs_as_col(_all_terms_as_col ) &"*")), 0),
_count_single - _count_pairs
))