Avatar billede mr.handstand Novice
03. september 2004 - 12:01 Der er 9 kommentarer og
1 løsning

Avanceret filter med mulighed for OR-funktion i kriteriecelle

Dette spm drejer sig om muligheden for at sætte et OR kriterie i en enkelt celle i et avanceret filter i Excel XP, istedet for at liste or-kriterierne under hinanden.

Spørgsmålet kommer i forlængelse af  http://www.eksperten.dk/spm/534399
vedrørende nemmeste optælling af unikke records.


Jeg ønsker at kunne lave følgende avancerede filter:

Kolonne A | Kolonne B
afd a    | "type 1" or "type 2" or "type 3"
afd b    | "type 1" or "type 2" or "type 3"


jeg ved godt, at jeg kan lave ovenstående som
afd a    | "type 1"
afd a    | "type 2"
afd a    | "type 3"
afd b    | "type 1"
afd b    | "type 2"
afd b    | "type 3"

men idet jeg arbejder med 1300 afdelinger i kolonne A, som må være 4 forskellige typer i kolonne B vil det medføre et range af kriterier på alt fra 4-5200 rækker... Jeg ønsker at nøjes med én række pr. afdeling, hvis muligt.
Avatar billede bak Forsker
04. september 2004 - 00:49 #1
Holder du stadig på at det helst ikke må være VBA ?
Avatar billede mr.handstand Novice
04. september 2004 - 11:32 #2
arket skal bruges bl.a. af "ikke-VBA" personer, og eventuelle ændringer ville derfor være nemmest implementeret hvis de kunne aflæse formlerne direkte på arket.

Men omvendt, som en isoleret løsning på ovenstående problem, hvis du har en VBA løsning i tankerne, så vil jeg overveje den :-)
Avatar billede d0stuffz Nybegynder
09. september 2004 - 11:27 #3
Har du overvejet en "fællesnøgle" løsning.

Jeg ender op med et resultat som ser ud som 1:1, 1:2, 3:2, 2:4 når jeg bruger det. Jeg kan senere lave en optælling på disse fællesnøgler. (=countif(kolC,"1:1"))

Ja det er et database term jeg har oversat til excel. Jeg er ikke sikker på det vil løse dit problem da jeg ikke er 100% med på hvad du ønsker.

matematikken ser ud som:
=sumif(arrayA[0],kol A, arrayA[1])&":"&sumif(arrayB[0],kol B, arrayB[1])

hov jeg blandede hvis lidt java termologi ind i det. hehe.. Giv besked hvis det ser interessant ud og du vil have en dybere/længere beskrivelse.
Avatar billede mr.handstand Novice
09. september 2004 - 12:06 #4
Jeg sidder og tygger lidt på dit forslag - jeg har tidligere programmeret JAVA, men alligevel kan jeg ikke lige følge din tanke hele vejen.

Datagrundlag, 30.000+ rækker hvor hver række indeholder (blandt meget andet)
Afdeling, PC-id, software id.

PC-id  |  Afd-id  |  Software-ID(Navn i eksemplet)
PC1  |Afd-a  |Winzip
PC2  |Afd-a  |Winzip
PC10 |Afd-b  |Winzip
PC13 |Afd-d  |Winzip
PC5  |Afd-a  |MS Project
PC10 |Afd-a  |MS Project
PC11 |Afd-c  |MS Project
PC12 |Afd-a  |Interwise
PC13 |Afd-d  |Interwise
PC1  |Afd-a  |Unigraphics
PC2  |Afd-a  |Unigraphics
PC23 |Afd-x  |Winzip
PC6  |Afd-d  |Peregrine
PC7  |Afd-e  |Cube
PC7  |Afd-e  |Visio
PC7  |Afd-e  |TracePro

