Динамически менять матрицу в VLOOKUP - PullRequest
0 голосов
/ 03 мая 2018

У меня есть этот лист:

  A                B
1 15576907000170   
2 17469701000177
3 8402943000152
4 17469701000177

Я хочу установить динамическую функцию в столбце B, чтобы проверить, все ли числа в этой строке уже появились в A. Таким образом, это выглядело бы так:

  A                B
1 15576907000170   OK  
2 17469701000177   OK
3 8402943000152    OK
4 17469701000177   NOT OK

Самое близкое, что я получил, было с этим:

= if(isnumber(VLOOKUP(A4;A:A;1;FALSE))=TRUE;"NOT OK"; "OK")

Однако это не работает, потому что он всегда будет находить число в столбце A. В VLOOKUP я должен иметь возможность выбирать только строки выше одной из фактической ячейки, в приведенном выше примере это будет что-то вроде этого:

= if(isnumber(VLOOKUP(A4;A:A(ROW(A4-1);1;FALSE))=TRUE;"NOT OK"; "OK")

Однако это дает мне синтаксическую ошибку. Кто-нибудь может помочь с запуском этой функции?

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

B1:

=ARRAYFORMULA(IF(MATCH(A1:A4;A1:A4;0)=ROW(A1:A4);"OK";"NOT OK"))
  • МАТЧ, чтобы найти первый номер строки
  • IF first ROW = Текущая строка, ОК, иначе, НЕ ОК
0 голосов
/ 03 мая 2018

Используйте следующую формулу в ячейке B1, затем перетащите ее вниз, если необходимо.

=IF(COUNTIF($A$1:$A1,A1)>1,"Not Ok","Ok")

enter image description here

...