Trädvy Permalänk
Medlem
Registrerad
Feb 2019

Programmering i excel

Hej!

Jag sitter i dagsläget och har pillat ihop ett Excel dokument med en hel del uträkningar etc. I det dokumentet får jag in en massa värden där jag beräknar, standardavvikelse, toleranser, övre och undregränser samt spridning på värden ur en talserie. Vet att detta är väldigt simpelt i ett program som minitab. Men i dagsläget vill jag inte betala för det när det finns excel att tillgå.

Det jag vill skapa i dokumentet är att jag vill kunna skapa en "knapp" som visar normalomfördelningen, spridningen, samt undre och övre gränser. Tänker att det borde gå att programmera in en liten knapp som gör denna grafen. Dock har jag ingen aning om hur jag ska göra detta. Så om någon vet eller har tips/ideer så får ni gärna hojta till.

Tack på förhand!

Trädvy Permalänk
Medlem
Registrerad
Feb 2016

Det här låter ju som ett utmärkt tillfälle för dig att lära dig R och shiny...
R är ett statistikfokuserat scriptspråk och bör inte vara några problem om du kan excel.
Shiny är ett tillägg till R som skapar hemsidor, t.ex för din knapp och de resulterande graferna och tabellerna.

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Registrerad
Nov 2014
Skrivet av Giddelito:

Hej!

Jag sitter i dagsläget och har pillat ihop ett Excel dokument med en hel del uträkningar etc. I det dokumentet får jag in en massa värden där jag beräknar, standardavvikelse, toleranser, övre och undregränser samt spridning på värden ur en talserie. Vet att detta är väldigt simpelt i ett program som minitab. Men i dagsläget vill jag inte betala för det när det finns excel att tillgå.

Det jag vill skapa i dokumentet är att jag vill kunna skapa en "knapp" som visar normalomfördelningen, spridningen, samt undre och övre gränser. Tänker att det borde gå att programmera in en liten knapp som gör denna grafen. Dock har jag ingen aning om hur jag ska göra detta. Så om någon vet eller har tips/ideer så får ni gärna hojta till.

Tack på förhand!

Vissa av de funktioner du nämner finns ju inbyggda i Excel, t ex standardavvikelse (STDDEV) och normalfördelningen (NORM.DIST), undersök om det är tillräckligt för dig. Själva programmeringen kan ju göras med VBA, det har låg tröskel.

Själv skulle jag dock tryckt in allt i en databas och kanske använt R.

Trädvy Permalänk
Medlem
Registrerad
Feb 2019

@LeCorbusier: Absolut.

Dokumentet består just nu av 10 kolumner med 18 värden i varje kolumn.
Jag har givetvis redan räknat ut standardavvikelsen, medelvärdet, spridningen godkänt eller inte.

Men varje dag ska jag redovisa detta med en graf enligt bilden http://www.bilddump.se/bilder/20190815070932-98.128.162.51.jp... med linjer för övre/undre gränser, normalfördelningskurva, histogram samt ppm, ppk etc. (se bild för allt).
Tänk dig att detta görs varje dag cirka 10st. om dagen. Det blir väldigt mycket jobb att skapa en ny uträkning för varje enstaka graf.

Jag vill därför hitta ett sätt där jag kan programmera en "knapp" som genererar grafen mha. värden från andra celler i grafen. vilket gör att jag då bara kan ersätta mina insamlade data och ändra mina gränsvärden så att jag enkelt får ut önskat diagram snabbt och smidigt.

Trädvy Permalänk
Medlem
Plats
127.0.0.1
Registrerad
Apr 2008

Du kan programmera detta genom att skriva makro i Visual Basic for Applications (VBA).

Vi fick testa på det i skolan för 18 år sedan men det borde väl fungera än idag.

Skickades från m.sweclockers.com

Intel i7 8700 | ASUS Prime Z370-P | Corsair 16GB 3000MHz | ASUS GTX 1080 8 GB @ 2100MHz/11080MHz | Fractal Design Define S | Corsair RMX750x | Cooler Master Hyper 212 EVO

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jun 2002
Skrivet av Giddelito:

