• Välkommen till ett uppdaterat Klocksnack.se

    Efter ett digert arbete är nu den största uppdateringen av Klocksnack.se någonsin klar att se dagens ljus.
    Forumet kommer nu bli ännu snabbare, mer lättanvänt och framför allt fyllt med nya funktioner.

    Vi har skapat en tråd på diskussionsdelen för feedback och tekniska frågeställningar.

    Tack för att ni är med och skapar Skandinaviens bästa klockforum!

    /Hook & Leben

Excel tips & tricks

nissehult

Patek
2-Faktor
Har ÄNTLIGEN börjat bli kompis med VBA, tog några dagar då jag aldrig "kodat" innan men börjar lära mig lite basic nu.
Jösses vilka möjligheter det finns, just nu har jag lyckats få ihop ett macro som gör följande:
1. Raderar all gammal data
2. Går in i vårt affärssystem och hämtar en rapport som sparas ned
3. Kopierar in all data från rapporten i en flik
4. Kör alla vlookups osv som behövs
5. Presenterar allt snyggt i en "results"-flik
6. Refreshar pivoterna i en annan flik (smidigt med ActiveWorkbook.RefreshAll)
7. Lägger till tid för senaste uppdatering (value=now) och kör en msgbox (och presenterar totalt antal items som är hämtade,) som visar att allt är klart!

Sjukt kul och sparar sinnessjukt mycket tid :)
Glöm inte det viktigaste... en jättestor knapp (typ 25% av skärmen) som man trycker på för att sparka igång makrot. Lite nörd-humor... :)
 

Ruskprick

Panerai
2-Faktor
Glöm inte det viktigaste... en jättestor knapp (typ 25% av skärmen) som man trycker på för att sparka igång makrot. Lite nörd-humor... :)

Haha om du bara visste!
Onödigt stor knapp finns, får se när jag har tid att göra en likadan nedtryckt knapp och styra upp så makrot byter bild när man aktiverar och "trycker" på knappen.
 

Johe

Omega
Vilken är den bästa boken för att lära sig mer om VBA och Macroprogrammering? Fuskar idag genom att spela in eller ladda ned kod och sedan editera efter bästa förmåga med hjälp av trial & error men det borde gå snabbare och smidigare om man lär sig på riktigt istället och kan använda möjligheterna fullt ut tänker jag.
 

nissehult

Patek
2-Faktor
Vilken är den bästa boken för att lära sig mer om VBA och Macroprogrammering? Fuskar idag genom att spela in eller ladda ned kod och sedan editera efter bästa förmåga med hjälp av trial & error men det borde gå snabbare och smidigare om man lär sig på riktigt istället och kan använda möjligheterna fullt ut tänker jag.
Spela + trial & error är en utmärkt metid. Komplettera med Google och du har ditt på det torra. Jag brukar lägga in "Excel 2010 vba" (alternativt "Excel vba") för att får VBA-specifika träffar, tex. "Excel vba push element to array". Man lär sig snart vilka sajter som brukar ha bra svar - stackoverflow, Microsoft, ozgrid, mrexcel, etc.

Du kan också ställa frågor här (efter googling...)
 

ZQT

The Banker
2-Faktor
Detta är handelsdagar, dvs ingen handel på helg/röda dagar. Ändå finns dessa dagar med i grafen, är säkert extremt enkelt att fixa till men har inte stött på problematiken innan. (Jag vill alltså inte ha med 30/4, 1/5 eller 5/5 i diagrammet. Det vanlig data, inte text eller liknande.)

upload_2016-5-12_16-25-57.png


Edit:
upload_2016-5-12_16-32-39.png
 
Senast ändrad:

tossefar

Cartier
Jag har gått hem för dagen så jag sitter inte med excel framför mig, men här är en fullösning:

Säg att "date" och "sp" är kolumn A och B.
Gör en formel i kolumner C och D som kopierar innehållet i A+B, men bara i fall där veckodagen inte är en lördag eller söndag (använd if(weekday[...])).
Gör kolumn C och D osynliga om du vill och gör sen grafen utifrån datan i de kolumnerna.

Den här metoden tar förstås bara hänsyn till lördagar och söndagar.
 

MJ24

Patek
2-Faktor
VLOOKUP är mer eller mindre ett verktyg som används för att matcha och hämta information från ett specifikt område celler i ett kalkylblad för att sedan skriva in det i det område där du vill att informationen ska visas. Detta kan göras mycket mer avancerat och är i mitt tycke mest till nytta om du vill importera väldigt mycket information eller vill importera specifika värden från ett annat kalkylblad :)

Exempel:
Låt säg att du har två olika kalkylblad, det första bladet innehåller alla medlemmar på forumet och i det andra bladet har du även här alla medlemmar på forumet men du har också informationen om hur många klockor varje medlem äger. Du kan då använda funktionen VLOOKUP i ditt första blad (det med endast medlemmar) för matcha användarnamnen i de båda kalkylbladen och sedan ge dig specificerad information som är kopplad till det specifika användarnamnet.

