Altså sammenligne om en tekststreng optræder flere gange. Og hvis den gør, så skal den kun skrives én gang. Strengene optræder i to forskellige ark. Jeg har prøvet med
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Hvis jeg forstår spørgsmålet rigtigt, kan du markere hele din liste med frugter. kopier den over i en ny kolonne. Vælg "Data" i menuen. Vælg Fjern dubletter.
Jeg vil helst undgå at bruge den funktion da der ud fra hver "frugt" er endnu en kolonne hvor der er data tilknyttet. Altså et antal "frugter". Dette antal vil blive fjernet eller blive tilknytte til en forkert række..
Er det korrekt forstået at du i et ark har en liste med frugtens navn og ved siden af har en liste med et antal? I denne liste kan frugtens navn forekomme flere gange. Og at du i et nyt ark gerne vil have en liste, hvor frugtens navn kun optræder én gang, og ved siden af en liste der summerer antallet af frugter fra det første ark?
I så fald vil jeg stadig mene, at du kan kopiere hele listen i ark 1 og sætte den ind i ark 2, kolonne A. Vælg derefter fjern dubletter, som ovenfor.
I kolonne B indsættes din sum.hvis-funktion: =sum.hvis('Ark1'!$A$1:$A$1000;A1;'Ark1'!$B$1:$B$1000)
Det er ikke helt korrekt. Jeg vil ikke bruge funktionen "fjern dubletter" da den ikke er dynamisk. Det hele skal for mig køre automatisk. Jeg vil prøve at forklare det mere præcist. Det bliver nok mere indviklet end først antaget:
Jeg har to ark. I det ene ark har jeg én kolonne hvor jeg har nogle frugter listet som ovenfor.
Disse skal hentes over i ark to. Dette har jeg gjort vha. =LOPSLAG(A1;ark1;4;1)osv. Dette er netop lavet for at holde ark2 dynamisk. Så hver gang jeg tilføjer en ny frugt i mit ark1 kommer det automatisk i ark2.
I mit ark2 får jeg henter jeg nogle data fra en database som jeg indsætter i en kolonne ud for hver frugt. Så nu ser mit ark2 sådan ud:
Her ønsker jeg kun at hver frugt skal optræde én gang, men at den totale sum af de ens frugter skal stå ud fra den ene række der bliver tilbage.
Sådan:
Æbler 29 Pærer 13 Appelsiner 11 Bananer 25 Kiwi 5
(håber det er rigtigt lagt sammen ;-))
Her har jeg så brugt:
=SUM.HVIS($A$1:$A$12;e13;$B$1:$B$12)
Jeg er ved at skrive noget vba-kode, (og har fundet lidt andetsteds) hvor jeg prøver at skjule de rækker der er hvor jeg finder de samme navne men går igen lidt død..
Private Sub Workbook_Open() Dim lRow As Long
With Worksheets("Ark2") .Rows("1:65536").Hidden = False For lRow = .UsedRange.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1 If .Cells(lRow, 2).String = KAN I HJÆLPE HER? Then .Cells(lRow, 2).EntireRow.Hidden = True End If Next End With End Sub
Håber det giver mere mening... Måske det bare at finde den rigtige sammenligning i det stykke VBA-kode?
With ActiveSheet .Rows("1:65536").Hidden = False For tekstilCount = .UsedRange.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1 tekstilTestResultat(tekstilCount) = tekstilType Next
If .Cells(tekstilTestResultat, 1).Value = 100 Then .Cells(tekstilTestResultat, 1).EntireRow.Hidden = True End If End With End Sub
Det skal siges at linjen der tjekker om værdier er lig 100 kun er lavet for at se om jeg overhovedet kan få rutinen til at skjule noget. Når jeg kan det vil jeg begynde at rode med at sammenligne strenge.
Men jeg er slet ikke kommmet helt derned endnu. Jeg bliver bremset helt i toppen:
ReDim Preserve tekstilTestResultat(tekstilType)
Her får jeg en "type mismatch"
Kan nogen fortælle hvorfor? Jeg synes ellers at både tekstilTestResultat og tekstilType er erklæret som strenge..
Håber virkeligt at nogen kan hjælpe. Sidder godt nok fast!
Formlen kopieres nedad og vil returnere #I/T når unikke frugter er udtømt. Dennne #I/T værdi lader sig selvfølgelig undertrykke, hvis det er et "must".
@tbak: Kan du uddybe løsningen med Pivottabel? Dette er jeg ikke så meget inde i?
@dkhandnu: Det virker jo fint. Men jeg vil så gerne have at de rækker hvor der bliver returneret #I/T bliver skjult automatisk. Her skal jeg vel ud i noget VBA-kode?
Synes godt om
Slettet bruger
22. oktober 2012 - 09:55#11
Ingen grund til at bruge VBA her. Du kan for eksempel bruge:
Det er SUPER! Det eneste der er at jeg i nederst række får et "0" hvorefter rester af rækkerne bliver "" (tommer) som jeg gerne vil ha'. Har du også et quick fix på det?:-)
Mærkeligt! Det gør jeg også nu. Det kan være der havde sneget sig en fejl 40 ind. Eller en fejl-mandag. Nu funker det i hvert fald! Mange tak! Vil du give en kort forklaring om hvad formlen gør?
Synes godt om
Slettet bruger
22. oktober 2012 - 12:06#17
INDEKS-funktionen har følgende syntaks (se Excels hjælp)
INDEKS(matrix; rækkenr; kolonnenr)
Som det fremgår af Hjælp returnerer funktionen værdien af et element i matrix som vælges efter række- og kolonnenummerindeks. Matricen i det her tilfælde er altså: $A$2:$A$13.
Rækkenummeret bestemmes af det andet argument i INDEKS-funktionen, som er:
SAMMENLIGN(0;TÆL.HVIS($D$1:$D1;$A$2:$A$13);0)
SAMMENLIGN-funktionen søger efter en opslagsværdi (her 0) i en opslagsmatrix (her TÆL.HVIS($D$1:$D1;$A$2:$A$13).
Hvis du aktiverer celle D2 og i formelfeltet markerer (med musen) præcist følgende del af formlen:
TÆL.HVIS($D$1:$D1;$A$2:$A$13)
og trykker på F9 vil du se følgende: {0\0\0\0\0\0\0\0\0\0\0\0} som udtryk for, at $D$1:$D1 er forskellig fra alle elementer i $A$2:$A$13. Sammenlign vil herefter søge efter opslagsværdien (eksakt) 0 i matricen {0\0\0\0\0\0\0\0\0\0\0\0} og finder denne som matricens første element, hvorfor funktionen returnerer 1. INDEKS-funktionen er hermed reduceret til: =INDEKS($A$2:$A$13;1) som returnerer det første element i $A$2:$A$13, altså indholdet i $A$2 (=Æbler).
Prøv nu at aktivere D3. Bemærk at SAMMMENLIGN-formlen nu ser sådan her ud: SAMMENLIGN(0;TÆL.HVIS($D$1:$D2;$A$2:$A$13);0).
Marker nu præcist følgende del af formlen:
TÆL.HVIS($D$1:$D2;$A$2:$A$13
og tryk på F9 vil du se: {1\1\0\0\1\0\0\0\0\0\0\1} som udtryk for, at $D$1:$D2 indeholder "Æbler" (i D2) og "Æbler findes ikke i matricens tredje, fjerde og sjette til ellevte element. SAMMELIGN-funktionen er hermed reduceret til:
SAMMENLIGN(0;{1\1\0\0\1\0\0\0\0\0\0\1};0).
Funktionen søger efter opslagsværdien (eksakt) 0 i matricen {1\1\0\0\1\0\0\0\0\0\0\1} og finder denne som element nummer tre, hvorfor returværdien er 3.
INDEKS-funktionen er nu reduceret til: = INDEKS($A$2:$A$13;3), hvorfor returværdien er det treje element i $A$2:$A$13, altså "Pærer". Og så videre efter samme skema.
Hvis du vil lære at begribe komplekse formler må du først og fremmest vænne dig til grundigt (i Excels hjælp) at studere de funktioner der indgår ligesom du må være fuldt fortrolig med anvendelse af F9-teknikken/Evaluer formel værktøjet.
Det giver mening! Men derfra og så selv komme i tanke om det er der stadig et stykke vej endnu :-) Det kræver, som du siger, at man er fortrolig med de forskellige formler.
Men jeg siger mange tak! Jeg har nu et ark der fungerer helt efter hensigten!
Har lige prøvet det kort, men kan ikke helt få det til at virke. Men må indrømme at jeg ikke har brugt ret meget tid på det da "dkhanknus" løsning fungerede fint for mig. Han må derfor gerne bede om at få mine 30 point
Synes godt om
Slettet bruger
23. oktober 2012 - 08:40#21
OK. Hans
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.