@LeCorbusier: Absolut.

Dokumentet består just nu av 10 kolumner med 18 värden i varje kolumn.
Jag har givetvis redan räknat ut standardavvikelsen, medelvärdet, spridningen godkänt eller inte.

Men varje dag ska jag redovisa detta med en graf enligt bilden http://www.bilddump.se/bilder/20190815070932-98.128.162.51.jp... med linjer för övre/undre gränser, normalfördelningskurva, histogram samt ppm, ppk etc. (se bild för allt).
Tänk dig att detta görs varje dag cirka 10st. om dagen. Det blir väldigt mycket jobb att skapa en ny uträkning för varje enstaka graf.

Jag vill därför hitta ett sätt där jag kan programmera en "knapp" som genererar grafen mha. värden från andra celler i grafen. vilket gör att jag då bara kan ersätta mina insamlade data och ändra mina gränsvärden så att jag enkelt får ut önskat diagram snabbt och smidigt.

Hur får du ny data? Är det någon som skickar dig mail eller har du ett eget schema för när data ska inhämtas?

Jag tycker att du borde kunna automatisera det ännu mer. Jag tänker mig en service som uppdaterar data i en databas och automatiskt genererar fram en eller flera bilder som sparas någonstans. Då kan du bygga en liten hemsida som automatiskt uppdateras med jämna mellanrum och publicera innehållet på någon elektronisk anslagstavla.

Trädvy Permalänk
Medlem
Registrerad
Feb 2019

@MickeBoy: Så duktig tror jag inte att jag är då jag aldrig programmerat mer än att jag klippt och klistrat med formler i excel som räknar ut saker i olika celler med villkorsformatering osv.

I dagsläget mäter jag datan för hand. Antecknar i en bok och för sedan in det i en 18 rader lång lista. För varje specifik mätomgång har jag också olika toleranser. Dessa toleranser fyller jag i själv. Undre/övre tolerans.

Så när jag fyllt i mina 18 mätvärden spottar den ut medelvärde, standardavvikelse, rött/grönt beroende på om det är godkänt samt spridning på mina mätvärden.

Med dessa celler tycker jag att man borde kunna ha typ färdiga diagram på sheet 2 t.ex. där det automatiskt genererar en graf med den datan jag fyllt i på sheet 1 där mätvärden finns. Men som sagt. detta vet jag inte hur jag ska göra.

Trädvy Permalänk
Medlem
Registrerad
Feb 2019

@Joppis: okej. Ska testa googla lite på detta. Aldrig använt mig utav makro eller VBA. Så det får bli något nytt.

Trädvy Permalänk
Medlem
Registrerad
Feb 2019
Skrivet av Napoleongl:

Det här låter ju som ett utmärkt tillfälle för dig att lära dig R och shiny...
R är ett statistikfokuserat scriptspråk och bör inte vara några problem om du kan excel.
Shiny är ett tillägg till R som skapar hemsidor, t.ex för din knapp och de resulterande graferna och tabellerna.

Skickades från m.sweclockers.com

Detta låter intressant! Aldrig hört talas om R eller shiny. Men det låter onekligen som något jag skulle kunna dyka ner mer i. Jag kan grunderna i excel. Formateringar, uträkningar (det matematiska).

Trädvy Permalänk
Medlem
Plats
127.0.0.1
Registrerad
Apr 2008
Skrivet av Giddelito:

@Joppis: okej. Ska testa googla lite på detta. Aldrig använt mig utav makro eller VBA. Så det får bli något nytt.

Här kan du se hur man plockar fram utvecklarverktygen i Excel om du inte ser dem.
https://support.office.com/en-us/article/show-the-developer-t...

Intel i7 8700 | ASUS Prime Z370-P | Corsair 16GB 3000MHz | ASUS GTX 1080 8 GB @ 2100MHz/11080MHz | Fractal Design Define S | Corsair RMX750x | Cooler Master Hyper 212 EVO

Trädvy Permalänk
Medlem
Registrerad
Feb 2016
Skrivet av Giddelito:

