Jak odejmować w Excelu: Każda metoda wyjaśniona (2026)
Napisane przez zespół Iron Software_.
Potrzebujesz teraz odjąć liczby w Excelu? Oto krótka odpowiedź: kliknij komórkę, w której chcesz, aby pojawił się wynik, wpisz "=", kliknij pierwszą komórkę, wpisz znak minus ("-"), kliknij drugą komórkę i naciśnij Enter. To naprawdę wszystko, co jest potrzebne do najczęstszego przypadku, dwóch liczb, dwóch komórek, jednej formuły.
Jednak Microsoft Excel daje znacznie większą elastyczność niż jeden sposób. Niezależnie od tego, czy potrzebujesz odjąć wiele komórek naraz, pracować w dwóch kolumnach, odjąć daty, odjąć wartości czasowe, obsługiwać procenty czy dokonywać obliczeń na całej macierzy, ten przewodnik obejmuje każdą metodę. Buduj te umiejętności w zakresie Excela, a będziesz w stanie sprostać nawet najbardziej złożonym zadaniom bez wahania. *
Metoda 1: Prosta formuła odejmowania (Najszybsza)
Proste odejmowanie w Excelu zaczyna się tutaj, a dla większości codziennych prac nie musi iść dalej.
- Kliknij komórkę wynikową, w której chcesz, aby pojawiła się odpowiedź (np. C1).
- Wpisz znak równości: =
- Kliknij pierwszą komórkę z wartością początkową (np. A1) lub wpisz liczbę bezpośrednio.
- Wpisz znak minus: -
- Kliknij komórkę z wartością do odjęcia (np. B1) lub wpisz liczbę.
- Naciśnij Enter.
Następująca formuła pojawia się w C1: =A1-B1. Excel od razu wyświetli obliczoną różnicę.

Dlaczego to działa: Excel traktuje wszystko zaczynające się od = jako formułę. Znak minus jest operatorem odejmowania, tym samym znakiem, którego używasz w codziennej matematyce.
Wskazówka dla pro: Możesz odjąć wiele liczb w jednej formule, łącząc znak minus. Aby odjąć trzy wartości od wartości początkowej, napisz =A1-B1-C1. Możesz łączyć tyle, ile chcesz, a Excel wykona wszystkie obliczenia od lewej do prawej.
Uwaga na temat funkcji SUBTRACT: Excel nie ma wbudowanej funkcji SUBTRACT. Każdy przypadek odejmowania w Excelu używa bezpośrednio znaku minus (-) w formule. To zaskakuje wielu nowych użytkowników, którzy oczekują funkcji podobnej do SUM lub AVERAGE, ale operator znaku minus to prawidłowy i jedyny sposób na odjęcie w Excelu. *
Metoda 2: Odejmij całą kolumnę naraz (Uchwyt wypełniania)
Po uzyskaniu działającej formuły skopiowanie jej w dół całej kolumny zajmuje tylko sekundę, korzystając z uchwytu wypełniania.
- Wprowadź formułę odejmowania w pierwszej komórce kolumny (np. =A1-B1 w komórce C1).
-
Kliknij C1, aby ją wybrać.
- Najedź kursorem na mały zielony kwadrat w prawym dolnym rogu komórki, to jest uchwyt wypełniania. Kursor zmienia się na cienki krzyżyk +.
- Kliknij i przeciągnij uchwyt wypełniania w dół, aby objąć wszystkie wiersze, które chcesz.
- Zwolnij mysz, Excel automatycznie wypełni każdą komórkę dostosowaną formułą.

