PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerExcelExcelHämta värden från ett kalkylark och överföra till tabellHämta värden från ett kalkylark och överföra till tabell
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2019-02-07 17:26
 

 Hej!

Exemplet nedan är skapat men jag söker principrna för en lösning på problemet.

I en flik skrivs data in dessa skall sedan kunna läsas i "schemat" (tabellform) på en annan flik.

Namn         Arbetsplats       Dagar
Kalle           Kassan              mån-ons
Kalle           Kassan              lör
Lisa            Ostdisken          mån-tis
Lisa            Charken              fre-lör
Pelle           Ostdisken           tors-sön
Pelle           Charken             mån

                                                                                   Schema

 

Mån

Tis

Ons

tors

Fre

Lör

Sön

Kassan

Kalle

Kalle

Kalle

Lisa

 

Kalle

 

Ostdisken

Lisa

Lisa

Pelle

Pelle

Pelle

Pelle

Pelle

Charken

Pelle

 

 

 

Lisa

Lisa

 

 

Tacksam för hjälp

 

Nytt inlägg
 2019-02-08 14:03
 
hej hej

Dessvärre är det näst intill omöjligt att skriva en formel som kan hantera detta utifrån hur det ser ut just nu. Största problemet är att du skriver in intervall mellan dagar, exempelvis tor-sön. Det blir då väldigt svårt att matcha exempelvis onsdag. För att lösa detta behövs VBA.

mvh
Christian
Nytt inlägg
 2019-02-08 14:42
 
 Ändrad av Christian  på 2019-02-08 15:45:53
Hej hej

Först behöver du översätta dagarna till siffor, och lägga spanned i nedre intervallet i en hjälpkolumn jämte dina dagar (mån-ons osv)
För att kunna göra detta behöver du en lista med veckans dagar, en dag i varje cell, uppifrån och ned:, mån, tis, ons osv.

L18 = cellen där du har din första förekomst av datum, e.g "mån-ons".
$P$5:$P$11 = din lista med dagar, mån-sön.

Första hjälpkolumnen:
Formeln letar efter bindesteck i dina dagsintervall, plockar därefter vänstra delen, dvs "mån" OCH matchar den mot din lista med dagar.
=OMFEL(OM(HITTA("-";L18)>0;PASSA(VÄNSTER(L18;3);$P$5:$P$11;0));PASSA(L18;$P$5:$P$11;0))

Andra hjälpkolumnen:
=OMFEL(OM(HITTA("-";L18)>0;PASSA(HÖGER(L18;3);$P$5:$P$11;0));PASSA(L18;$P$5:$P$11;0))
Denna gör samma sak. fast tittar istöllet efter siffran för "ons".


M18:M22 = första hjälpkolumnen
N18:N22 = andra hjälpkolumnen
K18:K22 = kolumnen där du har kassa, ostdisk osv.
J18:J22 = kolumenn där medarbetarnas namn står
(J17 = valfri cell en rad ovanför din data'


Q19 = dagsrubriken i ditt schema. exempelvis mån
P19 = där det står kassa, ostdisk osv i ditt schema.

Därefter behöver du en megaformel i ditt schema för att få ut rätt resultat.
=INDEX($J$18:$J$22;PRODUKTSUMMA(--($M$18:$M$22<=PASSA(Q$17;$P$5:$P$11;0))*RAD($M$18:$M$22)*($K$18:$K$22=$P19)*(--($N$18:$N$22>=PASSA(Q$17;$P$5:$P$11;0))))-RAD($J$17))

Stort lycka till :).. Inte helt lätt att få det att fungera.
Mvh
Christian
Nytt inlägg
 2019-02-08 16:13
 

 Tack för svaren Christian!

Jag misstänkte att tolkningn av intervallen skulle bli lite knepig. Det är värdefullt att få insikten att jag sannolikt måste söka en annan lösning, det vekliga exemplet innehåller ganska mycket information och då är det otäckt om man tappar "kontrollen".

Med vänlig hälsning

Petlin

Nytt inlägg
 2019-02-10 07:17
 

Hej,

Har funderat på detta till och från och efter att varit inne i en eller två ”återvändsgränder” har jag hittat en som är enkel och som jag tror fungerar enligt din beskrivning. När jag nu skulle lägga in det ser jag att Christian kommit med ett svar under tiden jag funderade men här kommer i alla fall ett alternativ. Det hänger lite på hur många ”dagar” du har. Om dagar inte är veckodagar och är många så kan det ta en stund att skriva in alla argumenten…

Till vänster om där du skriver in datan behövs in extra kolumn (som sedan kan döljas) där vi formaterar om din (lite besvärliga…) inmatning som innehåller ett spann t ex ”mån-ons”. Det gör vi med funktionen BYT.UT. Vi byter alltså ut "mån-ons" till "mån tis ons". Det blir en hel del alternativ men är ett engångsjobb. Jag har gjort alternativen för måndag som exempel men de behöver skapas för alla veckans dagar. Först i strängen ligger också ”Arbetsplats” i detta fall I9. Så här:

=I9&" "&BYT.UT(BYT.UT(BYT.UT(BYT.UT(BYT.UT(J9;"mån-ons";"mån tis ons");"mån-tor";"mån tis ons tor");"mån-fre";"mån tis ons tor fre");"mån-lör";"mån tis ons tor fre lör");"mån-sön";"mån tis ons tor fre lör sön")

Resultat av ovan blir: Kassan mån tis ons

De som bara innehåller en dag ”mån” eller ”mån-tis” kan vi använda som de är så de behöver inte tas med i en BYT.UT-formel. Tricket är att vi vill ha en textsträng som innehåller alla dagar och som därmed blir sökbar.

I tabellen där vi vill ha in vem som skall arbeta en viss dag använder vi LETARAD och skriver: =LETARAD($H19&"*"&I18&"*";$G$9:$H$14;2;0). Här ska sökvärdet alltså leta efter en sträng som först har Arbetsplats ($H19) och sedan med jokertecken säga att någonstans i resten av strängen ska Veckodagen (I$18) finnas. Dollartecknen är bara till för att man enkelt ska kunna kopiera formeln till hela matrisen. Sökvärdet får alltså träff även på "tis" där du skrivit "mån-ons".

Ser nu att du använder fyra bokstäven för tors medans jag skrivit tor.

Kom på nu att om det är väldigt många alternativ i byt.ut-formeln så går det ju att skriva en formel som skapar byt.ut-formeln. Intressant, måste fundera på den...

cmm

Nytt inlägg
 2019-02-10 07:29
 

Jag glömde ju att vi måste ha med oss värdena för "mån" och "mån-tis" också. Jag skrev att "de kan vi använda som de är" men de måste ju fortfarande flyttas till kolumnen med sökvärdena. Enklast är nog att helt enkelt ta med även dem i byt.ut-formeln.

För att förenkla skrivandet av byt.ut-formeln kan du skriva in alla alternativen i en lång rad, så här: "mån-ons";"mån tis ons");"mån-tor";"mån tis ons tor");

När du är färdig räknar du antalet alternativ och skriver in detta antal först i formeln, så här: BYT.UT(BYT.UT(BYT.UT osv

cmm

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelHämta värden från ett kalkylark och överföra till tabellHämta värden från ett kalkylark och överföra till tabell

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter