Som jeg forstår problemet er det nemmeste at oprette et autofilter, der kan du så filtrere på gr=OMS og se de data du viser i det ønskede - du kan også summere de viste data.
I VBA kan det gøres med følgende makro, som laver en nye ark foran den nuværende, og indsætter hvad du vil have i øverste venstre del af arken.
Sub test() Dim CellCount As Integer Dim counter As Integer Dim Stamdata As Worksheet Dim Omsaet As Worksheet Dim CopyCount As Integer
Set Stamdata = ActiveSheet CellCount = Range("KolGR").Cells.Count
Set Omsaet = Worksheets.Add
CopyCount = 1 For counter = 1 To CellCount If Stamdata.Range("KolGR").Cells(counter) = "OMS" Or Stamdata.Range("KolGR").Cells(counter) = "GR" Then Range("KolGR").Cells(counter).EntireRow.Copy (Omsaet.Rows(CopyCount)) CopyCount = CopyCount + 1 End If Next
Jeg kunne forestille mig at ovenstående eksempel var meget simplificeret, og at der kunne være mange rækker der skal overflyttes.
Det kan gøres med følgende:
Sub FlytteOmsaetningTilNyArk()
Dim CellCount As Integer Dim counter As Integer Dim Stamdata As Worksheet Dim Omsaet As Worksheet Dim CopyCount As Integer Dim myRange As Range
Set Stamdata = ActiveSheet
CellCount = Cells(1, 1).CurrentRegion.Rows.Count Set myRange = Cells(1, 1).CurrentRegion.Columns(1) Set Omsaet = Worksheets.Add
CopyCount = 1
For counter = 1 To CellCount If myRange.Cells(counter) = "OMS" Or myRange.Cells(counter) = "GR" Then myRange.Cells(counter).EntireRow.Copy (Omsaet.Rows(CopyCount)) CopyCount = CopyCount + 1 End If Next
End Sub
Jeg kan forstå at du ikke er så vant til VBA. For at køre en makro uden kommandoknap, skal man i menuen "Tools" (5 menu fra venstre - jeg sidder med en engelsk version af Excel) -> "Makro" -> "Makroer", og så vælge den der hedder FlytteOmsaetningTilNyArk. Og så klik på kør.
Som jeg forstår det, efterspørges der egentlig blot en mulighed for SUM.HVIS() med flere kriterier. Er dette tilfældet kan man bruge SUMPRODUKT(), idet denne summerer på baggrund af flere kriterier.
Fælles for alle 3 formler (array): indsæt og afslut med CTRL+SHIFT+ENTER herefter kan de kopieres ned med fyldhåndtag så langt det er nødvendigt. Formlerne tester i række 2-14, du har sikkert flere rækker, så ret 14 til aktuel
Puh-ha. I har sat mig på lidt af en opgave! Aidan – Det er virkelig lykkedes for mig, at få din makro ind i mit regneark. (Det sværeste var nu ikke at finde ud af at køre makroen, men at få den ind...). Løsningen er sikkert rigtig smart – men den duer ligesom ikke rigtig til det, jeg er ved at lave. Se nedenfor. For en uøvet, som mig, ville jeg have løst det ved at lave et filter, og så kopiere dataene til et nyt ark. Lidt mere besværligt end en makro, men samme effekt..
b hansen – Jeg kan ikke finde ud af din formel. Synes ikke rigtig, at den kan fungere.
excelent – I mit eksempel har jeg data fra A1:D6. Hvis jeg nu kopierer din formler ind i cellerne B20, C20 og D20 – så burde det da virke, ikk? Formlerne står ganske pænt i cellerne, men resultatet er blankt. Hvis jeg i dine formler udskifter ”” til ”x” bliver resultat x. Jeg må gøre noget forkert. Ved ikke lige, hvad du mener med, at jeg skal afslutte med CTRL+SHIFT+ENTER. Jeg har gjort det, men formlerne kommer jo pænt ind, når jeg trykker ”sæt-ind”
Som aidan ganske rigtig skriver, så er mit eksempel meget simplificeret. Eksemplet er et lille udsnit af en kontoplan/råbalance, som i forbindelse med afstemninger etc. tilføjes nye konti. Grupperingen – f.eks. ”OMS” osv. bruges til en overordnet opstilling af regnskabet. Hver enkelt af grupperne skal således yderligere specificeres i noter, afstemninger o.lign. Og her vil det være relevant, hvis jeg i en celle f.eks. A1 - skriver ”OMS”, hvorefter jeg i rækkerne nedenfor fik listet alle de konti der hører til gruppen OMS. Eller for den sags skyld hvilken gruppe, jeg nu ønskede specificeret yderligere. Håber I forstår, hvad jeg mener.
Med Aidan’s makroløsning vil jeg ikke, som jeg ser det, få tilføjet nye konti efterhånden som de oprettes.
prøv at markere celle B20 - så skal formlen være omsluttet af 2 krøllede parenteser = { formel } hvis den ikke er det, så tast F2 herefter hold CTRL og SHIFT nede samtidig med du trykker ENTER
Det var lige det, der manglende... Da jeg ikke helt ved, hvad der sker i din formel, har jeg valgt at lave formlen i C20 om til =LOPSLAG(B20;$B$2:$C$8;2;FALSK) og samme måde i D20. Det giver vel det samme? (men mere forståeligt for mig..) Men jeg har stadig et problem: Jeg vil gerne have ændret din formel, så jeg kan skrive variablen "oms" i f.eks. celle B19 - på den måde vil jeg kunne bruge formlen til de andre grupperinger. Og så lige et lille tillægsspørgsmål: Kan du på lidt pædagogisk vis fortælle - bare lidt om - hvad er det egentlig din formel gør. Hvis det er alt for kompliceret, så tager jeg til takke med svaret som det er.
Ja det er en kompliceret formel, som gav en del hovedbrud at få til at virke
den søger efter det mindste tal i kolonne B, hvor der samtidig står OMS i kolonne A når du så kopierer formlen nedad, ændres RÆKKE(1:1) til RÆKKE(2:2) som indikerer at den nu skal finde den næstmindste tal i kolonne B osv.osv. endelig er indsat en ER.FJL funktion som sikrer at når der ikke er flere tal med OMS i kolonne A, så vises en blank celle i stedet for ern #NUM fejl.
Glæder mig, at mit spørgsmål kunne give hovedbrud for en ekspert :-) Men jeg kan love dig for, at resultatet kan spare meget tid, når jeg laver afstemninger/noter til en årsrapport. Det er faktisk en formidabel hjælp.
Men når "sandheden" skal frem, så arbejder jeg i ark: B-0. Min råbalance er i ark: B-1 og dataene i række 3:300. Gruppen er i kolonne A og kontonumrene i kolonne D. I ark B-0, celle A43 har jeg tastet det variable gruppenavn (OMS).
Jeg kan simpelthen ikke finde ud af, at rette din formel til, så den passer til mit regneark (fungerer fint i eksemplet). Kan du se, hvor fejlen ligger.
Det går helt strålende :-) Kun mine hyperlink i regnearket gik i stykker ved omdøbningen af arkene. Men det er til at leve med. Mht. formlen så fungerer den perfekt. Jeg har ændret formlen mht. $A$43, så den istedet refererer til kolonne a i den række hvor formlerne ellers står. Når der ikke er flere kontonumre i en gruppe, kan jeg lave respektive summer osv. Men når jeg så fortsætter til næste gruppe af kontonumre og kopierer formlen, så fortsætter den rækkenumrene (også selvom jeg kopierer fra den oprindelige første række med formler). Det betyder, at jeg lige skal huske at ændre formlen, så den starter med at tælle fra RÆKKE(1:1). Men det er bestemt til at leve med. Formlen er bare super super lækkert. Tildeler point nu, men fortæl mig lige hvordan jeg kan tildele flere point end jeg oprindelig gjorde i mit spørgsmål. (Det viste sig jo, at det ikke var et så enkelt spørgsmål!)
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.