Excel automatycznie aktualizuje odniesienia do komórek, jak wypełnia w dół. C2 będzie zawierać =A2-B2, C3 będzie zawierać =A3-B3, i tak dalej. Jest to względne odniesienie i jest to jedno z najbardziej oszczędzających czas umiejętności Excela dla każdego pracującego z wierszami i kolumnami danych.
Dwukrotny skrót kliknięcia: Jeśli twoje dane nie mają pustych komórek lub luk w sąsiedniej kolumnie, możesz dwukrotnie kliknąć uchwyt wypełniania zamiast przeciągania. Excel automatycznie wypełni w dół, dopasowując długość sąsiedniej kolumny, idealne do zastosowania formuły na wielu komórkach naraz. *
Metoda 3: Odejmij wiele komórek, używając funkcji SUM
Aby odjąć wiele komórek od jednej wartości początkowej w jednej czystej formule, użyj funkcji SUM z wartościami w jej wnętrzu.
Podejście: przekazuj wartości, które chcesz odjąć, jako wartości negatywne wewnątrz SUM.
Formuła — odejmij wiele komórek indywidualnie:
=SUM(A1, -B1, -C1, -D1)
=SUM(A1, -B1, -C1, -D1)
The provided C# code appears to be a fragment or possibly a formula from a spreadsheet application like Excel, rather than actual C# code. If this is intended to be a formula, it doesn't directly translate to VB.NET as it stands. However, if you meant to convert a C# code snippet that uses a similar operation, please provide the complete C# code for accurate conversion.
Formuła — odejmij zakres od jednej komórki (najczęstszy wzorzec):
=A1-SUM(B1:B5)
=A1-SUM(B1:B5)
=A1-SUM(B1:B5)
Ta druga wersja jest szczególnie przydatna, gdy masz budżet lub całość w jednej komórce oraz listę wydatków lub odliczeń rozproszoną po wielu komórkach w zakresie.

Kiedy to stosować: Za każdym razem, gdy musisz odjąć więcej niż dwie lub trzy wartości, ten wzorzec jest bardziej przejrzysty i znacznie łatwiejszy do audytu niż łączenie wielu znaków minus w wielu kolumnach. A także sprawia, że łatwo jest rozszerzyć zakres później, bez przepisania formuły. *
Metoda 4: Odejmij dwie kolumny (wiersz po wierszu)
Odejmowanie dwóch kolumn jest jednym z najczęstszych zadań w Excelu, na przykład odejmowanie kolumny "Koszt" od kolumny "Przychody", aby określić zysk na każdym wierszu.
- W komórce wynikowej (np. C1) wprowadź =A1-B1.
- Naciśnij Enter.
- Kliknij z powrotem na C1, a następnie użyj uchwytu wypełniania, aby przeciągnąć formułę w dół przez wszystkie wiersze.
Excel automatycznie odejmuje każdą parę komórek przez obie kolumny, A1−B1, A2−B2, A3−B3, i tak dalej aż do końca.
Jest to standardowe podejście do pracy z wierszami i kolumnami danych tabelarycznych i skaluje się do dowolnej liczby wierszy bez zmiany struktury formuły. *
Metoda 5: Odejmowanie, używając formuły tablicowej (odejmowanie wielu kolumn naraz)
Formuła tablicowa pozwala na odejmowanie w całym zakresie i zwracanie wielu wyników lub złożenie ich w jedną odpowiedź, bez ręcznego wypełniania w dół wiersz po wierszu. To podejście, po które sięgasz, gdy musisz odjąć wartości z wielu kolumn jednocześnie lub podczas wykonywania odejmowania macierzy.
Pojedyncza formuła tablicowa — Sumuj wszystkie różnice między dwiema kolumnami
Aby odjąć wszystkie wartości w kolumnie B od kolumny A i zwrócić całkowitą różnicę w jednej komórce wynikowej, użyj tej pojedynczej formuły tablicowej:
=SUM(A1:A10-B1:B10)
=SUM(A1:A10-B1:B10)
The provided code appears to be an Excel formula rather than C# code. If you have C# code that you would like converted to VB.NET, please provide that code for conversion.
W starszych wersjach Excela (przed Microsoft 365 / Excel 2019) potwierdź to jako formułę tablicową, naciskając Ctrl+Shift+Enter zamiast tylko Enter. Excel wyświetli ją w nawiasach klamrowych: {=SUM(A1:A10-B1:B10)}. W Microsoft 365 samo naciśnięcie Enter wystarcza, dynamiczne tablice obsługują to automatycznie.

