Copia fórmules sense desplaçament d'enllaç

Problema

Suposem que tenim una taula senzilla com aquesta, en què les quantitats es calculen per a cada mes a dues ciutats, i després el total es converteix en euros al tipus de la cel·la groga J2.

Copia fórmules sense desplaçament d'enllaç

El problema és que si copieu l'interval D2:D8 amb fórmules en un altre lloc del full, Microsoft Excel corregirà automàticament els enllaços d'aquestes fórmules, movent-los a un lloc nou i deixarà de comptar:

Copia fórmules sense desplaçament d'enllaç

Tasca: copiar el rang amb fórmules perquè les fórmules no canviïn i es mantinguin iguals, mantenint els resultats del càlcul.

Mètode 1. Enllaços absoluts

Com podeu veure a la imatge anterior, Excel només desplaça els enllaços relatius. La referència absoluta (amb signes $) a la cel·la groga $J$2 no s'ha mogut. Per tant, per a la còpia exacta de fórmules, podeu convertir temporalment totes les referències de totes les fórmules en absolutes. Haureu de seleccionar cada fórmula a la barra de fórmules i prémer la tecla F4:
Copia fórmules sense desplaçament d'enllaç
Amb un gran nombre de cèl·lules, aquesta opció, per descomptat, desapareix: és massa laboriosa.

Mètode 2: desactivar temporalment les fórmules

Per evitar que les fórmules canviïn en copiar, cal que us assegureu (temporalment) que Excel deixi de tractar-les com a fórmules. Això es pot fer substituint el signe igual (=) per qualsevol altre caràcter que no es troba normalment a les fórmules, com ara un signe hash (#) o un parell de signes (&&) per al temps de còpia. Per això:

  1. Seleccioneu l'interval amb fórmules (al nostre exemple D2:D8)
  2. feu clic Ctrl + H al teclat o en una pestanya Inici – Cerca i selecciona – Substitueix (Inici — Cerca i selecciona — Substitueix)

    Copia fórmules sense desplaçament d'enllaç

  3. Al quadre de diàleg que apareix, introduïu el que estem buscant i el que substituïm, i a Paràmetres (Opcions) no oblideu aclarir Àmbit de cerca - Fórmules. Premem Substituïu-ho tot (Substituïu-ho tot).
  4. Copieu l'interval resultant amb fórmules desactivades al lloc correcte:

    Copia fórmules sense desplaçament d'enllaç

  5. Reemplaçar # on = tornar utilitzant la mateixa finestra, retornant la funcionalitat a les fórmules.

Mètode 3: còpia mitjançant el Bloc de notes

Aquest mètode és molt més ràpid i fàcil.

Premeu la drecera del teclat Ctrl+Ё o botó Mostrar fórmules llengüeta fórmula (Fórmules — Mostrar fórmules), per activar el mode de comprovació de fórmules: en comptes dels resultats, les cel·les mostraran les fórmules amb les quals es calculen:

Copia fórmules sense desplaçament d'enllaç

Copieu el nostre rang D2:D8 i enganxeu-lo a l'estàndard Quadern:

Copia fórmules sense desplaçament d'enllaç

Ara seleccioneu tot el que heu enganxat (Ctrl + A), torna-ho a copiar al porta-retalls (Ctrl + C) i enganxeu-lo al full al lloc que necessiteu:

Copia fórmules sense desplaçament d'enllaç

Només queda prémer el botó Mostrar fórmules (Mostrar fórmules)per tornar Excel al mode normal.

Nota: aquest mètode de vegades falla en taules complexes amb cel·les combinades, però en la gran majoria dels casos funciona bé.

Mètode 4. Macro

Si sovint heu de fer aquestes còpies de fórmules sense canviar les referències, llavors té sentit utilitzar una macro per a això. Premeu la drecera del teclat Alt + F11 o botó Visual Basic llengüeta revelador (Desenvolupador), inseriu un mòdul nou a través del menú Inserir – Mòdul  i copieu el text d'aquesta macro allà:

Sub Copy_Formulas() Dim copyRange As Range, pasteRange As Range En cas d'error Reprèn Següent Set copyRange = Application.InputBox("Seleccioneu cel·les amb fórmules per copiar.", _ "Copia les fórmules exactament", Per defecte:=Selecció.Adreça, Tipus := 8) Si copyRange no és res, sortiu del subconjunt pasteRange = Application.InputBox("Ara seleccioneu l'interval d'enganxament." & vbCrLf & vbCrLf & _ "L'interval ha de tenir la mateixa mida que l'interval de cel·les " & vbCrLf & _ " original per copiar." , "Copiar fórmules exactament", _ Per defecte:=Selection.Address, Tipus:=8) If pasteRange.Cells.Count <> copyRange.Cells.Count Then MsgBox "Copiar i enganxar intervals varien de mida!", vbExclamation, "Error de còpia" Exit Sub End Si si pasteRange no és res Aleshores Surt Sub Else pasteRange.Formula = copyRange.Formula End If End Sub

Podeu utilitzar el botó per executar la macro. Macros llengüeta revelador (Desenvolupador - Macros) o drecera de teclat Alt + F8. Després d'executar la macro, us demanarà que seleccioneu l'interval amb les fórmules originals i l'interval d'inserció i copiarà les fórmules automàticament:

Copia fórmules sense desplaçament d'enllaç

  • Visualització còmoda de fórmules i resultats al mateix temps
  • Per què cal l'estil de referència R1C1 a les fórmules d'Excel
  • Com trobar ràpidament totes les cel·les amb fórmules
  • Eina per copiar fórmules exactes del complement PLEX

 

Deixa un comentari