Gå till innehåll

MH_

Medlem
  • Innehållsantal

    180
  • Gick med

  • Dagar vunna

    20

Community-svar

  1. MH_'s post in Excel (2019) - Alternativ för Auto-fill (använda flikar) was marked as the answer   
    Med den här metoden går det inte. Eftersom..
    "!$D$5:$D$40" ..är en textsträng så finns det ingen som helst koppling till det som händer på databladen
    Om du inte har mer info på bladet (nedanför D40)så är det enklaste att helt enkelt låta formeln peka på ett större område, typ "!$D$5:$D$4000" och hoppas att du aldrig får mer än 3995 rader...
    eller ta hela Kolumnerna (eftersom det måste stå "ABC" i villkorskolumnen så är ju risken för att du tar med rader som inte skall vare med väldigt lite)
    Dvs motsvarigheten till
    =SUMMA.OMF(jan!$D:$D;jan!$C:$C;"ABC")
    Det blir något i stil med:
    =SUMMA.OMF(INDIREKT(C$1&"!$D:$D");INDIREKT(C$1&"!$C:$C");"ABC")
    Normalt sett brukar man undvika att ha för stora områden i formler. Men excel har blivit väldigt bra på att begränsa området själv så det borde inte bli "segt".
    Om du inte kan använda ett stort område så måste du köra mycket krångligare varianter (om det överhuvudtaget går) för att få det dynamiskt. Testa om Helkolumn, eller för många rader, funkar för dig innan vi krånglar till det i onödan.
  2. MH_'s post in Hjälp med funktion i Excel was marked as the answer   
    I cell K2 kan du peta in den här formeln
    =SUMMA.OM(B$2:B$11;$J2;$A$2:$A$11)
    Kopiera hela vägen till o4 (eller fyll med "handtaget")
    Den summerar helt enkelt rumsnumret (A-kolumnen)för de rum pelle använder på en måndag. När du byter rad så letar den efter Jessicas namn istället och när du byter kolumn tittar den i en annan dag. Om pelle förekommer mer än en gång i måndagskolumnen så blir det naturligtvis fel
    Om du vill ha hjälp att skapa namnlistan kan du peta in den här i J2
    =UNIK(TILLKOL(B2:F4))
    Obs! kräver en ganska ny excel.
     
    Om du inte gillar SUMMA.OM så kan du testa den här istället. Då får du ett felmeddelande om Pelle förekommer 2 ggr på samma dag.
    I cell K2:
    =PASSA($J2;B$2:B$11;0)
     
  3. MH_'s post in Koppla dokument word was marked as the answer   
    Jag använder det som sagt var inte själv och jag har bara ett konto i Outlook så jag har inga fler förslag. Eller, kolla punkt 4 i "lösningssvaret" i den här tråden
    https://answers.microsoft.com/en-us/outlook_com/forum/all/how-to-change-the-senders-email-address-in-mail/86110d33-3330-45b3-a7d4-dc9a5cf2e528
    "4. Then go to File/Options and under the Mail Category/Send Options make sure that the "Always Use the Default Email to Send Messages" is checked off."
  4. MH_'s post in PASSA(match)/OMFEL(IFERROR) was marked as the answer   
    =OMFEL(dinformel;0)
    Men krånglar du inte till det i onödan? Den här borde funka i B10 (sen kan du kopiera till övriga Gula celler)
    =(C10=$J10)*1
    Eller:
    =om(C10=$J10;1;0)
     
  5. MH_'s post in Text to columns eller annan lösning? was marked as the answer   
    Power Query (exempel om dina data ligger i en cell - allt utom starten är likadant om du importerar direkt från en textfil)
    Markera cellen med dina data i. Gå till
    Data->hämta transformera: från tabell/intervall
    Nu har du förmodligen bara en cell i powerquery's förhandsgranskning. Gå till 
    Start->dela upp kolumn: efter avgränsare
    Ändra "välj eller ändra avgränsare" till "anpassad" och klistra in avgränsaren ":,"  (utan citattecken)
    Sen klickar du på "avancerade alternativ"  och ändra "dela i" till "rader"
    Nu bör du ha 6 rader. 
    Upprepa "dela på kolumn"
    Start->dela upp kolumn: efter avgränsare 
    Men klistra in "DKK:G:" istället (utan citat-tecken) och kolla så att avancerad står på "kolumn"
    Markera din nya kolumn 2 och upprepa "dela upp kolumn" men med
    ":1 pieces:[" (utan citat)
    Sen tar du din nya kolumn 3 och delar på blanksteg (finns att välja)
    Om datumen har konverterats till svenska datum så kan du kolla på "kodlistan" till höger och ta bort den sista "ändra typ"
    Radera tids-kolumnerna (om du inte vill ha dom, annars tar du bara bort sista hakparantesen "]"). Du kan även ta bort första raden om den alltid är nonsens. Och kanske ge vettiga kolumnnamn
    Stäng och läs in
     
    PS
    Om du vill konvertera datumen från text kan du högerklicka och välja "ändra typ". Tyvärr kan du inte välja "datum" direkt eftersom queryn kommer att utgå ifrån att det är amerikanska datum. Du får istället välja "använd språkinställningar" längst ner och välja "datum" och något europeiskt land (t.ex engelska: europa)
    PS2
    När du står i frågeredigeraren så kan du gå till 
    START->avancerad redigerare och kolla på din frågekod. Så här blev det för mig (alla namn är automatskapade och jag har tagit de automatiska typändingarna)
    let Källa = Excel.CurrentWorkbook(){[Name="Tabell1"]}[Content], #"Dela upp kolumn efter avgränsare" = Table.ExpandListColumn(Table.TransformColumns(Källa, {{"Kolumn1", Splitter.SplitTextByDelimiter(":,", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Kolumn1"), #"Dela upp kolumn efter avgränsare1" = Table.SplitColumn(#"Dela upp kolumn efter avgränsare", "Kolumn1", Splitter.SplitTextByDelimiter("DKK:G:", QuoteStyle.Csv), {"Kolumn1.1", "Kolumn1.2"}), #"Dela upp kolumn efter avgränsare2" = Table.SplitColumn(#"Dela upp kolumn efter avgränsare1", "Kolumn1.2", Splitter.SplitTextByDelimiter(":1 pieces:[", QuoteStyle.Csv), {"Kolumn1.2.1", "Kolumn1.2.2"}), #"Dela upp kolumn efter avgränsare3" = Table.SplitColumn(#"Dela upp kolumn efter avgränsare2", "Kolumn1.2.2", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Kolumn1.2.2.1", "Kolumn1.2.2.2", "Kolumn1.2.2.3", "Kolumn1.2.2.4", "Kolumn1.2.2.5"}), #"Borttagna kolumner" = Table.RemoveColumns(#"Dela upp kolumn efter avgränsare3",{"Kolumn1.2.2.2", "Kolumn1.2.2.3", "Kolumn1.2.2.5"}), #"Ändrad typ med nationella inställningar" = Table.TransformColumnTypes(#"Borttagna kolumner", {{"Kolumn1.2.2.1", type date}, {"Kolumn1.2.2.4", type date}}, "en-150"), #"Borttagna topprader" = Table.Skip(#"Ändrad typ med nationella inställningar",1) in #"Borttagna topprader"  
  6. MH_'s post in 2D-linje pivottabell was marked as the answer   
    Det enklaste är väl att använda filterfunktionen som finns inbyggda i vanliga excel-diagram nuförtiden?
    Markera diagrammet klicka på filterknappen välj vilka serier du vill visa klicka på knappen [använd] (längst ner i filterfönstret)  

  7. MH_'s post in VBA - Fråga om en formel was marked as the answer   
    Formler (i B1):
    Texten blå 5 ggr i samma cell
    =REP("Blå";H3)
    Texten blå fem ggr i fem olika celler:
    =OM(SEKVENS(H3)>0;"blå")
     
    VBA om du vill träna på det:
    Sub ExampleBlå() Dim i As Integer Dim iAntalBlå As Integer Dim rStartCell As Range 'Hämta värdet från rätt cell (H3) AntalBlå = Sheets("Blad1").Range("H3").Value ' Ange var din startcell ligger. Obs att rSstartCell ' BLIR B1 när man kör Set. Den hämtar inget värde utan ' den blir verkligen b1 Set rStartCell = Sheets("Blad1").Range("B1") ' avsluta om H3 har värdet 0 If AntalBlå = 0 Then Exit Sub ' sen kör du loopen For i = 1 To AntalBlå Sheets("Blad1").Range("B" & i).Value = "Blå" Next i ' Alternativ loop ' Jag skulle personligen ha använt den här koden med .Offset i loopen. ' Men då får du  -1 som kan vara svårt att förstå när ' du kollar koden om ett år .  For i = 0 To (AntalBlå - 1) rStartCell.Offset(i, 0).Value = "Blå" Next i End Sub
  8. MH_'s post in Dynamisk diagram - Hur? was marked as the answer   
    Du kan skapa dynamiska områden med 
    =FÖRSKJUTNING($B$2;0;0;;DAG(IDAG()))
    eller
    =$B$2:INDEX($B$2:$AF$2;;DAG(IDAG()))
    Problemet är att du inte kan använda formlerna direkt i ett diagram. Du måste skapa 3 namngivna områdenoch använda dessa.
    Skapa rubrikområdet:
    Formler->definiera namn
    namn=rubr
    refererar till:=FÖRSKJUTNING($B$1;0;0;;DAG(IDAG()))
    Skapa år 2021:
    Formler->definiera namn
    namn=ÅR_2021
    refererar till:=FÖRSKJUTNING($B$2;0;0;;DAG(IDAG()))
    Skapa år 2022:
    Formler->definiera namn
    namn=ÅR_2022
    refererar till:=FÖRSKJUTNING($B$3;0;0;;DAG(IDAG()))
     
    Sen får du helt enkelt hänvisa till namnen INKLUSIVE BLADNAMN i  diagrammen.
    Skapa ditt diagram som vanligt. Sen högerklickar du och väljer "markera data" . Klicka på [redigera] för att ändra dataområdena

     
    Ändra dataområdets vanliga adresser:

    till det namngivna rubrikområdet

    Gör samma sak för själva dataområdena 2021 och 2022. Där du ändrar Serievärdena till de dynamiska namn du skapat. Tex:
    ='Bok1'!år_2021
    ='Bok1'!år_2022

    När du är färdig bör du ha ett dynamiskt diagram.
    Smidigt? nja....
     
  9. MH_'s post in Indexmatch med två kolumnrubriker was marked as the answer   
    Det klassiska sättet är att helt enkelt slå ihop söksträngen och text-strängarna i sökmatriserna med hjälp av &
    =PASSA(B9&B10;A1:M1&A2:M2;0)
    eller sammanfoga om du tycker att det är enklare
    =PASSA(SAMMANFOGA(B9;B10);SAMMANFOGA(A1:M1&A2:M2);0)
    Då får du inte träff förrän både Valuta och pristyp stämmer
     
    Ett mer logiskt sätt är att skapa en 0/1 matris (sant=1, falskt =0)
    =(A1:M1=B9)*(A2:M2=B10)
    Det blir bara 1 när båda villkoren är sanna. Då kan du köra en PASSA där villkoret är att svaret skall vara 1
    =PASSA(1;(A1:M1=B9)*(A2:M2=B10);0)
    Och din LETARAD blir någonting i stil med:
    =LETARAD(B8;A3:M6;PASSA(B9&B10;A1:M1&A2:M2;0);0)
    eller
    =LETARAD(B8;A3:M6;PASSA(1;(A1:M1=B9)*(A2:M2=B10);0);0)
    Eller också kör du PASSA/Index hela vägen (OBS! PASSA-formeln för kolumn tittar bara i B-M kolumnerna eftersom Index-området startar i B)
    =INDEX(B3:M6;PASSA(B8;A3:A6;0);PASSA(1;(B1:M1=B9)*(B2:M2=B10);0))
    Enligt Excel-gurus det bästa sättet eftersom det är lite resurssnålare.  Men i praktiken inget du behöver bry dig om så länge filen håller sig inom rimliga gränser.
  10. MH_'s post in Kopiera =letakolumn nedåt? was marked as the answer   
    =LETAKOLUMN(B1;I1:L8;rad();0)
    Om du vill låsa områdena får du köra F4 och peta in $-tecken
    =LETAKOLUMN($B$1;$I$1:$L$8;2;0)
  11. MH_'s post in Nybörjarfråga VBA was marked as the answer   
    du kan använda samma kod som du kör när du hämtar formlerna 
    Range(Selection, Selection.End(xlDown)).Select Fast i B kolumnen. Dvs samma sak som att stå i B2 och trycka Ctrl+shift+nedpil : 
    Sub Avrunda_0_Decimaler() Range("B2").Select Range(Selection, Selection.End(xlDown)).Select Selection.Offset(rowOffset:=0, columnOffset:=1).Select Selection.FormulaR1C1 = "=ROUND(RC[-1],0)" Selection.Copy Range("B2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("A1").Select End Sub Och om Monshi skulle få syn på det här så gör vi en variant utan en massa Select och Copy
    Offset är bara ett sätt att flytta hela området (i vårt fall +1=en  kolumn till höger, dvs kolumn C)
     
    Sub Avrunda_0_Decimaler() Dim mittOmråde As Range ' bestämm urspungsområde Set mittOmråde = Range("B2", Range("B2").End(xlDown)) 'Skriv in formel i C kolumnen (Mittområde offsetat 1 kolumn) mittOmråde.Offset(rowOffset:=0, columnOffset:=1).FormulaR1C1 = "=ROUND(RC[-1],0)" 'Och ange att B kolumnen skall vara lika med värdena i C mittOmråde.Value = mittOmråde.Offset(0, 1).Value ' Ta bort data från C, om du vill ' mittOmråde.Offset(0, 1).ClearContents Range("A1").Select End Sub  
×
×
  • Skapa nytt...