Formuła odejmowania macierzy — Odejmij jedną macierz od drugiej
Jeśli masz dwa równie duże bloki danych i musisz odjąć jedną macierz od drugiej, Excel może to obsłużyć przez wszystkie wiersze i kolumny naraz.
Przykład: Wartości w A1:C3 (pierwsza macierz) i E1:G3 (druga macierz). Aby wyświetlić wynik odejmowania macierzy w I1:K3:
-
Wybierz zakres wyjściowy I1:K3 (ten sam rozmiar co twoje bloki danych).
- Wpisz następującą formułę:
=A1:C3-E1:G3=A1:C3-E1:G3The provided C# code appears to be a fragment of a formula or expression rather than valid C# code. It seems to resemble a spreadsheet formula rather than a programming construct. If you intended to provide a different piece of C# code, please clarify or provide the correct code for conversion.$vbLabelText $csharpLabel - W Excelu 365 naciśnij Enter, wyniki rozleją się automatycznie przez wszystkie komórki wyjściowe.
- W starszym Excelu naciśnij Ctrl+Shift+Enter, aby potwierdzić formułę tablicową przez wybrany zakres.
Formuły tablicowe działają na każdą parę odpowiadających komórek w zakresie jednocześnie. To jest znacznie bardziej efektywne niż pisanie indywidualnych formuł dla każdej komórki, gdy musisz odjąć jedną macierz od drugiej lub odjąć wartości z wielu kolumn jednocześnie. *
Metoda 6: Wklej specjalnie — Odejmij tę samą liczbę z wielu komórek
Ta metoda jest rzadko używana, ale niezwykle praktyczna. Pozwala odjąć tę samą liczbę z całego zakresu komórek na miejscu, nadpisując oryginalne wartości bez dodawania jakichkolwiek kolumn formuł do danych.
Przykład użycia: Potrzebujesz obniżyć 50 cen o 10 USD każdą i chcesz, aby ceny zostały zaktualizowane bezpośrednio w oryginalnych komórkach.
Kroki:
- Wpisz liczbę, którą chcesz odjąć (np. 10) w dowolnej pustej komórce.
-
Kliknij prawym przyciskiem myszy tę komórkę i wybierz Kopiuj (lub naciśnij Ctrl+C).
- Wybierz zakres komórek, z których chcesz odjąć (np. A1:A50).
-
Kliknij prawym przyciskiem myszy wybrany zakres i wybierz Wklej specjalnie (lub naciśnij Ctrl+Alt+V).
-
W oknie dialogowym Wklej specjalnie wybierz Wartości w sekcji "Wklej" i Odejmij w sekcji "Operacja".
- Kliknij OK.
Excel odjęł numer skopiowany od każdej wybranej komórki i nadpisuje oryginalne wartości bezpośrednio na miejscu.
Ważne: Ta metoda trwale zmienia wartości komórek. Jeśli możesz potrzebować cofnąć to, zachowaj kopię zapasową swoich oryginalnych danych najpierw lub użyj Ctrl+Z natychmiast, jeśli zmienisz zdanie. *
Metoda 7: Menu kontekstowe prawym przyciskiem myszy (Skrót wklejania specjalnego)
Warto zauważyć, że Wklej specjalnie jest zawsze jedno kliknięcie prawym przyciskiem myszy od siebie w Microsoft Excel, wielu użytkowników nie zdaje sobie sprawy, że menu kontekstowe daje bezpośredni dostęp do tej funkcji bez nawigowania po jakichkolwiek menu wstążki.
Po skopiowaniu swojej wartości:
- Kliknij prawym przyciskiem myszy zakres docelowy → Wklej specjalnie → ustaw Operację na Odejmij → OK.
Ten przepływ działa w całości w myszy, bez potrzeby używania skrótów klawiaturowych, co czyni go najbardziej dostępnym podejściem, jeśli wolisz nawigację punkt-i-klik zamiast komend klawiaturowych. *
Metoda 8: Odejmowanie dat w celu znalezienia różnicy
Excel przechowuje daty jako wewnętrzne numery seryjne, co oznacza, że możesz odejmować daty tak samo, jak odejmujesz inne liczby, aby określić różnicę między nimi.
Odejmij dwie daty, aby uzyskać liczbę dni między nimi:
=B1-A1
=B1-A1
Gdzie A1 jest datą początkową, a B1 datą końcową. Odpowiedź to liczba dni między nimi.
Napraw format komórki, jeśli wynik wyświetla się jako data: Po wpisaniu formuły komórka wynikowa może wyświetlać coś w stylu "1/14/1900" zamiast liczby. Dzieje się tak, ponieważ Excel automatycznie zastosował format komórki daty do wyniku. Aby to naprawić:
- Kliknij prawym przyciskiem myszy komórkę wynikową → Formatuj komórki.
-
W sekcji Numer wybierz Numer lub Ogólny.
- Kliknij OK.
Komórka teraz wyświetla poprawną różnicę całkowitą między dwiema datami. *
Metoda 9: Odejmowanie wartości czasowych (i poprawne wyświetlanie godzin)
Odejmowanie wartości czasowych działa tak samo, jak odejmowanie dat, wpisz prostą formułę odejmowania, a Excel zajmie się matematyką. Kluczem jest zastosowanie właściwego formatu komórki, aby wynik wyświetlał godziny poprawnie.
Podstawowe odejmowanie czasu:
=B1-A1
=B1-A1
Gdzie A1 jest czasem początkowym, a B1 jest czasem końcowym.
Poprawne wyświetlanie godzin dla okresów krótszych niż 24 godziny: Kliknij prawym przyciskiem myszy komórkę wynikową → Formatuj komórki → Niestandardowy → wpisz h:mm → OK.
Poprawne wyświetlanie godzin dla okresów ponad 24 godziny: Użyj formatu [h]:mm jako niestandardowego formatu. Kwadratowe nawiasy mówią Excelowi, aby nie przewijał godzin po 24, więc czas trwania wynoszący 30 godzin wyświetla się jako 30:00 zamiast 6:00.
Odejmowanie wartości czasowych przez godzinę zero: Jeśli zmiana zaczyna się o 23:00 i kończy o 6:00, proste =B1-A1 daje wynik ujemny. Napraw to za pomocą:
=MOD(B1-A1, 1)
=MOD(B1-A1, 1)
`=MOD(B1-A1, 1)`
Funkcja MOD owijająca obliczenia wokół północy i zawsze zwraca pozytywny czas upływu. *
Metoda 10: Odejmowanie z odwołaniami do komórek absolutnych (zablokowanie jednej komórki)
Czasami chcesz odjąć tę samą stałą komórkę od całej kolumny wartości, na przykład odejmując stopę podatkową lub regionalny koszt bazowy przechowywany w jednej komórce referencyjnej od każdego wiersza zestawu danych.
Jeśli użyjesz standardowej formuły, takiej jak =A1-B1 i przeciągniesz ją w dół za pomocą uchwytu wypełniania, Excel aktualizuje oba odwołania do komórek: B1 staje się B2, B3 i tak dalej. To nie jest to, czego chcesz, gdy B1 zawiera stałą wartość dla wszystkich wierszy.
Napraw: Dodaj znaki dolara, aby zablokować odwołanie. To nazywa się odwołaniem absolutnym.
=A1-$B$1
=A1-$B$1
The provided code appears to be an Excel formula rather than C# code. If you have C# code that needs conversion to VB.NET, please provide it, and I'll be happy to assist!
Teraz, gdy przeciągniesz formułę w dół, A1 zaktualizuje się do A2, A3 itd., ale $B$1 pozostanie zablokowane na B1 dla każdego wiersza. Odejmowanie od innych komórek w kolumnie A zawsze będzie używać tej samej liczby z B1.
Skrót klawiaturowy do przełączania między typami odwołań: Kliknij wewnątrz dowolnego odniesienia do komórki w formule i naciśnij F4. Excel przechodzi przez wszystkie cztery opcje: względne (A1) → absolutne ($A$1) → zablokowane na wierszu (A$1) → zablokowane na kolumnie ($A1). Naciśnij F4 wielokrotnie, aż osiągniesz potrzebną wersję. *
Metoda 11: Odejmowanie procentów
Odejmowanie procentów w Excelu wymaga zrozumienia, jak Excel przechowuje je wewnętrznie. Excel przechowuje wszystkie wartości procentowe jako dziesiętne, więc 20% jest przechowywane jako 0,2, a nie 20. To może dać nieoczekiwane wyniki w obliczonych komórkach, jeśli nie jesteś tego świadomy.
Aby odjąć procent przechowywany w innej komórce:
=A1-B1
=A1-B1
Jeśli A1 zawiera 500, a B1 zawiera 20% (przechowywane jako 0,2), ta formuła daje 499,8, odejmuje 0,2, a nie 20. To prawie na pewno nie jest zamierzony wynik.
Aby odjąć procent wartości pierwotnej (najczęstsze zastosowanie w rzeczywistości):
=A1-(A1*B1)
=A1-(A1*B1)
Lub równoważnie:
=A1*(1-B1)
=A1*(1-B1)
=A1 * (1 - B1)
Jeśli A1 wynosi 500, a B1 20%, to prawidłowo oblicza 500 − 100 = 400.
Gdy odejmujesz hardkodowany procent:
=A1-(A1*20%)
=A1-(A1*20%)
=A1 - (A1 * 0.2)
To usuwa potrzebę oddzielnej komórki procentowej i działa identycznie. *
Metoda 12: Makro VBA dla zautomatyzowanego odejmowania
Jeśli powtarzasz tę samą operację odejmowania danych w Excelu tydzień po tygodniu, proste makro VBA może zautomatyzować cały proces i uruchomić go na żądanie.
Uwaga: Nie potrzebujesz doświadczenia w programowaniu, aby nagrać podstawowe makro. Wbudowany rejestrator makr w Microsoft Excel rejestruje każdy ruch, który wykonujesz, i odtwarza go natychmiast.
Aby nagrać makro odejmowania:
-
Przejdź do Widok → Makra → Nagraj Makro.
- Nadaj mu nazwę (np. SubtractCosts) i przypisz opcjonalny klucz skrótu.
- Kliknij OK, nagranie się zaczyna.
- Wykonaj swoje kroki odejmowania normalnie (wprowadź swoją formułę, przeciągnij uchwyt wypełnienia, naciśnij Enter itd.).
- Przejdź do Widok → Makra → Zatrzymaj Nagrywanie.
Uruchom go w dowolnym momencie przez Widok → Makra → Pokaż Makra → Uruchom lub użyj przypisanego przez ciebie klucza skrótu.
Dla użytkowników, którzy chcą pisać bezpośrednio w VBA, oto prosty przykład, który przechodzi przez wiersze, odejmuje kolumnę B od kolumny A i zapisuje każdy wynik w kolumnie C:
Sub SubtractColumns()
Dim i As Integer
For i = 1 To 10
Cells(i, 3).Value = Cells(i, 1).Value - Cells(i, 2).Value
Next i
End Sub
Sub SubtractColumns()
Dim i As Integer
For i = 1 To 10
Cells(i, 3).Value = Cells(i, 1).Value - Cells(i, 2).Value
Next i
End Sub
Sub SubtractColumns()
Dim i As Integer
For i = 1 To 10
Cells(i, 3).Value = Cells(i, 1).Value - Cells(i, 2).Value
Next i
End Sub
Otwórz edytor VBA za pomocą Alt+F11, wklej to do modułu pod swoim skoroszytem i uruchom za pomocą F5. *
Typowe problemy i rozwiązywanie problemów
Nawet prosta formuła odejmowania może źle się zachowywać z rzeczywistymi danymi. Oto najczęstsze problemy i jak je naprawić.
Problem: The result shows #VALUE!
Przyczyna: Jedna z komórek, którą odejmujesz, zawiera ciąg tekstowy zamiast liczby. To często zdarza się, gdy dane są importowane z innego systemu, wartości wyglądają jak liczby, ale Excel przechowuje je jako tekst, więc nie może obliczać na nich.
Napraw: Wybierz problematyczne komórki, poszukaj małego zielonego trójkąta w lewym górnym rogu, kliknij ikonę ostrzeżenia i wybierz Konwertuj na liczbę. Alternatywnie, wymuś konwersję wewnątrz formuły: =VALUE(A1)-VALUE(B1). *
Problem: Komórka wynikowa wyświetla datę zamiast liczby
Przyczyna: Excel automatycznie zastosował format komórki jako datę do wyniku (częste przy odejmowaniu wartości daty lub gdy format komórki był ustawiony na Datę wcześniej).
Napraw: Kliknij prawym przyciskiem myszy na komórkę wynikową → Format komórek → Liczba → Ogólne lub Liczba → OK. *
Problem: Formuła wyświetla się jako ciąg tekstowy (widać tekst formuły, nie odpowiedź)
Przyczyna: Komórka została sformatowana jako Tekst zanim wprowadzono formułę, więc Excel przechował ją jako dosłowny ciąg, zamiast ją ocenić.
Napraw: Wybierz komórkę, przejdź do Strona główna → rozwijane Liczba → zmień format komórki z "Tekst" na "Ogólne". Następnie naciśnij F2, aby edytować i Enter, aby ponownie ocenić. Excel teraz wyświetli obliczony wynik. *
Problem: Pojawiają się liczby ujemne, gdy oczekiwano pozytywnych wartości
Przyczyna: Kolejność odejmowania jest odwrócona. =B1-A1 daje przeciwną wartość od =A1-B1. To jest jeden z najczęstszych błędów przy szybkim ustalaniu formuł.
Napraw: Zamień odwołania do komórek w formule. Jeśli konsekwentnie chcesz uzyskać przeciwny wynik niezależnie od tego, która wartość jest większa, owiń formułę w ABS(): =ABS(A1-B1). *
Problem: Uchyt wypełniania kopiuje wartości zamiast dopasowywać odwołania do komórek
Przyczyna: Mogłeś używać odwołań absolutnych ($A$1), gdzie zamierzałeś względne, lub komórka źródłowa była sformatowana jako Tekst przed wprowadzeniem formuły.
Napraw: Kliknij w formułę, umieść kursor wewnątrz odniesienia i naciśnij F4 wielokrotnie, aż usuną się znaki dolara. Następnie ponownie przeciągnij uchwyt wypełniania. *
Problem: Puste komórki w zakresie powodują błędy lub zero
Przyczyna: Gdy formuła odwołuje się do pustych komórek w twoich danych, SUM uwzględnia je jako zero (co ogólnie jest w porządku), ale bezpośrednia formuła, taka jak =A1-B1, gdzie B1 jest puste, zwróci wartość w A1 bez zmian, co może wyglądać niepoprawnie w kontekście.
Napraw: Użyj IFERROR, aby łagodnie obsługiwać puste komórki:
=IFERROR(A1-B1, 0)
=IFERROR(A1-B1, 0)
The provided code snippet appears to be an Excel formula rather than C# code. If you have a C# code snippet that you would like to convert to VB.NET, please provide it, and I'll be happy to assist you with the conversion.
Lub użyj IF, aby sprawdzić dokładnie przed odejmowaniem:
=IF(B1="", A1, A1-B1)
```* * *
### Problem: Subtracting percentages gives unexpected results
**Cause:** Excel stores percentages as decimals. Subtracting A1 - 20% subtracts 0.2 from A1's value, not 20.
**Fix:** Use=A1*(1-B1)to subtract a percentage of the original value. Use =A1-20 to subtract the literal number 20 regardless of how values are formatted in other cells.* * *
## Edge Cases the Other Articles Miss
**Subtracting across worksheets:** You can subtract values from different sheets in one formula. The syntax is =Sheet1!A1-Sheet2!A1. While building your formula, simply click the cell on the other sheet and Excel writes the full reference automatically.
**Subtracting with IFERROR for bulletproof formulas:** Whenever there is any chance a cell might be empty or return an error, wrap your formula to prevent the error from propagating to other cells that depend on this result:
```cs
=IFERROR(A1-B1, 0)
=IF(B1="", A1, A1-B1)
```* * *
### Problem: Subtracting percentages gives unexpected results
**Cause:** Excel stores percentages as decimals. Subtracting A1 - 20% subtracts 0.2 from A1's value, not 20.
**Fix:** Use=A1*(1-B1)to subtract a percentage of the original value. Use =A1-20 to subtract the literal number 20 regardless of how values are formatted in other cells.* * *
## Edge Cases the Other Articles Miss
**Subtracting across worksheets:** You can subtract values from different sheets in one formula. The syntax is =Sheet1!A1-Sheet2!A1. While building your formula, simply click the cell on the other sheet and Excel writes the full reference automatically.
**Subtracting with IFERROR for bulletproof formulas:** Whenever there is any chance a cell might be empty or return an error, wrap your formula to prevent the error from propagating to other cells that depend on this result:
```cs
=IFERROR(A1-B1, 0)
The provided text appears to be a mix of Excel formulas and explanations rather than C# code. However, I can convert the logic of the Excel formulas into VB.NET code if that is what you need. Here's how you might represent the logic of these Excel formulas in VB.NET:
net
This VB.NET code assumes `A1` and `B1` are variables that hold the values you would typically have in Excel cells. The code demonstrates how to handle conditional logic and error handling similar to Excel's `IF` and `IFERROR` functions.
Odejmowanie wartości czasu przez północ: Dla rejestrowania zmian, które przekraczają północ (11:00 PM start, 6:00 AM koniec), użyj =MOD(B1-A1, 1), aby zawsze zwrócić pozytywny czas upływu.
Odejmowanie w przefiltrowanych danych (tylko widoczne wiersze): Standardowe formuły odejmowania uwzględniają ukryte wiersze w swoich wynikach. Aby pracować tylko z widocznymi komórkami po filtrowaniu, użyj SUBTOTAL, aby najpierw zsumować widoczne dane, lub skopiuj przefiltrowany zakres do nowej lokalizacji przed wykonaniem obliczeń.
Odejmowanie wielu kolumn na raz bez formuły macierzowej: Zamiast pisać =A1-B1-C1-D1-E1-F1, użyj =A1-SUM(B1:F1). To jest łatwiejsze do rozbudowy, łatwiejsze do odczytania i mniej podatne na błędy przy dodawaniu lub usuwaniu kolumn. *
For Developers: Subtract in Excel with IronXL (C#)
Jeśli budujesz aplikację .NET, która odczytuje, modyfikuje lub generuje pliki Excel, pipeline raportowy, narzędzie finansowe, system automatyzacji dokumentów, obliczenia bezpośrednio w C# dają ci znacznie większą kontrolę niż poleganie na użytkowniku, aby otworzył Microsoft Excel i uruchamiał formuły ręcznie.
IronXL to biblioteka .NET, która pozwala na odczyt i zapis plików Excel bez potrzeby instalacji Excel na serwerze. Poniższy przykład odejmuje wartości z dwóch kolumn i zapisuje wyniki do trzeciej, co jest programistycznym odpowiednikiem opisanego powyżej metody dwóch kolumn odejmowania:
using IronXL;
// Load an existing workbook (or create one fresh with WorkBook.Create())
WorkBook workbook = WorkBook.Load("financials.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Loop through rows: subtract Column B from Column A, write each result to Column C
for (int row = 1; row <= 10; row++)
{
double valueA = sheet[$"A{row}"].DoubleValue;
double valueB = sheet[$"B{row}"].DoubleValue;
sheet[$"C{row}"].Value = valueA - valueB;
}
workbook.SaveAs("financials_updated.xlsx");
using IronXL;
// Load an existing workbook (or create one fresh with WorkBook.Create())
WorkBook workbook = WorkBook.Load("financials.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Loop through rows: subtract Column B from Column A, write each result to Column C
for (int row = 1; row <= 10; row++)
{
double valueA = sheet[$"A{row}"].DoubleValue;
double valueB = sheet[$"B{row}"].DoubleValue;
sheet[$"C{row}"].Value = valueA - valueB;
}
workbook.SaveAs("financials_updated.xlsx");
Imports IronXL
' Load an existing workbook (or create one fresh with WorkBook.Create())
Dim workbook As WorkBook = WorkBook.Load("financials.xlsx")
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
' Loop through rows: subtract Column B from Column A, write each result to Column C
For row As Integer = 1 To 10
Dim valueA As Double = sheet($"A{row}").DoubleValue
Dim valueB As Double = sheet($"B{row}").DoubleValue
sheet($"C{row}").Value = valueA - valueB
Next
workbook.SaveAs("financials_updated.xlsx")
Nie wymaga instalacji Excel, brak problemów z interoperacyjnością COM i działa na Windows, Linux i macOS. IronXL obsługuje pełne oceny formuł, formatowanie komórek, operacje na zakresach i odczyty danych wzdłuż wierszy i kolumn dowolnego rozmiaru, co czyni go naturalnym wyborem dla zautomatyzowanych procesów wsadowych, gdzie ręczne otwieranie arkusza kalkulacyjnego nie jest praktyczne. *
Szybka referencja: Którą metodę używać
|Sytuacja|Najlepsza metoda| |---|---| | Odjęcie dwóch liczb lub dwóch komórek raz | Prosta formuła: =A1-B1 | | Odjęcie przez całą kolumnę | Formuła + przeciągnięcie uchwytu wypełniania | | Odjęcie wielu komórek od jednego wyniku |=A1-SUM(B1:B5)| | Odjęcie wielu kolumn do jednego wyniku |=A1-SUM(B1:F1)| | Odjęcie tej samej liczby od wielu komórek | Wklej specjalnie → Odejmij | | Odjęcie ustalonej komórki referencyjnej od wszystkich wierszy | Odwołanie absolutne: =A1-$B$1 | | Odjęcie jednej macierzy od innej | Formuła macierzowa: =A1:C3-E1:G3 | | Odjęcie dat — znajdź różnicę w dniach | =B1-A1 + Format komórki Ogólny | | Odjęcie wartości czasu, prawidłowe wyświetlanie godzin | =B1-A1 + Format komórki [h]:mm |
| Odjęcie procentów wartości |=A1*(1-B1)| | Obsługa pustych komórek lub błędów elegancko |=IFERROR(A1-B1, 0)| | Powtarzanie tej samej operacji odejmowania tygodniowo | Nagranie makra VBA | | Zautomatyzowane lub serwerowe odejmowanie w Excelu |IronXL (.NET)|
Podsumowanie
Odejmowanie w Excelu to jedna z tych umiejętności, które początkowo wydają się trywialnie proste, i w podstawowym przypadku naprawdę takie są. Ale praca z rzeczywistymi danymi oznacza napotkanie dat, wartości czasowych, procentów, pustych komórek, ciągów tekstowych, przefiltrowanych wierszy i wielokolumnowych lub macierzowych zakresów. Wiedza, które narzędzie wybrać w każdej sytuacji, to jest to, co oddziela kogoś, kto może wykonywać proste obliczenia w Excelu, od kogoś, kto pewnie radzi sobie z złożonymi zadaniami bez potknięć.
W większości przypadków, =A1-B1 i uchwyt wypełniania pchną cię bardzo daleko. Podejście oparte na SUM obsługuje wiele komórek schludnie. Odwołania absolutne blokują wartości stałe. Formuły macierzowe i formuła odejmowania macierzy radzą sobie w scenariuszach, gdzie musisz odejmować przez całe zakresy naraz. A sekcja rozwiązywania problemów obejmuje sytuacje, które najprawdopodobniej złapią cię nieprzygotowanego podczas pracy z importowanymi lub niespójnymi danymi.
To są podstawowe umiejętności Excela, a teraz masz je wszystkie w jednym miejscu.




