Copiați formule fără deplasare link

Problemă

Să presupunem că avem un tabel simplu ca acesta, în care sumele sunt calculate pentru fiecare lună în două orașe, iar apoi totalul este convertit în euro la cursul din celula galbenă J2.

Copiați formule fără deplasare link

Problema este că, dacă copiați intervalul D2:D8 cu formule în altă parte pe foaie, atunci Microsoft Excel va corecta automat legăturile din aceste formule, mutându-le într-un loc nou și nu mai numără:

Copiați formule fără deplasare link

Sarcină: copiați intervalul cu formule astfel încât formulele să nu se modifice și să rămână aceleași, păstrând rezultatele calculului.

Metoda 1. Legături absolute

După cum puteți vedea din imaginea anterioară, Excel mută numai link-uri relative. Referința absolută (cu semnele $) la celula galbenă $J$2 nu s-a mutat. Prin urmare, pentru copierea exactă a formulelor, puteți converti temporar toate referințele din toate formulele în cele absolute. Va trebui să selectați fiecare formulă din bara de formule și să apăsați tasta F4:
Copiați formule fără deplasare link
Cu un număr mare de celule, această opțiune, desigur, dispare - este prea laborioasă.

Metoda 2: Dezactivați temporar formulele

Pentru a preveni modificarea formulelor la copiere, trebuie să vă asigurați (temporar) că Excel încetează să le trateze ca formule. Acest lucru se poate face prin înlocuirea semnului egal (=) cu orice alt caracter care nu se găsește în mod normal în formule, cum ar fi un semn hash (#) sau o pereche de ampersand (&&) pentru timpul de copiere. Pentru aceasta:

  1. Selectați intervalul cu formule (în exemplul nostru D2:D8)
  2. Clic Ctrl + H pe tastatură sau pe o filă Acasă – Găsiți și selectați – Înlocuiți (Acasă — Găsiți&Selectați — Înlocuiți)

    Copiați formule fără deplasare link

  3. În caseta de dialog care apare, introduceți ceea ce căutăm și cu ce înlocuim și în parametrii (Opțiuni) nu uitați să clarificați Domeniul de căutare – Formule. Apăsăm Înlocuiește-le pe toate (Înlocuiește-le pe toate).
  4. Copiați intervalul rezultat cu formule dezactivate în locul potrivit:

    Copiați formule fără deplasare link

  5. Înlocui # on = înapoi folosind aceeași fereastră, returnând funcționalitatea formulelor.

Metoda 3: Copiați prin Notepad

Această metodă este mult mai rapidă și mai ușoară.

Apăsați comanda rapidă de la tastatură Ctrl+Ё sau butonul Afișați formule fila formulă (Formule — Afișați formule), pentru a activa modul de verificare a formulei – în loc de rezultate, celulele vor afișa formulele prin care sunt calculate:

Copiați formule fără deplasare link

Copiați gama noastră D2:D8 și lipiți-o în standard Blocnotes:

Copiați formule fără deplasare link

Acum selectați tot ce ați lipit (Ctrl + A), copiați-l din nou în clipboard (Ctrl + C) și lipiți-l pe foaie în locul de care aveți nevoie:

Copiați formule fără deplasare link

Rămâne doar să apăsați butonul Afișați formule (Afișați formule)pentru a readuce Excel la modul normal.

Notă: această metodă uneori eșuează pe tabele complexe cu celule îmbinate, dar în marea majoritate a cazurilor funcționează bine.

Metoda 4. Macro

Dacă deseori trebuie să faceți o astfel de copiere a formulelor fără a schimba referințele, atunci este logic să utilizați o macrocomandă pentru aceasta. Apăsați comanda rapidă de la tastatură Alt + F11 sau butonul Visual Basic fila dezvoltator (Dezvoltator), introduceți un modul nou prin meniu Inserare – Modul  și copiați textul acestei macrocomenzi acolo:

Sub Copy_Formulas() Dim copyRange As Range, pasteRange As Range La eroare Reluare Următorul Set copyRange = Application.InputBox("Selectați celulele cu formule de copiat.", _ "Copiați formulele exact", Implicit:=Selection.Address, Type := 8) Dacă copyRange nu este nimic, atunci ieșiți din subsetul pasteRange = Application.InputBox ("Acum selectați intervalul de lipire." & vbCrLf & vbCrLf & _ "Intervalul trebuie să fie egal ca dimensiune cu intervalul original de celule " & vbCrLf & _ " pentru a copia." , "Copiați formulele exact", _ Implicit:=Selection.Address, Type:=8) If pasteRange.Cells.Count <> copyRange.Cells.Count Then MsgBox "Copy and paste ranges vary in size!", vbExclamation, „Eroare de copiere” Exit Sub End Dacă dacă pasteRange este nimic, Ieșire Sub Else pasteRange.Formula = copyRange.Formula End If End Sub

Puteți folosi butonul pentru a rula macro-ul. Macrocomenzi fila dezvoltator (Dezvoltator – Macrocomenzi) sau scurtătură de la tastatură Alt + F8. După rularea macrocomenzii, vă va cere să selectați intervalul cu formulele originale și intervalul de inserare și va copia automat formulele:

Copiați formule fără deplasare link

  • Vizualizarea convenabilă a formulelor și a rezultatelor în același timp
  • De ce este necesar stilul de referință R1C1 în formulele Excel
  • Cum să găsiți rapid toate celulele cu formule
  • Instrument pentru a copia formule exacte din suplimentul PLEX

 

Lasă un comentariu