(MS Excel / VBA) Spåra matintag, stress och tarmrörelse

Permalänk
Medlem

(MS Excel / VBA) Spåra matintag, stress och tarmrörelse

TL,DR: Jag behöver hjälp med att skapa ett exceldokument där man loggar ett gäng variabler per dag för vidare analys i SPSS. Varje variabel behöver sparas som en kolumn med binär data som indikerar intag eller ej. Vissa kolumner behöver också innehålla icke-binär, numrerisk data. Data behöver överföras från olika ställen i dokumentet, matchas mot kolumner, och sedan registreras.

Info:
Jag tycks utgöra en del av de lyckliga 15% av befolkningen som lider av IBS (kort och gott; du har en känslig mage och måste tänka på vad du äter, annars gör sig tarmsystemet påmind). Då inga riktiga läkemedel finns rekommenderas man att testa vilken mat som fungerar och vilken som inte gör det. Som den datanörd jag är vill jag förstås göra detta så systematiskt som möjligt, och klurar därför på hur man skulle kunna göra detta med hjälp av Excel för datalagring och SPSS för analys (eller annan passande mjukvara?). På så vis, tänker jag mig, bör man kunna finna korrelationer mellan variabler så som mat, dryck, stress, sömn (... etc.) och hur kistan mår (det sistnämnda baserade på subjektiva uppskattningar förstås).

Även om jag har hyfsade kunskaper inom Excel så tycks detta kräva Visual Basic-skills, samt Excel-kunskaper som är en bit över min nivå. Jag har hittat ett Exceldokument som ämnar räkna kalorier. Det skulle fungera bra som mall för datainförandet, men jag har inte tillräckliga skills för att kunna skriva om koden så att den fungerar som jag önskar.

Jag tänker mig att dokumentet skulle fungera såhär (se beskrivande bilder längre ner):

  1. Varje dag fyller man i mallen över vad man ätit, hur kistan mått, hur stressad man varit, tillsammans med övriga variabler.

  2. Man väljer om matvariabeln man fyller i är ett recept ("köttfärssås") eller en ingrediens ("nötfärs"). Om det är ett recept så matchas namnet på maträtten mot en lista med recept där alla ingredienser finns. Dessa recept skapar man själv i Recept-boken, då det lär skilja rätt mycket från individ-till-individ.

  3. Varje unik ingrediens blir till en kolumn i databas-boken.

  4. När man sparar dagens variabler (punkt ett), skapas en ny rad i databas-boken, där kolumnerna fylls på med ettor eller nollor för huruvida respektive ingrediens intagits under dagen eller ej, och samt numreriska värden för övriga variabler (hur stressad man varit på en X-gradig skala, hur kistan mått, hur många standardmått alkohol man konsumerat... etc.).

Se beskrivande bilder:

Dold text

Finns det någon därute som skulle kunna hjälpa mig med detta?
Jag vet att det är lite av en mastodontuppgift, men jag klarar det inte själv så jag tänker att jag åtminstone kan fråga. Jag hittar inte heller något liknande när jag googlar, så jag tänker att slutprodukten säkert kan vara till nytta för fler än mig. 🤷‍♂️

Tack på förhand!
Gorian

Visa signatur

---

Permalänk
Medlem

Har du tillgång till spss på nåt vis? För det är mig veterligen inte vare sig gratis eller billigt... R kan ju räkna ut de här sakerna också även om det blir lite kodande (vilket ju kan va kul för en datanörd).
Sen söker du inte korrelationer egentligen, du är ute efter att göra ordinarie logistisk regression, ungefär som om du ska förutse om nåt är av eller på men du har fler nivåer. Inte att blanda ihop med multinomial regression där du har olika utfall som inte är i en hierarki.
Tänkte att det kan hjälpa dig googla lite! Har lite mycket i skolan just nu för att skriva ihop ett skript som räknar ovan tyvärr.

Skickades från m.sweclockers.com

Permalänk
Medlem