Så du vill t.ex veta hur många klockor Icaras använder? Då letar VLOOKUP igenom alla användarnamn i blad nummer 2 och när den hittat den specifika användaren "Icaras" börjar den leta igenom vilken information du specificerat, i detta fall antalet klockor. Du får då inskrivet i cellen i ditt första blad att Icaras har "X" antal klockor. Fördelen med funktionen här är att det sedan går att kopiera för alla medlemmar och vips har du hur många klockor varje medlem äger.

Som sagt svårt att förklara utan att visa i själva programmet... ursäktar i förväg om det gjorde det mer oklart än tidigare :p. Hur som finner du nedan ett klipp som iallafall jag tycker förklarar funktionens användningsområde.
Tack för tipset!
 

Ruskprick

Panerai
2-Faktor
Vilken är den bästa boken för att lära sig mer om VBA och Macroprogrammering? Fuskar idag genom att spela in eller ladda ned kod och sedan editera efter bästa förmåga med hjälp av trial & error men det borde gå snabbare och smidigare om man lär sig på riktigt istället och kan använda möjligheterna fullt ut tänker jag.

Som @n155e säger så lär man sig väldigt mycket på det sättet du redan börjat med annars kan jag väl tänka mig att exempelvis "Excel VBA Programming for Dummies" kan vara en bra start. Jag drog också ned lite färdiga makron och "steppade" igenom för att få någon sorts grundkunskap i logiken.
 

Mudfold

Cartier
Har en excellista med ca 1000 objekt jag måste jämföra med en annan lista.. Vad använder jag för funktion för att hitta dubletter & får programmet att redovisa dom?
 

nissehult

Patek
2-Faktor
Ja precis. Sen vill jag att dessa ev. dubbletter blir markerade/belysta. Ska kolla upp VLOOKUP, tack!
Typ något sånt här...

Capture.PNG


I cell D2 skrev jag:
=IF(ISERROR(VLOOKUP(C2;$A$2:$A$6;1;FALSE));"";"titta här")​

Och fyllde sedan kolumn D genom att dubbel-klicka på den lilla svarta fyrkanten i nedre hörnet av cell D2.
 

Ruskprick

Panerai
2-Faktor
Har en excellista med ca 1000 objekt jag måste jämföra med en annan lista.. Vad använder jag för funktion för att hitta dubletter & får programmet att redovisa dom?

=VLOOKUP lär lösa det, men ta en titt så att du inte har "Spreadsheet Compare" installerat också. Installerade Office 2016 för någon vecka sedan och provkörde spreadsheet compare, väldigt snyggt och smidigt! :)
 

nissehult

Patek
2-Faktor
Det stod inget om att det var formler så jag tänkte bara föreslå det enklaste. :)
Gjorde en liten filmsnutt till mina elever om detta för ett tag sedan.
Snyggt. Jag kände inte till dessa "dublett"-funktioner i Excel. Men i Mudfolds fall så skall objekten i en lista (lista B) markeras om de också existerar i en annan lista (lista A) - om jag har förstått det rätt.
 

Mudfold

Cartier
Schyssta ni är som hjälper.. Har inte ens hunnit fortsätta på arbetet. Jag återkommer imorgon. :)

Snyggt. Jag kände inte till dessa "dublett"-funktioner i Excel. Men i Mudfolds fall så skall objekten i en lista (lista B) markeras om de också existerar i en annan lista (lista A) - om jag har förstått det rätt.

Precis. Jag vill jämföra objekt i kolumn "X" i Blad1 med objekt kolumn "Z" i Blad2. Om ett specifikt objekt, t.ex: "qwerty" finns i båda kolumnerna vill jag att dessa highlightas.
 

nissehult

Patek
2-Faktor
Index match. Lookups är alldeles för statiskt och för mkt handpåläggning
Du kan lägga in villkor i conditional formatting. I princip det @nissehult skrev fast med match
Ge gärna exempel. Jag är så gammal att jag nästan alltid använder det jag kan innan och utan. Men jag är inte så gammal att jag inte kan lära mig något nytt. Index och match har jag använt men det var länge sedan...
 

MaziK

Rolex
2-Faktor
Jag önskar jag kunde säga jag är gammal, för jag glömmer saker och ting väldigt lätt :D

Jag fick rota fram i något ark jag använt en gång i tiden

Där hade jag använt mig av ISERROR som returnerar TRUE om ett värde är ett felvärde.
=NOT(ISERROR(MATCH(A1;Sheet2!A:A;FALSE))) --> antagande att kolumn A i blad 1 och kolumn A i blad 2 innehåller värdena.
Sen bör man väl kanske namnge rangen, för att vara "korrekt"

Går säkert att göra någon variant med countif också


Ge gärna exempel. Jag är så gammal att jag nästan alltid använder det jag kan innan och utan. Men jag är inte så gammal att jag inte kan lära mig något nytt. Index och match har jag använt men det var länge sedan...
 

ZQT

