Kopijuoti formules be nuorodos poslinkio

Problema

Tarkime, turime tokią paprastą lentelę, kurioje kiekvienam mėnesiui dviejuose miestuose suskaičiuojamos sumos, o tada suma iš geltonojo langelio J2 paverčiama eurais.

Kopijuoti formules be nuorodos poslinkio

Problema ta, kad jei nukopijuosite diapazoną D2:D8 su formulėmis kur nors kitoje lapo vietoje, tada Microsoft Excel automatiškai pataisys nuorodas šiose formulėse, perkels jas į naują vietą ir nustos skaičiuoti:

Kopijuoti formules be nuorodos poslinkio

Užduotis: nukopijuokite diapazoną su formulėmis, kad formulės nesikeistų ir liktų tokios pat, išlaikant skaičiavimo rezultatus.

1 būdas. Absoliučios sąsajos

Kaip matote iš ankstesnio paveikslėlio, „Excel“ perkelia tik santykines nuorodas. Absoliuti (su $ ženklais) nuoroda į geltoną langelį $J$2 nepajudėjo. Todėl norėdami tiksliai nukopijuoti formules, galite laikinai konvertuoti visas nuorodas visose formulėse į absoliučias. Turėsite pasirinkti kiekvieną formulę formulės juostoje ir paspausti klavišą F4:
Kopijuoti formules be nuorodos poslinkio
Esant dideliam ląstelių skaičiui, ši galimybė, žinoma, išnyksta – tai per daug varginanti.

2 būdas: laikinai išjunkite formules

Norėdami, kad formulės nepasikeistų kopijuojant, turite (laikinai) įsitikinti, kad „Excel“ nustojo jas laikyti formulėmis. Tai galima padaryti pakeičiant lygybės ženklą (=) bet kokiu kitu simboliu, kurio paprastai nėra formulėse, pvz., maišos ženklu (#) arba ampersandų pora (&&) kopijavimo laikui. Už tai:

  1. Pasirinkite diapazoną su formulėmis (mūsų pavyzdyje D2:D8)
  2. Spauskite Ctrl + H klaviatūroje arba skirtuke Pagrindinis puslapis – Rasti ir pasirinkti – Pakeisti (Pagrindinis – Rasti ir pasirinkti – Pakeisti)

    Kopijuoti formules be nuorodos poslinkio

  3. Pasirodžiusiame dialogo lange įveskite tai, ko ieškome ir kuo keičiame, ir į jį Parametrai (Galimybės) nepamirškite paaiškinti Paieškos sritis – Formulės. Paspaudžiame Pakeiskite visus (Pakeisti viską).
  4. Nukopijuokite gautą diapazoną su išjungtomis formulėmis į reikiamą vietą:

    Kopijuoti formules be nuorodos poslinkio

  5. pakeisti # on = atgal naudodami tą patį langą, grąžindami formulių funkcionalumą.

3 būdas: nukopijuokite naudodami užrašų knygelę

Šis metodas yra daug greitesnis ir paprastesnis.

Paspauskite spartųjį klavišą Ctrl+Ё arba mygtuką Rodyti formules kortelė formulė (Formulės – Rodyti formules), įjungti formulių tikrinimo režimą – vietoje rezultatų langeliuose bus rodomos formulės, pagal kurias jie skaičiuojami:

Kopijuoti formules be nuorodos poslinkio

Nukopijuokite mūsų diapazoną D2:D8 ir įklijuokite jį į standartą Notepad:

Kopijuoti formules be nuorodos poslinkio

Dabar pasirinkite viską, kas įklijuota (Ctrl + A), dar kartą nukopijuokite į mainų sritį (Ctrl + C) ir įklijuokite į lapą reikiamoje vietoje:

Kopijuoti formules be nuorodos poslinkio

Belieka tik paspausti mygtuką Rodyti formules (Rodyti formules)norėdami grąžinti Excel į įprastą režimą.

Pastaba: šis metodas kartais nepavyksta sudėtingose ​​lentelėse su sujungtais langeliais, tačiau daugeliu atvejų jis veikia gerai.

4 būdas. Makro

Jei dažnai tenka daryti tokį formulių kopijavimą nekeičiant nuorodų, prasminga tam naudoti makrokomandą. Paspauskite spartųjį klavišą Alt + F11 arba mygtuką "Visual Basic" kortelė ryškalas (Programuotojas), įdėkite naują modulį per meniu Įterpimas – modulis  ir nukopijuokite šios makrokomandos tekstą ten:

Sub Copy_Formulas() Pritemdykite copyRange kaip diapazoną, pasteRange kaip diapazoną, kai įvyko klaida Tęsti Next Set copyRange = Application.InputBox("Pasirinkite langelius su formulėmis, kurias norite kopijuoti.", _ "Tiksliai nukopijuokite formules", Default:=Pasirinkimas. Adresas, Tipas := 8) Jei copyRange nėra nieko, tada išeikite iš Sub Set pasteRange = Application.InputBox("Dabar pasirinkite įklijavimo diapazoną." & vbCrLf & vbCrLf & _ "Didžiapas turi būti lygus pradiniam " & vbCrLf & _ " langelių diapazonui nukopijuoti." , "Tiksliai nukopijuoti formules", _ Default:=Selection.Address, Type:=8) If pasteRange.Cells.Count <> copyRange.Cells.Count Tada MsgBox "Kopijuoti ir įklijuoti diapazonai skiriasi dydžiu!", vbŠauktukas, "Kopijavimo klaida" Išeiti antrinės dalies pabaiga, jei jei pasteRange nėra nieko, tada išeiti iš sub. Else pasteRange.Formula = copyRange.Formula pabaiga, jei pabaiga

Galite naudoti mygtuką makrokomandai paleisti. Makrokomandos kortelė ryškalas (Kūrėjas – makrokomandos) arba spartusis klavišas Alt + F8. Paleidus makrokomandą, ji paprašys pasirinkti diapazoną su originaliomis formulėmis ir įterpimo diapazoną ir automatiškai nukopijuos formules:

Kopijuoti formules be nuorodos poslinkio

  • Patogus formulių ir rezultatų peržiūra vienu metu
  • Kodėl „Excel“ formulėse reikalingas R1C1 nuorodos stilius
  • Kaip greitai rasti visas ląsteles su formulėmis
  • Įrankis tikslioms formulėms nukopijuoti iš PLEX priedo

 

Palikti atsakymą