@LeCorbusier: Absolut.

Dokumentet består just nu av 10 kolumner med 18 värden i varje kolumn.
Jag har givetvis redan räknat ut standardavvikelsen, medelvärdet, spridningen godkänt eller inte.

Men varje dag ska jag redovisa detta med en graf enligt bilden http://www.bilddump.se/bilder/20190815070932-98.128.162.51.jp... med linjer för övre/undre gränser, normalfördelningskurva, histogram samt ppm, ppk etc. (se bild för allt).
Tänk dig att detta görs varje dag cirka 10st. om dagen. Det blir väldigt mycket jobb att skapa en ny uträkning för varje enstaka graf.

Jag vill därför hitta ett sätt där jag kan programmera en "knapp" som genererar grafen mha. värden från andra celler i grafen. vilket gör att jag då bara kan ersätta mina insamlade data och ändra mina gränsvärden så att jag enkelt får ut önskat diagram snabbt och smidigt.

Det där är SixSigma-diagram va? Finns ju ett fint litet paket i R för det som heter just SixSigma.
Och vill du bara ha en rapport med de olika diagrammen per dag skulle jag nog snarare automatisera det hela med RMarkdown än Shiny då detta är lite lättare att komma igång med, men det är en smaksak.

Om vi förutsätter att du varje dag har en excelfil med dagens värden namngiven data_2019-08-15.xlsx för idag t.ex, samt en separat fil med de nedre och övre toleranserna samt målvärdet per variablen namngiven limits.xlsx så får du en Capability Analysis plot per variabel med följande (snabbt ihopsnickrade och knappast optimerade men fullt fungerande) kod:

library(readxl) library(SixSigma) # Read the data and respective limits data <- data.frame(read_xlsx(path = paste0("data_", Sys.Date(), ".xlsx"))) limits <- data.frame(read_xlsx(path = "limits.xlsx")) # Create Capability plots for (col in 1:ncol(data)){ ss.study.ca(data[, col], LSL = limits[1, col], USL = limits[2, col], T = limits[3, col], f.main = paste0("Capability Analysis for ", colnames(data)[col]), f.sub = Sys.Date()) }

Resultat:
CA_plot

Datafilen:
data

Gränsfilen:
limits

Trädvy Permalänk
Medlem
Registrerad
Feb 2019
Skrivet av Joppis:

Här kan du se hur man plockar fram utvecklarverktygen i Excel om du inte ser dem.
https://support.office.com/en-us/article/show-the-developer-t...

Tack! Detta gör ju att man kommer en god bit på vägen. Nu har man möjligheten att göra det iallafall.

Trädvy Permalänk
Medlem
Registrerad
Feb 2019
Skrivet av Napoleongl:

Det där är SixSigma-diagram va? Finns ju ett fint litet paket i R för det som heter just SixSigma.
Och vill du bara ha en rapport med de olika diagrammen per dag skulle jag nog snarare automatisera det hela med RMarkdown än Shiny då detta är lite lättare att komma igång med, men det är en smaksak.

Om vi förutsätter att du varje dag har en excelfil med dagens värden namngiven data_2019-08-15.xlsx för idag t.ex, samt en separat fil med de nedre och övre toleranserna samt målvärdet per variablen namngiven limits.xlsx så får du en Capability Analysis plot per variabel med följande (snabbt ihopsnickrade och knappast optimerade men fullt fungerande) kod:

library(readxl) library(SixSigma) # Read the data and respective limits data <- data.frame(read_xlsx(path = paste0("data_", Sys.Date(), ".xlsx"))) limits <- data.frame(read_xlsx(path = "limits.xlsx")) # Create Capability plots for (col in 1:ncol(data)){ ss.study.ca(data[, col], LSL = limits[1, col], USL = limits[2, col], T = limits[3, col], f.main = paste0("Capability Analysis for ", colnames(data)[col]), f.sub = Sys.Date()) }

Resultat:
CA_plot

Datafilen:
data

Gränsfilen:
limits

