Формула списка уникальных формул Excel не работает, если countta = 1 - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть следующая формула для создания уникального списка из столбца завода в таблице 15:

{=IFERROR(INDEX(Tabel15[Plant];MATCH(0;COUNTIF(Analyses!$Q$2:$Q2;Tabel15[Plant]);0));"")}

Эта формула работает, но когда в столбце Plant есть только 1 значение, формула дает значение 0. Это неверно, поскольку должно возвращать значение. Кто-нибудь знает, как я могу адаптировать эту формулу, чтобы она работала?

Я хотел изменить это на:

{=IF(COUNTA(Tabel15[plant])>0;INDEX(Tabel15[Plant];MATCH(0;COUNTIF(Analyses!$Q$2:$Q2;Tabel15[Plant]);0));Kopie - datablad$G$2)}

Но это тоже не работает.

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Хороший пример.Попробуйте и посмотрите, работает ли это:

Формула подсчитывает уникальные ячейки в другом списке.Уникальный список ожидает занять первую строку, несмотря ни на что.Также ожидается, что в вашем дубликате списка будет несколько значений.Если это не так, вы не можете сравнить, так как он ожидает дубликатов и выдает ошибку, # N / A.Это маска как пустая ячейка, поскольку она заключена в IFERROR:

«Уникальная формула» = IFERROR(INDEX(Tabel15[Plant],MATCH(0,COUNTIF($Q$1:Q2,Tabel15[Plant]), 0)),"")

Чтобы решить эту проблему, мы проверяем, сколько значений существует в нашем дублирующем списке:

=IF(COUNTA(Tabel15[Plant])>1,... «Уникальная формула» ... ,Tabel15[Plant]) // *** //

Это даст нам этот результат.

enter image description here

Тогда вам, вероятно, не нужны дубликаты ...

Так что нам нужно проверить, содержат ли предыдущие строки какое-либо из значений, возвращаемых формулой.Формула VLOOKUP делает это для нас, и в качестве значения поиска мы используем формулу выше // *** //, и диапазон поиска будет нашим текущим столбцом: $Q$1:Q2. УВЕДОМЛЕНИЕ Это динамический диапазон, поэтому Q2 является относительным эталоном (не $) .

=IF(ISERROR(VLOOKUP(IF(COUNTA(Tabel15[Plant])>1,IFERROR(INDEX(Tabel15[Plant],MATCH(0,COUNTIF($Q$1:Q2,Tabel15[Plant]), 0)),""),Tabel15[Plant]),$Q$1:Q2,1,FALSE))

Итак, конечный результат, который нам нужно применить, это в ячейке Q3 :

=IF(ISERROR(VLOOKUP(IF(COUNTA(Tabel15[Plant])>1,IFERROR(INDEX(Tabel15[Plant],MATCH(0,COUNTIF(Analyses!$Q$1:Q2,Tabel15[Plant]), 0)),""),Tabel15[Plant]),Analyses!$Q$1:Q2,1,FALSE)),IF(COUNTA(Tabel15[Plant])>1,IFERROR(INDEX(Tabel15[Plant],MATCH(0,COUNTIF(Analyses!$Q$1:Q2,Tabel15[Plant]), 0)),""),Tabel15[Plant]),"")

enter image description here


Ошибка макроса может быть проигнорирована:

If Not IsError(Sheets("Hulpblad").Range("B6").Value) Then
t = Sheets("Hulpblad").Range("B6").Value 
'Code...
End If
0 голосов
/ 13 ноября 2018

в вашей формуле нет проблем, она просто говорит о том, что в диапазоне есть пробелы, 0 означает пробел.формула обрабатывает пробел как значение, а также учитывает его в вычислениях уникальных значений.

Если вы хотите удалить 0, вы можете просто вставить if в формулу, чтобы удалить его.как

=if(formula = 0, "", formula)

или в оригинальной форме

=IF( (IFERROR(INDEX(Tabel15[Plant],MATCH(0,COUNTIF(Analyses!$Q$2:$Q2,Tabel15[Plant]),0)),""))=0,"",IFERROR(INDEX(Tabel15[Plant],MATCH(0,COUNTIF(Analyses!$Q$2:$Q2,Tabel15[Plant]),0)),""))

или перейдите в форматирование ячейки и измените формат, чтобы отображать 0 как тире.

иногда также пустоЕсли вы используете проверку ошибок, вы также можете применять такие формулы, чтобы проверить, сколько пустых, возможно, когда-нибудь они будут использованы для проверки любых проблем с вводом данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...