Kopiuj formuły bez przesunięcia linku

Problem

Załóżmy, że mamy taką prostą tabelę, w której kwoty są obliczane za każdy miesiąc w dwóch miastach, a następnie suma jest przeliczana na euro według kursu z żółtej komórki J2.

Kopiuj formuły bez przesunięcia linku

Problem polega na tym, że jeśli skopiujesz zakres D2:D8 z formułami w inne miejsce arkusza, to Microsoft Excel automatycznie poprawi łącza w tych formułach, przenosząc je w nowe miejsce i przestając liczyć:

Kopiuj formuły bez przesunięcia linku

Zadanie: skopiuj zakres z formułami, aby formuły się nie zmieniły i pozostały takie same, zachowując wyniki obliczeń.

Metoda 1. Linki bezwzględne

Jak widać na poprzednim obrazku, Excel przesuwa tylko linki względne. Bezwzględne (ze znakami $) odwołanie do żółtej komórki $J$2 nie zostało przeniesione. Dlatego w celu dokładnego kopiowania formuł można tymczasowo przekonwertować wszystkie odwołania we wszystkich formułach na bezwzględne. Będziesz musiał wybrać każdą formułę na pasku formuły i nacisnąć klawisz F4:
Kopiuj formuły bez przesunięcia linku
Przy dużej ilości komórek ta opcja oczywiście znika – jest to zbyt pracochłonne.

Metoda 2: Tymczasowo wyłącz formuły

Aby zapobiec zmianie formuł podczas kopiowania, musisz (tymczasowo) upewnić się, że program Excel przestaje traktować je jako formuły. Można to zrobić, zastępując znak równości (=) dowolnym innym znakiem, którego normalnie nie można znaleźć w formułach, takim jak znak krzyża (#) lub para znaków ampersand (&&) określająca czas kopiowania. Dla tego:

  1. Wybierz zakres z formułami (w naszym przykładzie D2:D8)
  2. Kliknij Ctrl + H na klawiaturze lub na karcie Strona główna – Znajdź i wybierz – Zamień (Dom — Znajdź i wybierz — Zamień)

    Kopiuj formuły bez przesunięcia linku

  3. W wyświetlonym oknie dialogowym wpisujemy czego szukamy i czym zastępujemy oraz w parametry (Opcje) nie zapomnij wyjaśnić Zakres wyszukiwania – Wzory. Naciskamy Zamień wszystko (Zamień wszystko).
  4. Skopiuj wynikowy zakres z dezaktywowanymi formułami we właściwe miejsce:

    Kopiuj formuły bez przesunięcia linku

  5. zastąpić # on = z powrotem używając tego samego okna, przywracając funkcjonalność formułom.

Metoda 3: Kopiuj za pomocą Notatnika

Ta metoda jest znacznie szybsza i łatwiejsza.

Naciśnij skrót klawiaturowy Ctrl+Ё lub przycisk Pokaż formuły Zakładka formuła (Formuły — Pokaż formuły), włączyć tryb sprawdzania formuł – zamiast wyników w komórkach pojawią się formuły, według których są obliczane:

Kopiuj formuły bez przesunięcia linku

Skopiuj nasz asortyment D2: D8 i wklej go do standardu Notatnik:

Kopiuj formuły bez przesunięcia linku

Teraz zaznacz wszystko wklejone (Ctrl + A), skopiuj ponownie do schowka (Ctrl + C) i wklej na arkuszu w potrzebne miejsce:

Kopiuj formuły bez przesunięcia linku

Pozostaje tylko nacisnąć przycisk Pokaż formuły (Pokaż formuły)aby przywrócić program Excel do normalnego trybu.

Uwaga: ta metoda czasami zawodzi w przypadku złożonych tabel ze scalonymi komórkami, ale w zdecydowanej większości przypadków działa dobrze.

Metoda 4. Makro

Jeśli często musisz wykonywać takie kopiowanie formuł bez przesuwania referencji, to ma sens użyć do tego makra. Naciśnij skrót klawiaturowy Alt + F11 lub przycisk Visual Basic Zakładka wywoływacz (Deweloper), wstaw nowy moduł przez menu Wstaw – moduł  i skopiuj tam tekst tego makra:

Sub Copy_Formulas() Przyciemnij zakres copyRange jako zakres, wklejRange jako zakres w przypadku błędu Wznów następny Ustaw copyRange = Application.InputBox("Wybierz komórki z formułami do skopiowania.", _ "Kopiuj dokładnie formuły", Domyślnie:=Selection.Address, Typ := 8) Jeśli copyRange to nic, wyjdź z podzestawu pasteRange = Application.InputBox("Teraz wybierz zakres wklejania." & vbCrLf & vbCrLf & _ "Zakres musi mieć taki sam rozmiar jak oryginalny zakres komórek " & vbCrLf & _ " do skopiowania." , "Dokładnie skopiuj formuły", _ Domyślnie:=Selection.Address, Type:=8) If pasteRange.Cells.Count <> copyRange.Cells.Count then MsgBox "Kopiuj i wklej zakresy różnią się wielkością!", vbExclamation, „Błąd kopiowania” Wyjdź z Sub End If Jeśli pasteRange to nic, to wyjdź z Sub W przeciwnym razie pasteRange.Formula = copyRange.Formula End If End Sub

Możesz użyć przycisku, aby uruchomić makro. Makra Zakładka wywoływacz (Deweloper — Makra) lub skrót klawiaturowy Alt + F8. Po uruchomieniu makra poprosi Cię o wybranie zakresu z oryginalnymi formułami i zakresem wstawiania i automatycznie skopiuje formuły:

Kopiuj formuły bez przesunięcia linku

  • Wygodne przeglądanie formuł i wyników jednocześnie
  • Dlaczego styl odniesienia W1K1 jest potrzebny w formułach Excela
  • Jak szybko znaleźć wszystkie komórki za pomocą formuł
  • Narzędzie do kopiowania dokładnych formuł z dodatku PLEX

 

Dodaj komentarz