2012-07-19 9 views
6

enter image description hereWarunkowe Min i Max w programie Excel 2010

chciałbym znaleźć MIN i MAX ilości (kolumna 2) na podstawie typu (kolumnowej błyskawicznej 1), jest to możliwe, aby to zrobić?

Próbowałem tego, ale wynik był nieoczekiwany Similar question

+1

Czy użyć Ctrl + Shift + Enter, jak sugerowano? – GSerg

+0

Prawdopodobny duplikat [Excel: Znajdź wartości min./max w kolumnie wśród dopasowanych z innej kolumny] (http://stackoverflow.com/questions/20904092/excel-find-min-max-values-in-a-column -among-te-dopasowane-z-innej-kolumny) –

Odpowiedz

6

Przyjmując dane powyższe jest w A2: B13, to działa:

=MAX(IF(A2:A13="A",1,0)*(B2:B13)) 
=MAX(IF(A2:A13="B",1,0)*(B2:B13)) 
=MAX(IF(A2:A13="C",1,0)*(B2:B13)) 

trzeba nacisnąć Ctrl + Shft + Enter podczas wprowadź formułę do komórki. To znajdzie wszystkie wiersze z A, B lub C i mnoży 1 z wartością obok niego, jeśli litera pasuje do formuły, i 0, jeśli nie pasuje. Następnie przyjmujesz wartości MAX().

< < < Edit >>>

Jak sugeruje @GSerg, można również zrobić z tymi wzorami, po naciśnięciu ctrl + Shft + Enter podczas wprowadzania ich w każdej komórce:

=MAX(IF(A:A="A",B:B)) 
=MAX(IF(A:A="B",B:B)) 
=MAX(IF(A:A="C",B:B)) 

O wiele bardziej elegancki sposób robienia tego!

+1

Dlaczego błędne/szkodliwe mnożenie? Zobacz [pytanie związane z OP] (http://stackoverflow.com/questions/10746792/excel-find-min-max-date-in-a-range-if-it-matches-criteria-of-other- kolumny) w prawidłowy sposób. – GSerg

+0

@GSerg - dzięki za wskazanie tego. Nie robiłem tego wcześniej w inny sposób. Dużo lepiej! (+1) –

+4

Dla zapisu (i jak zauważyłem w połączonym pytaniu) ta metoda jest zaporowo powolna podczas pracy z dużą liczbą rekordów. Tabela przestawna jest bardziej wydajna w ogólnym przypadku. –

1

coś innego niż tabeli przestawnej (jak sugeruje @andy holaday) wydaje się czystą masochizm (chyba za bardzo dobre, ale prawdopodobnie bardzo osobliwego powodu):

SO11570223 example

Zauważ, że na rysunku I podwoiła PO na ilości danych dla B i te ponownie dla C.

-2

Proponuję użyć =large(if(...=...;...);k), aby rozwiązać ten problem.

0

Działa to bez ctrl + shift + enter, ale twoja tabela powinna być posortowana według kolumny TYPE.

Załóżmy, że tabela jest umieszczony w B3: C15, następnie w A4 umieścić

=IF(B4=B3;A3;A3+1) 

w E4 - "1", w E5 - "2", w E6 - "3", w F4 umieścić:

=MAX(INDIRECT("C" & MATCH(E4;$A$1:$A$17;0) & ":C" & MATCH(E4;$A$1:$A$17;1))) 

i skopiować go do F5 i F6

w G4 put:

=MIN(INDIRECT("C" & MATCH(E4;$A$1:$A$17;0) & ":C" & MATCH(E4;$A$1:$A$17;1))) 

i skopiować go do G5 i G6

enter image description here

funkcja MATCH obsługuje ciągi nieprawidłowo, więc musiałem ilość typów, można użyć VLOOKUP zmienić numery w kolumnie E do strun

W moim stół użyłem tego rozwiązania znaleźć ciągów z najwyższych wartości w ten sposób:

enter image description here

0

dość sprytne ale prosty sposób zrobić to
1. Utwórz nową kolumnę łączącą Typ i Ilość i nazwij ją "TypQty" lub cokolwiek chcesz. Sortowanie (rosnąco) nowej tabeli, tj. Typ, Ilość i TypQty wszystkie razem, ale sortowanie według TypQty kolumna.
3. Zastosuj formułę, która sprawdza, czy typ w powyższym wierszu jest taki sam, jak bieżący wiersz. jeśli nie, zaznacz ten wiersz, ponieważ jest ostatnim z bieżącego typu.

skończysz z "znacznikiem" tylko maks. Wiersze dla każdego typu. Zobacz zdjęcia

enter image description here

Powiązane problemy