webForumDet fria alternativet

Excel Läs data i annan tab

2 svar · 1 207 visningar · startad av startail

startailMedlem sedan sep. 2000155 inlägg
#1

Jag försöker få Excel att läsa data från en annan tab som jag har all datan i.
Jag har all data i tabben "DATA" och vill från den ta ut rader beroende på vilken tab jag har.

Tex, Tabben "PACK" skall bara ta ut data från DATA om DATA!C:C är eller börjar på "PACK". Altså kan DATA!C:C vara PACK%.

Hur får jag den att hämta ut data från DATA till PACK och skippa de rader som inte skall tas ut? Flera rader kan ha samma namn, men den skall skriva ut den som en egen rad.

Vad jag altså vill är att ta ut alla rader på ett vist kritera och lägga över i en annan tab för visning och hantering av datan, men skippa de rader som har med annat att göra.

Tack på förhand.

MindreVetandeMedlem sedan okt. 2005371 inlägg
#2

Du vill alltså ta över ALLA rader som uppfyller kriteriet?
Vill du sammaställa data så går det naturligtvis med D-formlerna, LETA, PASSA eller pivotabell.

Om du vill ha ut varenda rad så får du nog använda något av filten. Men, eftersom du vill kopiera data till ett annat blad så måste du använda:

DATA->FILTER->Avancerat filter->till annan plats

Det är "engångsfunktioner" och det går inte att få det automatiskt uppdaterat om du inte lägger in makron. Dessutom måste alla kolumner ha rubriker och du måste göra iording en fråga någonstans.

Exempel, antag att följande står i "DATA" C:D

kritera	data
packare	1
pucko	7
nisse	8
alfons	9
pack	2
packad	3

Villkoret står i blad "PACK", cell A1-A2 (Villkoret kan ligga var som helst, det kräver bara plats för en rubrik och själva villkoret)

kritera
pack*

Nu kan du ställa dig i Blad "Pack" cell C, gå till:
DATA->FILTER->Avancerat filter->till annan plats

Listområde: DATA!$C:$D
Vilkorsområde: pack!$A$1:$A$2
Kopiera till: pack!$C$1:$D$1

OBS! du MÅSTE stå i "målbladet" när du gör filtreringen.

Det här gör väl ungefär det du vill? Men nackdelarna är väl ganska uppenbara. Vill du uppdatera data så blir du tvungen att köra hela paketet igen. Det går natuligtvis att infoga en knapp och skriva ett makro, men smidigt blir det inte.
Visa->vektygsfällt->kontroller
infoga en knapp
Högercklick, "visa kod"

Private Sub CommandButton1_Click()
Sheets("PACK").Select
    Sheets("DATA").Columns("C:D").AdvancedFilter _
    Action:=xlFilterCopy, CriteriaRange:=Range("A1:A2"), _
    CopyToRange:=Range("C1:D1"), Unique:=False
End Sub

Stäng kodfönstret, ge knappen ett vettigt namn och stäng av formulärredigeringsläget.

Ja, ja. Väldigt osnyggt om jag får säga det själv :bla . Men jag kan inte komma på någonting annat (om du inte vill rota runt i Matrisformlernas mörka hemligheter. Men det skulle bli ganska komplicerade saker som skulle vara väldigt svåra att felsöka.)

TosseMedlem sedan aug. 2004126 inlägg
#3

Så här kan man göra om man vill ha formler som uppdaterar sig utan makron.

Jag har infört en hjälpkolumn i kolumn A, vilket innebär att kolumnerna från databladet förskjuts ett steg till höger på PACK-bladet. Denna kolumn kan förstås flyttas någon annanstans och döljas om man vill det. Hjälpkolumnen kommer innehålla det radnummer i data-bladet som posten kommer ifrån.

I bladet PACK:

               A                                                            B                               
1   =PASSA("PACK*";DATA!C:C;0)                                  =FÖRSKJUTNING(DATA!A$1;$A1-1;0)
2   =PASSA("PACK*";INDIREKT("DATA!C" & A1+1 & ":C65536");0)+A1  =FÖRSKJUTNING(DATA!A$1;$A2-1;0)

Markera A2:B2 och fyll nedåt så långt du behöver, sedan kan du markera kolumn B och fylla höger så långt du behöver. (Jag vet inte hur många kolumner/rader ditt data-blad innehåller)

//Tosse

129 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)