Ja, du kan göra detta med Excel -formler utan VBA eller makron. Kärnteknikerna involverar att kombinera "indirekt", "adress", "rad", "kolumn" och potentiellt andra funktioner beroende på komplexiteten i dina referens- och klistrabehov.
Så här närmar man det, uppdelat efter scenarier:
Scenario 1:Enkel cellreferens
Låt oss säga att du vill få värdet från cell A1 och klistra in det i cell B1. Du behöver inga snygga formler för detta; En enkel `=A1` i cell B1 räcker.
Scenario 2:Dynamisk cellreferens
Låt oss säga att du har en cell (t.ex. C1) som innehåller kolumnbrevet ("A") och en annan cell (t.ex. C2) som innehåller radnumret (1). Du vill få värdet från cellen som hänvisas till av dessa två celler och klistra in det i D1. Du kan använda `indirekt ':
I cell D1 anger du formeln:`=Indirekt (C1 &C2)` `
Denna formel sammanställer "A" och "1" för att skapa "A1", och sedan hämtar "indirekt" värdet från cell A1.
Scenario 3:Mer komplex referens och kopiering
Anta att du har data i kolumn A och vill kopiera värden från kolumn A till kolumn B, men endast om motsvarande cell i kolumn C innehåller ett specifikt värde (t.ex. "Ja").
* Kolumn A: Värden för att potentiellt kopiera.
* kolumn B: Målkolumn.
* kolumn C: Tillståndskolumn ("Ja" eller annat värde).
I cell B1 anger du följande formel och dra ner den:
`=If (c1 =" ja ", a1," ")`
Denna formel kontrollerar om C1 är "ja". Om det är, kopierar det värdet från A1; Annars lämnar det B1 tomt.
Scenario 4:Kopiering baserad på rad-/kolumnberäkningar
Låt oss säga att du vill kopiera ett värde från en cell tre rader under och en kolumn till höger om en referenscell. Om referenscellen är E5 vill du kopiera värdet från G8. Du kan använda `Adress ',` rad' och `kolumn ':
Referenscell (t.ex. E5)
I en annan cell (t.ex. F5), använd denna formel:
`=Indirekt (adress (rad (E5)+3, kolumn (E5) +1))` `
Detta bryts ned som:
* `Rad (E5)`:Hämtar radnumret E5 (5).
* `Kolumn (E5)`:Hämtar kolumnantalet E5 (5).
* `Rad (E5)+3`:Lägger till 3 till radnumret (8).
* `Kolumn (E5)+1`:Lägger till 1 till kolumnnumret (6). (Kolumn 6 är g)
* `Adress (8,6)`:Genererar adressen "G8".
* `Indirekt (" G8 ")`:Hämtar värdet från G8.
Viktiga överväganden:
* Felhantering: "Indirekt" kan returnera fel om den refererade cellen är ogiltig. Överväg att använda "iferror" för att hantera potentiella fel. Till exempel:`=iferror (indirekt (c1 &c2)," ")` `
* arknamn: Om du behöver referera celler i olika ark, inkludera arknamnet i funktionen "indirekt". Till exempel:`=indirekt (" 'Sheet2'! A1 ")` Se till att arknamnet är inneslutet i enstaka citat om det innehåller mellanslag eller specialtecken.
* Cirkulära referenser: Undvik att skapa cirkulära referenser där en formel hänvisar till sin egen cell, antingen direkt eller indirekt.
Dessa exempel visar hur man kan uppnå olika nivåer av dynamisk referens och "klistra" (mer exakt, värdesvinning) med hjälp av Excel -formler. Kom ihåg att anpassa dessa tekniker till din specifika datastruktur och krav. Om du har ett mycket komplicerat scenario kommer du att hjälpa till att skapa en mer skräddarsydd lösning.