The Banker
2-Faktor
Ge gärna exempel. Jag är så gammal att jag nästan alltid använder det jag kan innan och utan. Men jag är inte så gammal att jag inte kan lära mig något nytt. Index och match har jag använt men det var länge sedan...

När jag använder index match kör jag alltid index match match och sen styr med rubriker i kolumnerna och siffror/liknande i raderna för att få unika matchningar.

Googla och kör enkla exempel först, sen öka och öka svårigheten
 

nissehult

Patek
2-Faktor
Jag önskar jag kunde säga jag är gammal, för jag glömmer saker och ting väldigt lätt :D

Jag fick rota fram i något ark jag använt en gång i tiden

Där hade jag använt mig av ISERROR som returnerar TRUE om ett värde är ett felvärde.
=NOT(ISERROR(MATCH(A1;Sheet2!A:A;FALSE))) --> antagande att kolumn A i blad 1 och kolumn A i blad 2 innehåller värdena.
Sen bör man väl kanske namnge rangen, för att vara "korrekt"

Går säkert att göra någon variant med countif också
Vilkorsformattering är bra om man vill få en visuell överblick. Jag har aldrig provat med någon mer avancerad formel än att specificera något tröskelvärde för markeringen. I problemet från @Mudfold så är det önskvärt att få dit en flagga i en kolumn som markerar dubbletter, då kan man enkelt göra ett auto-filter för att ta bort dubletterna.
 

nissehult

Patek
2-Faktor
När jag använder index match kör jag alltid index match match och sen styr med rubriker i kolumnerna och siffror/liknande i raderna för att få unika matchningar.

Googla och kör enkla exempel först, sen öka och öka svårigheten
Eftersom jag inte omfattas av banksekretessen så kan jag delge mina googlingserfarenheter här...

Jag förstår INDEX/MATCH-fördelarna och hur man kan använda INDEX/MATCH (och även INDEX/MATCH/MATCH). I Mudfolds fall så verkar det vara två enkla listor som skall jämföras. Som vanligt så finns det olika sätt att lösa problemet.

Capture.PNG


Jag använde mig av VLOOKUP (kolumn E)
=IF(ISERROR(VLOOKUP(C2;$A$2:$A$7;1;FALSE));"";"titta här")​
INDEX/MATCH fungerar också (kolumn F) och är väl flexiblare och effektivare i många fall, måhända lite overkill i just det här fallet.
=IF(ISERROR(INDEX($A$2:$A$7;MATCH(C2;$A$2:$A$7;0)));"";"titta här")​
Den enklaste lösningen är kanske att bara använda MATCH (kolumn G)
=IF(ISERROR(MATCH(C3;$A$2:$A$7;0));"";"titta här")​

Hela IF/ISERROR-satsen kan plockas bort om man hellre vill filtrera fram de rader som inte flaggas som #N/A.
 

MaziK

Rolex
2-Faktor
Går ju att köra en enkel countif med då får man också tillbaka hur många dubletter det finns.
Vlookup ger ju bara träff på första instansen.

Men som du säger det går nog att lösa problemet på många olika sätt och kombinationer @nissehult
 

ZQT

The Banker
2-Faktor
Eftersom jag inte omfattas av banksekretessen så kan jag delge mina googlingserfarenheter här...

Jag förstår INDEX/MATCH-fördelarna och hur man kan använda INDEX/MATCH (och även INDEX/MATCH/MATCH). I Mudfolds fall så verkar det vara två enkla listor som skall jämföras. Som vanligt så finns det olika sätt att lösa problemet.

Capture.PNG


Jag använde mig av VLOOKUP (kolumn E)
=IF(ISERROR(VLOOKUP(C2;$A$2:$A$7;1;FALSE));"";"titta här")​
INDEX/MATCH fungerar också (kolumn F) och är väl flexiblare och effektivare i många fall, måhända lite overkill i just det här fallet.
=IF(ISERROR(INDEX($A$2:$A$7;MATCH(C2;$A$2:$A$7;0)));"";"titta här")​
Den enklaste lösningen är kanske att bara använda MATCH (kolumn G)
=IF(ISERROR(MATCH(C3;$A$2:$A$7;0));"";"titta här")​

Hela IF/ISERROR-satsen kan plockas bort om man hellre vill filtrera fram de rader som inte flaggas som #N/A.
Overkill och overkill, index match match tar ju typ 15 sekunder att skriva och om man låser cellerna rätt så behöver du bara göra det en gång för hela ditt dataset. Lägg till en iferror innan IMM och så har du löst all problematik med N/A
 

nissehult

Patek
2-Faktor
Overkill och overkill, index match match tar ju typ 15 sekunder att skriva och om man låser cellerna rätt så behöver du bara göra det en gång för hela ditt dataset. Lägg till en iferror innan IMM och så har du löst all problematik med N/A
IFERROR... Där har vi en funktion jag inte har använt. Tack för infon :) Jag borde verkligen sätta mig ner och kolla igenom alla funktioner som finns varje gång en ny version släpps. (Ja, jag började med Excel v3.0 för länge, länge sedan... :oldman: )
 
Topp