Följer med stort intresse. Fick diagnosen för ca 15-20 år sedan och testat mängder med dieter och mediciner/naturläkemedel samt även KBT.

Men tyvärr kan jag inte hjälpa dig med dina frågor.

Skickades från m.sweclockers.com

Permalänk
Medlem

@Napoleongl: Jag har tillgång till SPSS genom högskolan, men tackar för input.

@Otori: Förstod väl att jag inte var ensam om behovet!

Visa signatur

---

Permalänk
Inaktiv

Pratar vi inte här om kostsamma lösningar? Excel och spss. Jag tänkte om syftet vore att sprida det. Att köra någon annans excelfil med vba är rent säkerhetsmässigt lite som att låta någon få en fjärranslutning till datorn (t.ex teamviewer) och sedan gå och se på bio...

Så jag tror ingen lösning för spridning utan mer privat bruk. Nu är jag kass på spss, men excel är det inga konstigheter, typ allt du behöver kunna står i denna bok: https://www.adlibris.com/se/bok/excel-2016-power-programming-...
Sedan är det ej fel att googla.

Om man ska göra en generell lösning så tror jag på något liknande mobil Appen Tummy Lab
https://ibs-mage.se/app-som-haller-koll-pa-din-ibs-mage/
https://se.tummylab.com/

Men det va inte mycket nerladdningar. Att produkten både finns på ios och android glör att jag litar mer på den, men jag installerar inte appar med få nerladdning generellt.

Så det jag säger förenklat är att din ide är inte ens svår i excel, däremot tidskrävande. Lösningen blir dock mer något för ditt och eventuellt någon mer bruk. Du har valt fel plattform för storskalig spridning.

Permalänk
Medlem

Bästa tipset är att lära dig lite mer om excel och VBA, om inget annat så blir det lärorikt och det är inte så svårt när man väl kommer igång.
För enkel dialog mellan excel <-> VBA använd namngivna ranges i dina datablad och Arrays

En VBA kod kan då t.ex. se ut såhär:

//namnge följande celler / ranges i excel:
en cell med dagens datum förslagsvis ("datum")
en range du vill använda som gränssnitt för dagliga intaget osv
en range du ämnar använda som databas

//deklarerar arrayen:
Dim arDagligIntag() as Variant, arDatabasen() as Variant
//läser in data från en namngiven range "DagligIntag" samt "Databasen" till vår arrays:
arDagligIntag = Range("DagligIntag").Value
arDatabasen = Range("Databasen").Value

//modifikation av data, omsortering osv t.ex. detta adderar dagliga intaget till befintliga värdena i databasen och omvandlar datan från rader till kolumner

dim i as long
for i = 1 to 10
arDatabasen(1, i) = arDatabasen (1, i) + arDagligIntag(i, 1)
next i

//det går i princip att göra hur utförligt som helst t.ex. genom att lägga till if-satser och leta i t.ex. recept genom array
for i = 1 to UBound(arRecept, 1)
if "köttfärslimpa" = arRecept(i, 1) then -> använd principen ovan för att lägga till innehållet i receptet som med fördel kan vara lagrade i arRecept(i, 2-3-4-5-6-7 osv)
next i

//skriver tillbaka data till namngiven range "Databasen":
Range("Databasen").Value = arDatabasen

Ännu enklare för dig blir det att koda om din inmatningsformulär helt enkelt dumpar datan på första bästa tomma rad i databasen, så kan du använda en array för att enkelt sortera det som hör ihop i efterhand, även om det kan bli flera registreringar och rader på samma datum (man kanske kommer på att man vill lägga till saker i efterhand

Permalänk
Hedersmedlem

*Bump raderat*

Observera att vi inte tillåter bumpning/meninglösa inlägg. Detta då vi tycker det är viktigt att alla får samma chans att få sina trådar uppmärksammade.

Skrivet av Gorian:

Bump.
Detta är fortfarande aktuellt om någon skulle vara intresserad/villig

Visa signatur

Danskjävel så krattar som en skrivare...