Excel: Zsumuj kolumnę na podstawie warunków


2

Mam arkusz Excela z takimi kolumnami:

A    B    C    D
1    1    X    INT
2    1    X    INT
1    2    Y    INT
2    2    Y    INT
3    2    Y    INT
1    3    Z    INT
2    3    Z    INT
3    3    Z    INT
4    3    Z    INT

Kolumna D zawiera wartości, które chcę podsumować. Kolumna A zawsze liczy się od 1, w zależności od grupy, w której się znajduje (kolumna B) i ma maksymalne wartości 2 (grupa 1), 3 (grupa 2) lub 4 (grupa 3) Powiedzmy, że scenariusz 1 to „Sumuj wszystkie INT), jeśli C = X, a maksymalna wartość wynosi 2. Colum C to tylko warunek, który trzeba spełnić. Oczywiście wszystko może być w wielu odmianach.

Prawdopodobnie będzie musiał współpracować z = SUMIF (), ale jak dotąd mogłem wymyślić = SUMIF (D: D, C: C, „X”)

Ale to nie zadziała, jeśli istnieje inna grupa, która ma warunek X, ale może mieć więcej wartości w kolumnie A.

Moim pomysłem jest użycie COUNTIF () i sprawdzenie, czy grupa ma na ogół 2, 3 lub 4 wartości.

Ale jak mogę uczynić to bardziej ogólnym?

Wielkie dzięki!

[EDYCJA:] Pomyślałem również o sposobie sprawdzenia za pomocą AND (), OR () i NOT () jeśli dla każdej grupy, która ma maks. 3 liczy (kol. A), że jest 1, 2, 3, ale nie 4, 5, 6, 7, 8, 9, 10, 11, 12.

Liczba grup (C) może być nieskończona (choć zwykle nie więcej niż 7). Liczba kol. a to 3, 7 lub 12 Jak wspomniałem, może istnieć grupa z warunkiem X, która ma 3 liczby, i inna grupa z warunkiem X, która ma 7 zliczeń, i dla obu scenariuszy kolumna D jest sumowana zgodnie z warunkami.

Problem polega na tym, że grupa X ma liczbę 1, 2 (z maks. 2), a inna możliwa grupa F może również mieć warunek X, ale 12 się liczy. Oznacza to, że liczby 1 i 2 nie mogą być liczone dwukrotnie.

Odpowiedzi:


1

Będziesz chciał SUMPRODUCT

=SUMPRODUCT(D1:D9,(F2=COUNTIFS(B1:B9,B1:B9))*(C1:C9=F1)

Powoduje to iterację wartości rząd po rzędzie, zwracając wartość w D, gdzie C jest równe ograniczeniu pożądania, Xw tym przypadku, a liczba B jest równa liczbie elementów.

wprowadź opis zdjęcia tutaj


To nie działa dla mnie, chociaż myślę, że twoje rozwiązanie może być tym, którego użyję. Mimo to wydaje się, że coś jest nie tak z kodem. Kiedy piszę ten przykład tak, jak jest, wtedy zwracam również wartość 30, gdy F2 = 2. Ale kiedy wpiszesz F2 = 3, to zwrócona wartość to 0?
Kai

Musisz także zablokować kategorię Y. Stwierdziłeś, że chcesz obu ograniczeń
Scott Craner,

@Khaled może „przyjąć” odpowiedź jak to usunąć to pytanie bez odpowiedzi „z” listy Stack Exchange Network. (:
p._phidot_

@ Scott-Craner Jak zmienić kod, jeśli chcę wiedzieć, ile razy wystąpi liczenie, niezależnie od grupy lub warunku X?
Kai,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.