PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerExcelExcelSumma.omf med "indirekt" (dynamisk ref) samt cellreferens till annan bok & blad - bok fungerar ejSumma.omf med "indirekt" (dynamisk ref) samt cellreferens till annan bok & blad - bok fungerar ej
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2023-11-23 09:03
 

 Hej,

Nedan ser ni två arbetsböcker, till vänster "Q1Test.xlsx" och till höger "TestQ1.xlsx"
Q1Test är min bok för sammanställning och TestQ1 är all data som jag löpande kommer att spara med nya uppdaterade namn "TestQ1,TestQ2,TestQ3" osv.. 
I TestQ1 som inte syns på bilen finns där tre blad "Jan", "Feb", "Mar".

Jag vill genom formel Indirekt kunna hänsiva till vilken bok samt blad jag ska (hämta) summera värde från likt nedan. 
Se bok Q1Test cell C3, där summerar jag värdet från bok TestQ1 med villkoren Kundnummer och Kundnamn. Formeln letar dynamiskt (indirekt) efter blad "Jan" i detta fallet, cell C2) i boken TestQ1. Men just boken vill jag också göra Indirekt genom att hänvisa till Arbetsboksreferensen TestQ1 som ligger i B1 men jag får inte det till att fungera, varför?


Nytt inlägg
 2023-11-23 13:11
 

Hej Niclas,

Det fungerar alldeles utmärkt att använda både dynamiska arbetsboksblad samt dynamiska arbetsboksnamn med funktionen INDIREKT(). Det finns dock en hake;

Både funktionen INDIREKT() samt funktionen SUMMA.OMF() ihop med ett 20-30 tal andra Excelfunktioner stödjer inte att arbeta med stängda arbetsböcker.

Med ovan i åtanke är det en ganska "meningslös" formel du håller på och ta fram eftersom du ändå måste öppna alla arbetsböcker du vill hämta data från. I det scenariot kan du lika väl samla informationen från alla dessa arbetsböcker på ett flertal kalkylblad i din huvudarbetsbok - och därefter använda funktionen INDIREKT() för att hämta data dynamiskt från de olika bladen.

Återkom gärna om du har fler funderingar du behöver hjälp med.

Nytt inlägg
 2023-11-23 13:17
 

 Hej Gondi, 

Tack för svar!
Det känner jag till och är medveten om det "meningslösa", dock fyller det i bland en funktion då det kan vara mycket data, många blad och kommer ibland att arbeta med att; öppna båda, kopiera och klistra in värde för att sedan stänga igen.
Om du har "lösning" så är jag tacksam.

Tack!

//Niclas 

Nytt inlägg
 2023-11-23 13:27
 
 Ändrad av Gondi  på 2023-11-23 13:30:14

Hej igen,

Finns mig veterligen ingen lösning med hjälp av Excels inbyggda funktioner förutom att öppna samtliga dokument och därefter använda INDIREKT().

En annan "workaround" skulle kunna vara att använda funktionen INDEX() och/eller PRODUKTSUMMA() vilka stödjer att arbeta mot stängda filer och med hjälp av dessa "kopiera in" all data in i huvudarbetsboken från de andra externa böckerna. Sen skulle du återigen kunna använda INDIREKT() med dynamiska kalkylbladsnamn. Men det blir i stort sett samma lösning som den jag redan föreslagit förutom att du kan ha kvar och arbeta med de externa Exceldokumenten separat.

Annars brukar det mesta gå att lösa med VBA eller PowerQuery.

Nytt inlägg
 2023-11-23 14:50
 

 Hej,

Precis, men har du möjligtvis lösning på hur jag skriver den med Indirekt samt index+produktsumma?
Tack på förhand!
/Niclas 

Nytt inlägg
 2023-11-23 16:28
 
 Ändrad av Gondi  på 2023-11-23 16:30:01

Hej igen,

Hur man löser det rent formelmässigt beror på flera parametrar.

Det är inte säkert att det är nödvändigt att använda sig av vare sig INDEX() eller PRODUKTSUMMA() eller någon annan funktion om du enbart vill ha en fullständig kopia av alla din böcker i huvudboken. Det absolut enklaste du kan göra då är att skapa ett kalkylblad i din "master" för varje externt dokument samt flik.

Har du exempelvis fyra externa Excelfiler med tre arbetsblad i varje får du skapa 4 x 3 = 12 kalkylblad i din huvudbok. Sen kan du markera t.ex kalkylblad 1 "Jan" i TestQ1.xlsx, kopiera och sen välja "Klistra in länk" i din master på fliken som exempelvis heter "TestQ1-Jan". Fortsätt med "TestQ1-Feb" osv.

När du har gjort klart alla flikarna som är länkade till originaldokumenten kan du skriva dina formler precis som du redan gjort i huvudboken med INDIREKT().

Om du däremot enbart vill ha över en delmängd (subset) av all data från originalfilerna varvid du vill filtrera ut, transformera, sortera eller beräkna något så måste du använda dig av exempelvis funktionen INDEX(), PRODUKTSUMMA() eller någon annan funktion som kan arbeta med stängda filer.

Gemensamt för båda förslagen ovan är dock att länkarna till samtliga externa filer måste hårdkodas i formlerna, det går inte att använda INDIREKT() eftersom arbetsböckerna är stängda.

Man bör länka till andra arbetsböcker med stor försiktighet.

  • Byter någon namn på filen eller något blad så bryts länken.
  • Flyttar någon runt, raderar eller lägger till celler i originalfilen så märks inte det heller nödvändigtvis i masterfilen.
  • Om originalfilen i sin tur har länkar till andra filer så uppdateras inte dessa när man öppnar mastern och därmed finns det risk för att man har felaktig/ofullständig data i mastern.
  • Om någon har en extern arbetsbok öppen men inte har sparat ändringarna kommer masterfilen innehålla gammal data från den senaste gången filen sparades.

Det finns som sagt en massa "fallgropar" när man arbetar med länkade filer. Det fungerar lite mer transparent och har färre "fallgropar" om man har dokumenten i molnet på exempelvis OneDrive eller SharePoint istället för på en vanlig filserver.

Du kanske helt enkelt har för många externa arbetsböcker med ett för stort antal kalkylblad i så ovan kanske inte är praktiskt genomförbart för dig.

Nytt inlägg
 2023-11-24 08:32
 

 Hej,
Okej jag förstår och är medveten om att arbetsböckerna måste vara öppna samtidigt men vet du hur jag skriver Indirekt-formel då?

Nytt inlägg
 2023-11-24 09:01
 
 Ändrad av Gondi  på 2023-11-24 09:03:13

God morgon Niclas,

Om vi använder cellreferenserna i ditt ark fungerar nedan formel;

=SUMMA.OMF(INDIREKT("'["&$B$1&".xlsx]"&C$2&"'!$C:$C");INDIREKT("'["&$B$1&".xlsx]"&C$2&"'!$A:$A");$A3)

 

Nytt inlägg
 2023-11-24 12:24
 

 Fantastiskt Gondi, du är en hjälte!

/Niclas 

Nytt inlägg
 2023-11-24 13:21
 

Tack Niclas!

Här kommer ett "bonustips" som tack för komplimangen!

Bonustips

Alla formler som är både krångliga att skriva, tyda och felsöka brukar jag göra så här med.

Skapa ett namn för fomeln (texten, konstanten, beräkningen) eller vad det nu är med hjälp av Namnhanteraren.

Jag skapade följande namn i Namnhanteraren (Genväg CTRL+F3)

Sen kan du använda de definierade namnen istället för de krångliga syntaxerna i alla din formler i hela dokumentet, exempelvis så här;

Exceldokumentet blir både mindre i storlek samt lättare att tyda och felsöka, dessutom behöver du bara ändra i dina formler på ett enda ställe när man tar hjälp av den förträffliga Namnhanteraren. 

Trevlig helg !

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelSumma.omf med "indirekt" (dynamisk ref) samt cellreferens till annan bok & blad - bok fungerar ejSumma.omf med "indirekt" (dynamisk ref) samt cellreferens till annan bok & blad - bok fungerar ej

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter