formuła, aby uzyskać całkowitą liczbę wierszy zawierających wartość w programie Excel

2

Mam arkusz kalkulacyjny z danymi w tym formacie:

User | Group       | ParentGroup | ID
joe  | US fed grp  |  fed        | 123
bill | dev         |  IT         | 234
jim  | UK fed grp  |  fed        | 345  

Potrzebuję formuły, która przeszukałaby kolumny Grupy i Grupy nadrzędnej w całym arkuszu i podała całkowitą liczbę wierszy zawierających „wprowadzone”

W powyższym przykładzie formuła zwróci 2 (nie 4, czyli tyle razy, gdy „podany” pojawia się w całym arkuszu). 2 to liczba wierszy, w których pojawia się „karmiony”.

próbuję

=COUNTIF(1:4, "*" & "fed" & "*")

ale zwraca 4 (chcę 2)

Krondorian
źródło

Odpowiedzi:

5

Nie ma potrzeby stosowania kolumny pomocniczej:

=SUMPRODUCT(--ISNUMBER(SEARCH("fed",Group & ParentGroup)))
  • Grupa odnosi się do B2: Bn (gdzie n jest równe lub większe niż ostatni wiersz)
  • ParentGroup odnosi się do C2: Cn
  • Grupa i Grupa nadrzędna muszą być tego samego rozmiaru

I jeśli chcesz, możesz zastąpić odwołanie do komórki „karmionym”.

Ron Rosenfeld
źródło
+1 Świetna odpowiedź, ładna i prosta! Żałuję, że nie przyjrzałem się temu wczoraj bardziej, mógłbym ocalić sobie trochę żalu!
tehDorf
Niesamowite rzeczy, dzięki !! Tylko dla tych, którzy mogą nie rozumieć, ostatni parametr musi być zapisany w następujący A27:A36&B27:B36&....sposób. Szkoda, COUNTIFże nie pozwala na łączenie takich zakresów, rozwiązałoby to znacznie prościej.
Andrew
1

Odpowiedź z jedną komórką:

=COUNTIF(B:C, "*fed*") - COUNTIFS(B:B, "*fed*", C:C, "*fed*")

To policzy liczbę komórek, które zawierają fed, a następnie odejmie jeden dla każdego wiersza zawierającego dwie komórki fed. Jest to dość proste, ale nie daje się dobrze skalować (np. Masz 6 kolumn i chcesz policzyć liczbę wierszy, które zawierają fedw każdym z nich)


Aktualizacja: wersja skalowalna

To mnie naprawdę wkurzyło, więc trochę kopałem i wymyśliłem tę formułę tablicową :

=SUM(IF(ISNUMBER(SEARCH("fed", B1:B4)) +
        ISNUMBER(SEARCH("fed", C1:C4)),
        1, 0))

Ważna uwaga: jest to formuła tablicowa, więc musisz nacisnąć CTRL+ ALT+ ENTER, zamiast pisać ENTERlub klikać poza komórką. Można powiedzieć, czy zrobiłeś to dobrze, ponieważ formuła będzie widoczny {i }wokół niego (a wynik będzie zawsze wynosić 0, jeśli nie).

Możesz teraz rozwinąć to, aby wziąć dowolną liczbę kolumn, dodając kolejną + ISNUMBER(SEARCH("fed", X1:X4))do funkcji. Możesz określić przeszukiwanie całej kolumny, używając X:X, gdzie Xjest literą kolumny, ale w zależności od systemu, który może zacząć działać wolno. Miałem zauważalne opóźnienie w przeszukiwaniu całej kolumny, ale zmieniłem X1:X100ją na natychmiastową. Wierzę, że będziesz musiał ustawić ten sam zakres dla wszystkich kolumn (np. Nie możesz mieć B:Bi C1:C10), ale nie przetestowałem go.

tehDorf
źródło
0

Oto jak to rozwiązałem.
Jeśli w kolumnie B jest grupa, kolumna C to grupa rodzicielska, aw I2 słowo, którego szukasz, w twoim przypadku karmione.
Utwórz kolejną kolumnę o nazwie FED, wprowadź tę formułę i pociągnij w dół arkusza. = JEŻELI (LUB (DOKŁADNIE (B2; $ I $ 2); DOKŁADNIE (C2; $ I $ 2)); 1; 0)
Za pomocą tego otrzymasz numer 1, nawet jeśli w każdym rzędzie jest mało „nakarmionych”.
Następnie zsumuj kolumnę FED.
Przesłałem rozwiązanie.

Davidenko
źródło
0

Uważam, że Davidenko ma rację, sugerując, że potrzebujesz do tego kolumny pomocniczej. Sugeruję, że formuła w, powiedzmy, komórce S2, mogłaby być podobna

=OR(ISNUMBER(SEARCH("fed", B2)), ISNUMBER(SEARCH("fed", C2)))

Który oceni TRUE jeśli B2lub C2zawiera „karmione”, wielkość liter ma znaczenie. Wymień SEARCHsię FINDjeśli chcesz test liter. Jeśli chcesz, aby szukany tekst pochodził z komórki, możesz to zrobić na przykład za pomocą

=OR(ISNUMBER(SEARCH($I$2, B2)), ISNUMBER(SEARCH($I$2, C2)))

Jeśli trzeba sprawdzić kolumny Ai Dteż je dodać.

Byłby to szybki i brudny skrót

=ISNUMBER(SEARCH("fed", B2&C2))

ale to zliczałoby wiersze, w których wartość w kolumnie Bkończyła się na „f”, a wartość w kolumnie Czaczynała się na „ed”. Aby to naprawić, idź z czymś takim

=ISNUMBER(SEARCH("fed", B2&"|"&C2))

Kolejny,

  • Wypełnij kolumnę pomocnika (którą nazwałem Spowyżej), przeciągając ją w dół i
  • zrób coś takiego

    =COUNTIF(S:S, TRUE)
    

Możesz też użyć jednej z typowych sztuczek, aby przekonwertować wartości w kolumnie Sna 1 i 0, a następnie SUM(jak sugerował Davidenko).

G-Man
źródło
-1
=COUNTIFS(B:B,"fed",C:C,"fed")

zakładając, że obie kolumny mają wartość „karmione”

Aleksiej Adamski
źródło