Agregowanie kolumn w programie Excel

1

Mam dane składające się z daty i listy zakupów, coś w tym stylu (przecinki reprezentują osobne kolumny):

**date,product1,product2,product3** 
08/11/13,oranges,apples,chips
08/11/13,grapes,oranges
08/12/13,grapes,pineapples
08/12/13,grapes,oranges

Chcę wiedzieć, ile przedmiotów każdego produktu zostało zakupionych w każdym dniu (i wykreślić to).

Gdybym miał jedną kolumnę produktu, byłoby to dość proste; Mógłbym po prostu użyć tabeli przestawnej. Jednak w moim przypadku potrzebuję sposobu na policzenie „pomarańczy” z produktu 1 wraz z „pomarańczami” z produktu 2 ...

Jednym ze sposobów byłoby duplikowanie wierszy i przetłumaczenie danych na jedną kolumnę, ale chciałbym tego uniknąć.

Czy istnieje sposób, aby to zrobić, najlepiej bez użycia VBA?

lribinik
źródło

Odpowiedzi:

0

Jeśli Twoje dane mieszczą się w zakresie A2: D25, możesz użyć następującej formuły tablicowej:

=SUM(($A$2:$A$25=DATEVALUE("8/11/13"))*
    (($B$2:$B$25="oranges")+($C$2:$C$25="oranges")+($D$2:$D$25="oranges")))

Trzeba będzie wprowadzić go z Control- Shift- Enterkombinacji klawiszy.

Jeśli masz kilka dat, dla których chcesz obliczyć sumy dla każdego z dużej liczby produktów, możesz wykonać następujące czynności.

Załóżmy, że twoje dane produktu mieszczą się w zakresie A2: D20000 w Arkuszu 1, a zakres dat w kolumnie A, jak w twoim przykładzie. Powiedz, że chcesz umieścić liczby produktów w arkuszu 2.

W Arkuszu 2 wpisujesz w komórkach B1, C1 itd. Daty, które Cię interesują. Poniżej, w zakresie A2: A2000, masz listę swoich produktów. W komórce B2 wprowadź tę formułę tablicową:

=SUM((Sheet1!$A$2:$A$20000=B$1)*((Sheet1!$B$2:$B$20000=$A2)+
     (Sheet1!$C$2:$C$20000=$A2)+(Sheet1!$D$2:$D$20000=$A2)))

i skopiuj go na dół listy produktów. To daje wyniki dla pierwszej randki.

Następnie skopiuj całą kolumnę produktu w poprzek dla każdej kolumny, która ma datę w wierszu 1. To da ci liczby dla wszystkich dat.

Alternatywnie, jeśli masz zarówno dużą liczbę produktów, jak i dużą liczbę dat, tylko nieco bardziej skomplikowana formuła inna niż macierzowa zapewni lepszą wydajność (tj. Obliczenie zajmie mniej czasu).

W komórce B2 zamiast tego wpisz:

     =COUNTIFS(Sheet1!$A$2:$A$20000,B$1,Sheet1!$B$2:$B$20000,$A2)+
      COUNTIFS(Sheet1!$A$2:$A$20000,B$1,Sheet1!$C$2:$C$20000,$A2)+
      COUNTIFS(Sheet1!$A$2:$A$20000,B$1,Sheet1!$D$2:$D$20000,$A2)

Następnie skopiuj formułę na dół listy produktów, a następnie skopiuj całą kolumnę formuł (w zakresie B2: B2000) we wszystkich kolumnach, dla których umieściłeś daty w wierszu 1.

chuff
źródło
Chodzi o to, że mam wiele (tysiące) produktów (np. „Pomarańczy”), więc nie mogę po prostu stworzyć takiego równania dla każdego z nich
lribinik
OK, ale co, jeśli mam wiele dat (około 100)?
lribinik
Wprowadź je do wiersza 1, a następnie skopiuj formuły dla każdej kolumny daty. Biorąc pod uwagę liczbę produktów i daty, z którymi musisz sobie poradzić, do mojej odpowiedzi dodałem podejście oparte na formule innej niż tablica. Wprowadziłbyś go w tej samej komórce początkowej, co formuła tablicowa, ale potwierdzając go tylko klawiszem Enter zamiast kombinacji klawiszy Control-Shift-Enter. Następnie skopiuj w dół i w poprzek, jak poprzednio.
chuff