suma kolumna = wartość JEŚLI inna komórka zawiera tekst, ale tylko jeśli inna komórka ma wartość NULL

1

Próbuję obliczyć sumę komórek J10:M76if B10:E76= wartość tekstowa, ale jeśli komórki R10:R76nie są puste (zawierają wartość), NIE chcę dołączać wartości, która jest w J10:M76.

Wiem, że jest to trochę skomplikowane i właśnie to robię, aby to rozwiązać, ale musi być lepszy sposób.

=SUM(SUMIF($B$10:$E$76,{"City of Tampa"},$J$10:$M$76))-J13

Richard
źródło
emmm ... Na przykład B11 i E20 zawierają potrzebny tekst, czy masz na myśli dodanie wartości w J11 i M20, a następnie, jeśli jakieś wartości w kolumnie RI muszą je pomniejszyć? Jeśli moje rozumowanie jest prawidłowe?
Lee,
Potrzebujesz Array Formula CSE ,{=IF($R$10:$R$76="",SUMIF($B$10:$E$76,"City Of Tempa",$J$10:$M$76),"")}
Rajesh S
Niektóre pytania w twoim pytaniu nie są całkiem jasne. 1. Co rozumiesz przez B10: E76 = „tekst”? Czy wszystkie cztery kolumny w rzędzie muszą być równe tekstowi? Każda kolumna? Posiadanie tego samego typu tekstu w wielu kolumnach nie jest typowym sposobem konstruowania danych, więc co tam jest i wymagania nie są jasne. 2. Czy każdy wiersz jest kolejnym rekordem danych, więc reguły obowiązują według wiersza (więc chcesz zawrzeć wszystkie wartości wierszy w kolumnach J: M w ogólnej sumie, o ile spełnione są kryteria dla wiersza)? (kont.)
fixer1234,
3. Kiedy mówisz o null w kolumnie R, masz na myśli, że komórka jest pusta? Więc w zasadzie są dwa warunki, które wiersz musi spełnić: coś, co wyjaśnisz w B: E = „wartość tekstowa”, a R nie jest pusty? 4. Czy tekstem docelowym będzie zawsze „Miasto Tampa”, więc chcesz, aby ten kod był zapisany na stałe w formule, czy może się różnić, w którym to przypadku sensowne byłoby wpisanie gdzieś tego tekstu w komórce, a następnie odwołanie się do tej komórki we wzorze, aby wartość można było łatwo zmienić? (kont.)
fixer1234
5. Co to jest -J13? Jest to w twoim zakresie danych, więc czy jest to przykład niekwalifikującej się wartości, którą ręcznie zidentyfikowałeś i zakodowałeś na stałe, odejmując, zakładając, że zrównoważyłby to włączenie? Jeśli tak, to dlaczego tylko J, a nie J: M? 6. Takie złożone wymagania zawsze lepiej jest publikować z niektórymi przykładowymi danymi, które obejmują zakres warunków, które możesz napotkać, jaki powinien być wynik dla tego przykładu i dlaczego. W przeciwnym razie ludzie spędzą dużo czasu próbując odpowiedzieć na podstawie błędnej interpretacji wymagań.
fixer1234

Odpowiedzi:

0

Jeśli możesz użyć formuły tablicowej, jest to standardowe podejście.

Uważam, że chcesz mieć odpowiedź w jednej komórce, więc nie powinno być żadnego konkretnego powodu, aby unikać formuły tablicowej. (Częstym powodem formuł tablic wielokomórkowych jest trudność związana ze zmianą formuły i związane z tym problemy. Blok przejmowany przez formułę tablicową może działać podobnie jak blok komórek scalonych w jedną.)

(To jest tylko długie, więc mogę przeliterować wystarczająco dużo kroków, abyś nie wkurzył się drobiazgowym szczegółem, który powinienem był pokazać.)

Jeśli tak, oto koncepcja:

Formuła końcowa będzie nie tylko samą formułą tablicową, wprowadzoną za pomocą Control-Shift-Enter („CSE”), ale utworzysz jej części w tablice.

Jedna tablica będzie zawierać wartości, które (ewentualnie) chcesz zsumować (w tym przypadku B10: M76). Druga tablica będzie zakresem z pożądanym tekstem, a trzecia tablica będzie zakresem testowanym pod kątem stanu zerowego / pustego / pustego.

Celem pierwszej tablicy jest wprowadzenie wartości do dodania do gry. Cele tablic drugiego i trzeciego są identyczne: wykonać potrzebne testy i zwrócić logiczną wartość dla każdego testu. Wartość logiczna? Sprawisz, że zwrócą PRAWDA lub FAŁSZ, w zależności od tego, czy testy zakończą się sukcesem, czy porażką.

Excel potraktuje te wartości logiczne jako 1 i 0, jeśli przeprowadzisz na nich operację matematyczną. Tak więc kolumna z szczęśliwym tekstem może generować {PRAWDA; FAŁSZ; PRAWDA; PRAWDA; FAŁSZ; ... itd.}, Która będzie działać jako {1; 0; 1; 1; 0; ... itd.}, Jeśli przeprowadzisz matematykę operacja na wyniku. Często zrobisz to z pojedynczą tablicą, mnożąc ją przez 1. Tutaj potrzebujesz nieco bardziej zaangażowanej ścieżki rozwiązania, a zamiast wprowadzenia „* 1”, po prostu użyjesz dwóch pozostałych tablic. Trzecia tablica jest podobna do testowania komórek pod kątem warunku zerowego / pustego / pustego i uzyskiwania tego samego rodzaju tablicy PRAWDA i FAŁSZ.

