Avatar billede delta6 Nybegynder
13. august 2004 - 14:05 Der er 4 kommentarer og
2 løsninger

Opslag af flere værdier i enkelt celle

Hej alle!

Sidder og laver et Excel regneark, og sidder ret fast nu -- så ville høre om
der måske er nogle her der kunne hjælpe :)

Lad os sige at nedenstående er to kolonner (de talværdier, der er adskilet
af komma, skulle altså gerne være i en enkelt celle!):

Produkt A    1,2,5
Produkt B    1,3,4
Produkt C    2,3
Produkt D    1,4

Så har jeg et andet ark, der GERNE skulle se sådan ud (og det kan jeg ikke få den til):

1    Produkt A, Produkt B, Produkt D
2    Produkt A, Produkt C
3    Produkt B, Produkt C
4    Produkt B, Produkt D
5    -

Altså at den i den ENKELTE celle på det første ark søger efter hhv. værdi 1, 2, 3 osv. Når den så finder værdien 1 ved Produkt A, B og D så returnerer den disse tekststrenge, ligeledes tilbage i en ENKELT celle.

Er der en formel der gør dette nemt? Evt. en formel som jeg ikke skal til at ændre i hver række, der skal laves opslag, fx en matrix formel (med {}) som bare kan køre det hele via én formel?

Ved ikke om det er til at forstå? Har prøvet at forsimple dette meget - regnearket er noget mere avanceret, men ovenstående er hovedproblematikken.

Har prøvet med HLOOKUP og VLOOKUP, men de er ret simple og ser ikke ud til at kunne klare ovenstående :( (de returnerer jo kun en værdi - kan ikke få dem til at returnere flere, og slet ikke inden for samme celle)

PS. Jeg har ikke styr på VBA/makroer, så en evt. løsning på ovenstående må meget gerne kunne laves med "almindelige" Excel formler!

På forhånd tak :)
Avatar billede ldanielsen Nybegynder
13. august 2004 - 14:35 #1
Denne virker, skrive 1,2,3 i B1:

=UDSKIFT(HVIS(ER.FEJL(SØG("1,"; (B1 & ","))); ""; ", Produkt A") & HVIS(ER.FEJL(SØG("2,"; (B1 & ",")));"";", Produkt B") &HVIS(ER.FEJL(SØG("3,"; (B1 & ",")));"";", Produkt C"); ", ";"";1)
Avatar billede bak Forsker
13. august 2004 - 14:42 #2
en brugerdefinet funktion. Du tryyker alt-f11 og kommer til makroeditor. Indsæt nyt modul og indsæt denne funktion der.
bruges således:
=GetString(B1:B100; søgeværdi)
søgeværdien kan være tastet direkte i formlen eller komme fra en celle.
Funktionen returnerer så alle de værdier fra kolonne A hvor søgeværdien findes i kolonne B



Function GetString(rng1, sv) As String
Dim c As Range, out As String
For Each c In rng1
    If InStr(1, c, sv) > 0 Then out = out & c.Offset(0, -1) & ", "
Next
If out = "" Then GetString = "" Else GetString = Left(out, Len(out) - 2)
End Function
Avatar billede delta6 Nybegynder
13. august 2004 - 23:11 #3
Takker for svarene. ldanielsen - dit svar er okay, problemet her er bare at formlen ikke er særlig dynamisk, og jeg har et stort regneark med mange værdier :)

bak - tak for det! du må gerne lige skrive et svar som jeg kan acceptere :)
Avatar billede ldanielsen Nybegynder
14. august 2004 - 00:17 #4
Den kan nok laves dynamisk, men jeg er ikke så skrap til det

Men tak
Avatar billede bak Forsker
14. august 2004 - 10:00 #5
deler gerne :-)
Avatar billede marten123 Nybegynder
26. oktober 2007 - 13:20 #6
Hejsa, Jeg har et problem i samme kategori som dette,men alligevel ikke.
Håber I kan hjælpe

http://www.eksperten.dk/spm/802911
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