Nu är det så att jag har ju kanske 20 kolumner i min fil. Varje kolumn räknar ut enligt följande http://www.bilddump.se/bilder/20190815100152-98.128.162.51.JP... nu visas bara en kolumn. men som sagt. Det är ett 20-tal kolumner med olika värden.

För varje kolumn vill jag kunna få en egen graf. SixSigma vet jag inte vad det är. Denna typen har jag fått till mig av en som använt programmet minitab (det som motsvarar exakt de sakerna jag vill få fram, men gratis från excel).

Trädvy Permalänk
Medlem
Plats
Karlstad
Registrerad
Jan 2012

Om jag förstår dig rätt så är det alltid samma typ av data isåfall räcker det med att lägga in grafer på det du vill ha så uppdateras de automatiskt när värdena i cellerna byts ut.
Vill man ha det mer automatiserat än så finns många bra tips redan.

"Gullet" {Switch 810 vit} {Asus Rampage Formula IV} {Intel I7 3820} {G.Skill Trident X 2400 Cl 10 4X4 GB} {Asus GTX 770 DC2 SC (SLI)} {Evga GTX 460 (PhysX)} {Corsair AX1200i} {Phanteks PH-TC14PE} {Samsung 850 256 GB} {6 TB HDD }

Trädvy Permalänk
Medlem
Registrerad
Feb 2016
Skrivet av Giddelito:

Nu är det så att jag har ju kanske 20 kolumner i min fil. Varje kolumn räknar ut enligt följande http://www.bilddump.se/bilder/20190815100152-98.128.162.51.JP... nu visas bara en kolumn. men som sagt. Det är ett 20-tal kolumner med olika värden.

För varje kolumn vill jag kunna få en egen graf. SixSigma vet jag inte vad det är. Denna typen har jag fått till mig av en som använt programmet minitab (det som motsvarar exakt de sakerna jag vill få fram, men gratis från excel).

Koden ovan ger ett diagram per kolumn. Oavsett hur många kolumner det är.

SixSigma är en en metodik för att analysera processer och det är därifrån Cpk och Cp kommer bl.a. Dock använder de fasta gränsvärden och inte något som är uträknat från data; processen ska hålla sig kring ett målvärde och inom lägre och övre gränser.

SixSigma och dess diagram osv finns som tillägg till många program, bla R och minitab. Jag tvivlar inte på att det finns färdigt för excel heller. Du bör isåfall kunna hitta ganska färdiga grejor i excel så du inte behöver räkna nånting utan bara peka på en datafil.

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Registrerad
Feb 2019
Skrivet av SchaaSchaa:

Om jag förstår dig rätt så är det alltid samma typ av data isåfall räcker det med att lägga in grafer på det du vill ha så uppdateras de automatiskt när värdena i cellerna byts ut.
Vill man ha det mer automatiserat än så finns många bra tips redan.

Yes. Det är alltid samma typ av data med med olika värden som sagt.

Största problemet är väl bara att jag inte vet hur jag ska lägga in alla dessa saker i ett och samma diagram.

Men tror jag har fått tillräckligt mycket hjälp på vägen för att komma dit jag vill nu!

Tack alla!

Trädvy Permalänk
Medlem
Registrerad
Feb 2019
Skrivet av Napoleongl:

Koden ovan ger ett diagram per kolumn. Oavsett hur många kolumner det är.

SixSigma är en en metodik för att analysera processer och det är därifrån Cpk och Cp kommer bl.a. Dock använder de fasta gränsvärden och inte något som är uträknat från data; processen ska hålla sig kring ett målvärde och inom lägre och övre gränser.

SixSigma och dess diagram osv finns som tillägg till många program, bla R och minitab. Jag tvivlar inte på att det finns färdigt för excel heller. Du bör isåfall kunna hitta ganska färdiga grejor i excel så du inte behöver räkna nånting utan bara peka på en datafil.

Skickades från m.sweclockers.com

Det är precis det jag behöver. SixSigma alltså!

De värdena jag har nu är ju att jag kollat upp vilka formler som används i minitab och där efter skrivit in formlerna baserade på celler i filen. (långa vägen helt enkelt).