Tak więc pierwsza tablica umieszcza zakres wartości sumujących w tablicy, a druga i trzecia tablica to PRAWDA i FAŁSZ wyników dwóch wymaganych testów. Jeśli którykolwiek z testów zakończy się niepowodzeniem, drugi wynik testu zostanie pomnożony przez 0, co spowoduje 0, aby pomnożyć pasującą wartość sumowania. Więc jeśli którykolwiek test zakończy się niepowodzeniem, wartość sumowania tego wiersza zostanie pomnożona przez 0, co spowoduje dodanie 0 przez funkcję SUM (), w której to wszystko zostanie zawinięte. Jeśli oba testy zakończą się powodzeniem, wartość sumowania tego wiersza zostanie pomnożona przez 1 i kończą w końcowej tablicy, którą Excel prezentuje funkcji SUM ().

W ten sposób funkcja SUM () nie dodaje niczego do wierszy, które zawiodły w jedną lub drugą stronę, więc tylko wartości, których testy się powiodą, wydają się być wynikiem.

Właśnie tego chcesz.

W takim przypadku musisz napisać pierwszy test, aby wygenerował PRAWDA, jeśli się powiedzie. Coś jak:

(B1:B6="City of Tampa")

a drugi test musi zostać napisany, aby uzyskać wynik 1, jeśli test się nie powiedzie, więc tak powiem, napisz go jako rodzaj „niepasujący” lub napisz w „pozytywny” sposób, ale zawiń w NIE () funkcjonować:

(C1:C6<>"")
(NOT(C1:C6=""))

(Które podejście jest dla ciebie najlepsze i pozwoli ci na pracę w arkuszu kalkulacyjnym w przyszłości. Każdy jest tu inny, a czasem przełożony wyraża wyraźne wymagania, aby mógł go skontrolować i zapewnić, że daje prawidłowe odpowiedzi).

Twoja pierwsza tablica jest dość prosta, tylko zakres wartości, które możesz zsumować sam:

A1:A6

(Musisz umieścić części testowe (drugą i trzecią tablicę) w nawiasach, ale nie musisz tego robić dla pierwszej tablicy. Ale możesz, jeśli chcesz.)

Następnie złóż je wszystkie i zawiń za pomocą funkcji SUM ():

{=SUM( A1:A6 * (B1:B6="City of Tampa") * (C1:C6<>"") )}

(Naciśnięcie „CSE” spowoduje dodanie {}, które zawija powyższe, oczywiście.)

Możesz użyć tego podejścia nie tylko z wieloma odmianami na początku sumowania rzeczy, ale z szeregiem innych funkcji. W rzeczywistości niektórzy nie wymagają nawet wprowadzenia całej formuły końcowej za pomocą „CSE”: może to być zupełnie normalna formuła, nawet jeśli używa tablic w swojej pracy tymczasowej. Jeśli więc postępujesz zgodnie z powyższym, możesz zastosować to podejście do wielu problemów, z którymi się spotkasz.

Nie odtworzyłem dokładnie Twojego problemu (stąd moje proste zakresy w przykładach), ale często zakres wielu kolumn i wierszy wymaga nieco dodatkowej pracy. Zakres wielu wierszy LUB wiele kolumn jest nadal macierzą z jednym wierszem, podobnie jak macierz z jednym wierszem. tworzenie wierszy ORAZ kolumn daje Excelowi (tak jak to zajmuje) tablice z wieloma wierszami, na przykład macierz 3x4. Jeśli pojawią się błędy, musisz to „zrelaksować” i zmusić Excela do rozważenia danych zakresów jako tablic jednorzędowych. Na przykład użyj nazwanych zakresów, aby połączyć pojedyncze kolumny (lub wiersze, jeśli łatwiej to zapisać) w jeden zakres. Są też inne sztuczki. Jednym z nich jest napisanie formuły do ​​wykonania jednego zestawu obliczeń dla kolumny w zakresie i dodanie jej do drugiego zestawu obliczeń dla drugiej kolumny itp. Nie bardziej skomplikowane, tylko kilka zestawów tego samego przesunięto dla każdego zestawu kolumn. Ale zazwyczaj można go ułożyć razem bez większych problemów, tylko trochę smaru łokciowego.

Na koniec wspomniałem, że niektóre formuły używają tablic, ale nie muszą same być wprowadzane w formułach CSE. Dziwnie jednak często, dopóki nie zrozumiesz, dlaczego za każdym razem staje się to naprawdę zrozumiałe, jak Homer „Doh!” moment, zrobienie tego może dać inny wynik niż dokładnie to samo, co wpisał CSE. Jeśli tak, wprowadzona wersja CSE zawsze będzie poprawna, ale należy ją weryfikować za każdym razem.

Roy
źródło