Excel Formula CountIFS с любой цифрой - PullRequest
0 голосов
/ 07 февраля 2019

Я не могу заставить COUNTIFS работать с поиском любой цифры.

Это работает, если я задаю второму критерию конкретное числовое значение

=COUNTIFS(FOO!B:B,"*foobar*",FOO!C:C,"2")

, но я непросто хочу найти 2, я хочу любое числовое значение (или даже любую строку, содержащую цифру).Я попробовал несколько вариантов, но из того, что я понимаю, это должно работать ниже.Что мне не хватает?

=COUNTIFS(FOO!B:B,"*foobar*",FOO!C:C,"*{1,2,3,4,5,6,7,8,9,0}*")

Данные

A     B         C
      foobar    51
      foo       682
      bar       S5
      foobar    CSGR
      foobar    8RD

Формула countifs должна возвращать 2, если я хочу, чтобы столбец B был foobar, а столбец C содержал любую цифру.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

ОК ...

Это немного затянуто и, возможно, есть лучший способ, но он работает без вспомогательного столбца:

enter image description here

=SUMPRODUCT(
    --NOT(ISERROR(SEARCH("*foobar*",B1:B5)))*
    (
        (
            --NOT(ISERROR(SEARCH("*0*",C1:C5)))+
            --NOT(ISERROR(SEARCH("*1*",C1:C5)))+
            --NOT(ISERROR(SEARCH("*2*",C1:C5)))+
            --NOT(ISERROR(SEARCH("*3*",C1:C5)))+
            --NOT(ISERROR(SEARCH("*4*",C1:C5)))+
            --NOT(ISERROR(SEARCH("*5*",C1:C5)))+
            --NOT(ISERROR(SEARCH("*6*",C1:C5)))+
            --NOT(ISERROR(SEARCH("*7*",C1:C5)))+
            --NOT(ISERROR(SEARCH("*8*",C1:C5)))+
            --NOT(ISERROR(SEARCH("*9*",C1:C5)))
        )>0
    )
)

Если функция ПОИСК возвращает ошибку, это означает, что текст не был найден.Результат функции ПОИСК преобразуется в 0 или 1 с помощью --NOT(ISERROR( частей.

Итак, для каждой строки мы проверяем, содержит ли столбец B «foobar».Если это так, он возвращает 1. Затем он умножается на результат второй половины формулы (также 0 или 1).Во второй половине мы складываем, сколько проверок на цифры не приводит к ошибке.Если это число больше 0 (то есть найдена хотя бы одна цифра), возвращается 1. Если цифр не найдено, возвращается 0.

В результате получается сумма 1 * 1, 1 * 0., 0 * 1 или 0 * 0.Это означает, что сумма для каждой строки дает только 1, если текст найден в ОБА столбцах, в противном случае он возвращает 0.

Затем SUMPRODUCT просто складывает эти нули и единицы, чтобы получить общее числостроки, которые соответствуют вашим критериям.

Надеюсь, это имеет смысл.Если вам нужно больше объяснений, просто дайте мне знать.

0 голосов
/ 07 февраля 2019

Вы можете использовать что-то вроде =COUNT(FIND({0,1,2,3,4,5,6,7,8,9}),C2)>0 для столбца C и скопировать вниз в столбец D. Это вернет TRUE или FALSE, если в ячейке есть цифра.

, затем сделайте что-нибудь по линии =COUNTIFS(FOO!B:B, "*foobar*", FOO!D:D, TRUE)

Это не было проверено.

...