Gå til innhold

Excel: hjelp til formel


petterg

Anbefalte innlegg

Skrevet

CONCATENATE(IF(K8;CONCATENATE(K$1;"+");"");IF(L8;CONCATENATE(L$1;"+");"");......)

Skulle hatt en formel som vist, men som tar alle kolonner fra K til X. Blir så dumt å skrive en IF for hver eneste kolonne!

 

Noen løsning på dette? Noen måter å få til loop i excel?

Videoannonse
Annonse
Skrevet

Mulig jeg missforstår hva du vil frem til....

Å trekke bort vil bare oppdatere feltene, ikke lage en ekstra IF for hvert felt man kommer til.

 

Jeg er altså på jakt etter en måte å generere mange slike IF'er på innenfor den samme concatenate funksjonen

Skrevet

Hei!

 

Tror kanskje du må vurdere å skrive en makro for dette. Excel (og andre Office-program) har støtte for Visual Basic. Du kan bruke hurtigtasten alt+F11 for å få opp editoren.

 

Jeg forstår ikke helt hva du egentlig vil, men ser du spør etter en loop-funksjon. Hvis du bruker iterasjoner i makroen vil dette kunne gjøres. Søk litt rundt på nettet så finner du nok masse informasjon om dette ;)

 

Er ikke sikker på om du er villig til å sette deg inn i alt dette hvis det du skal gjøre ikke er noe du ofte kommer til å ha bruk for. Hvis det er det derimot vil makroer spare deg for -masse- arbeid!

 

Lykke til!

Skrevet

Hva den gjør

CONCATENATE(
IF(K8;CONCATENATE(K$1;"+");"");
IF(L8;CONCATENATE(L$1;"+");"");
......
)

 

Hver av IF'ene, tar den første som eksempel: Hvis det er fyllt inn noe (f.x. et kryss) i K8 skal de evaluere til teksten øverst i kolonnen (K$1) og tegnet "+".

Alt dette settes sammen med concatenate.

 

Dermed resulterer dette i en lang tekst sammensatt av alle kollonnetitler som har blitt krysset av på den.

 

 

Makro kan kanskje brukes. Har aldri sett på VB så jeg aner ingenting om fremgangsmåten.

Skrevet

Hei

 

Åpne VB editoren (Alt F11 eller tilsvarende).

Velg meny Insert - Module.

 

Lim følgende inn:

 

Function Samla(Celler As Range) As String
Dim R As Long, C As Long
Dim Cel As Range
Application.Volatile
For Each Cel In Celler
   If Cel.Value <> "" Then _
       Samla = Samla & Cells(1, Cel.Column).Value & "+"
Next
If Len(Samla) > 1 Then Samla = Left(Samla, Len(Samla) - 1)
End Function

 

Gå tilbake i Excel. I celle Y4 skriver du

=Samla(K4:X4)

 

Dette funker, men er ikke optimalt. Du hoppet elegant over Hvorfor-spørsmålet mitt, så det er vrient å lage noe relevant og brukevennlig.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...