Быстрее Версия Excel
Ссылаясь на формулу =IF(COUNTIF($A:$A,B2)=0,"No","Yes")
выглядит так же, но гораздо быстрее.
=IF(ISERROR(MATCH(B1,$A:$A,0)),"No","Yes")
На первый взгляд, совпадение должно быть быстрее, поскольку оно не может сосчитать, но, конечно, причина кроется в следующей логике:
COUNT просматривает весь диапазон для вычисления COUNT , а затем IF «решает», является ли он 0 или нет.
MATCH ищет диапазон только до тех пор, пока не найдет MATCH и, когда он найден, IF 'решает с помощью функции ISERROR , если оно истинно или ЛОЖЬ. Если бы совпадения были в нижней части диапазона, возможно, разрыв в скорости можно было бы игнорировать, но это не так.
Изменение порядка формул, как
=IF(NOT(ISERROR(MATCH(B1,$A:$A,0))),"Yes","No")
или
=IF(COUNTIF($A:$A,B2)<>0,"Yes","No")`
ничего не меняет. MATCH продолжает поиск, пока не будет найдено совпадение, и COUNT все еще учитывается во всем диапазоне.
Итак, подытожим:
MATCH - это способ ' Excel '.