Det tidligere spørgsmål (http://www.eksperten.dk/spm/534399) gik på hvilken grundlæggende teknik jg skulle anvende til at optælle antallet af FORSKELLIGE applikationer, når man kigger på tværs af en liste af afdelinger. Resultatet blev et avanceret filter, som jeg allerede ser bringer mig meget langt - se evt. URL'en.

Den her omtalte problemstilling er, at jeg gerne vil tælle resultatet ud fra endnu en parameter, nemlig den at vi har klassificeret vores forskellige programmer i nogle typer (Licensklasser, Bulk-installationer af mange programmer, lightly managed m.fl.) og jeg vil dermed gerne udbygge min løsning fra førnævnte spm til at tælle på tværs af typerne, således at jeg kan svare på et spm såsom:

Optæl antallet af forskellige applikationer i afd. a&b, som er af typerne "lightly managed eller licenskategoriA) - giver det mere mening?
Avatar billede d0stuffz Nybegynder
09. september 2004 - 12:34 #5
Ideen går i:

du opretter en tabel for hvert mulig svar og giver hvert svar en nøgle.
Kol A | Kol B
1    | Afd-a
2    | Afd-b
3    | Afd-c
osv

Kol A | Kol B
1    | Winzip
2    | Peregrine
3    | Visio
4    | TracePro
osv

Jeg navngiver ofte mine Kol B "mulige løsninger" og laver en datavalidering med det navn. Kol B i afdeling tabel: "Afd", Kol B i software tabel: "Appz".

I din opstilling tilføjer jeg en ekstra kolonne "nøgle"
PC-id  |  Afd-id  |  Software-ID(Navn i eksemplet) | nøgle

hvor matematikken bliver:
=PC-id&":"&sumif(Afd,Afd-id,Kol A Afd)&":"&sumif(Appz,Software-ID,Kol A appz)

hvilket vil give mig:
PC1:1:1
PC2:1:1
PC10:2:1
PC13:4:1
osv

Hvis man vil tilføjer du bare ekstra til enden. Jeg bruger en individuel optælling i min hjemmeløsning:
=countif(Kol "nøgle", 1:1)
og en samlet optælling
=countif(Kol "nøgle", ?:1)

Min fællesnøgle omhandler dog kun 2 værdier eg 1:1 til 12:6 (1-12:1-6) samlet 72 forskellige nøgler. At tilføje flere nøgledele 1:1:1, 1:1:1:1 gør det kun mere komplekst og man skal til overveje brugen af left(), right(), mid(), search() (uk) til at udskille de individuelle værdier. Hvis du har mod på kompleksiteten kan du lave en række med alle svar inkl
eg PC1 | Afd-a | winzip, peregrine, visio, office | PC1:1:1:3:5:7
Avatar billede d0stuffz Nybegynder
09. september 2004 - 13:08 #6
Ah ja overså katagori inddeling.

Det vil være et spg om at tilføje en kolonne til Software tabellen.
Kol A | Kol B | Kol C (Katagori nr)
1    | Winzip | 1
2    | Peregrine | 8
3    | Visio | 5
4    | TracePro | 3

og rette sumif delen til så den hiver det rigtige svar fra den rigtige kolonne. Jeg har brugt komplet vilkårlige tal og jeg formoder du kan træffe en beslutning om hvilke Appz skal være i hvilken Katagori nr.
Avatar billede d0stuffz Nybegynder
15. september 2004 - 09:36 #7
Fandt du en løsning du kunne bruge ?
Avatar billede mr.handstand Novice
15. september 2004 - 11:55 #8
jeg valgte faktisk den "nemmeste" løsning - manuelt arbejde!!! :-)
Brugeren bliver bedt om at gentage proceduren 4 gange, hvis der er tale om at sammenlægge 4 typer. Jeg vurderede at når jeg knapt selv kunne gennemskue en arbejdsgang vedrørende enkel opdatering af datagrundlaget som udmynter sig i forandrede kriterier, så var der lille eller ingen chance for at forklare det til "ikke-IT" brugere, der blot skal udføre beskrevne processer.

Jeg er sikker på at dit princip - taget fra databasentankegangen - er teoretisk korrekt, men for en standard kontorbruger er det bare for svært at anvende, idet jeg netop ønskede en løsning uden anvendelse af VBA.

Du får pointene, da en anden "udvikler" som selv skal være bruger formentligt kan bruge dit råd. Tak for hjælpen - d0stuffz
Avatar billede mr.handstand Novice
15. september 2004 - 11:56 #9
hvis altså du d0stuffz - lige lægger et svar :-)
Avatar billede d0stuffz Nybegynder
15. september 2004 - 13:47 #10
det var så lidt, og mange tak :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester