21. februar 2006 - 13:07Der er
9 kommentarer og 2 løsninger
Sum der udelader #DIV0!
Jeg sidder med en fil, hvori jeg har at konsolideringsark, som summere på tværs af en række andre ark ved hjælp af en almindelig sumformel. Mit problem er, at der af og til vil være celler i disse ark som er divideret med 0. Det er imidlertid ikke en mulighed at bruge ISERROR-funktionen på cellerne i de underliggende ark, da dette vil være alt for omfattende. Jeg vil gerne bevare sumfunktionen, således at arket stadig er dynamisk overfor oprettelse af mellemliggende ark. Det jeg eftersøger, er således en funktion, som stadig kan summere på tværs af mange ark, men som udelader celler hvor der står #DIV/0! Er det muligt?
Det er den eneste fejlmelding der kan forekomme. Jeg har prøvet din løsning, men får nu fejlen #VALUE! Min formel ser således ud: =SUMIF('Sheet11:Sheet23'!AR38;"<>#DIV/0!";'Sheet11:Sheet23'!AR38) Hvad gør jeg forkert?
hmmm..... tilsyneladende kan man ikke bruge SUM.HVIS() på tværs af regneark. Og hverken =SUMPRODUKT() eller Array-formler synes at virke. Så er der efterhånden kun en makro tilbage.
Men den kan jeg desværre ikke hjælpe med, så du må hellere afvise svaret.
'Summere celle AR38 i alle ark - celler med #Division/0 'undtaget resultatarket, her Ark25, ret til aktuel navn 'resultat leveres i Ark25 celle A1, ret til din celle 'Du har formentlig flere celler der skal summeres 'om subben kan skrues sammen til det, må vi se på 'ellers må vi ha hjælp fra en løkkejæger 'Subben skal i et modul 'Funktioner/Makro/Makroer/Afspil SumArk() '--------------------------------------------
Public Sub SumArk()
Dim tal: Dim t: tal = 0 Antal = Worksheets.Count For Each Wks In Worksheets If Wks.Name <> "Ark25" Then ' ret her !!! On Error GoTo nul t = Worksheets(Wks.Name).Range("AR38").Value tal = tal + t nul: t = 0 End If Next Worksheets("Ark25").Select 'ret her !!! Range("A1") = tal 'ret evt her !!!
mrjh- Problemet med din løsning er, at jeg vil få resultatet 0 hvis blot en af cellerne er lig #DIV/O, hvilket ikke lige var det jeg eftersøgte. Det jeg søger er en funktion som vil springe over de celler der indeholder #DIV/0 og returnere summen af de øvrige. Dette kan jeg fint få til at fungere hvis der er tale om celler i samme sheet, men ikke hvis der er forskellige sheets.
excelent- Nu er jeg ikke den helt store haj, så jeg må indrømme at dit svar er lidt uforståeligt for mig. Der er dog tale om flere celler med værdien #DIV/O og jeg forstår på dig at det således ikke vil virke. Jeg har dog imidlertid valgt at gå den lange vej og rette i de underliggende ark, så jeg har ikke længere behov for et svar... Hvordan lukker man et spørgsmål igen?
Public Sub SumArk() 'summere celle AR38 i alle ark - celler med #Division/0 ignoreres 'undtaget resultatarket, her Ark25, ret til aktuel navn
Dim tal: Dim t: tal = 0: t = 0 Antal = Worksheets.Count For Each Wks In Worksheets If Wks.Name <> "Ark25" Then t = Worksheets(Wks.Name).Range("AR38").Value On Error Resume Next tal = tal + t: t = 0 End If Next Worksheets("Ark25").Select Range("A1") = tal
hej llkkcc helt ok, du klikker på dit navn, og vælger accepter, så får du selv point, og spørgsmål lukkes
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.