Aikapropleema

Työpäivä=9-20.
Työntekijä1 on töissä 9-13.
Työntekijä2 on töissä 12-16.
Työntekijä3 on töissä 16-20.
Miten tarkistaa taulukkolaskennan keinoin että 9-20 on aina joku töissä?
15134
Äänestä

Muut lukivat myös

Vastaukset 15

Vanhimmat

Yksi keino voisi olla vaikka Gantt-kaavio, joka näytää aika-akselilla työnajat.
Siitä näkee heti onko "välipäitä".
http://aijaa.com/UuwRxc

Äänestä
  • Ei kun se pitää tapahtua ohjelmallisesti. jos tuon koodaamalla tekisi niin esim 11 muistipaikkaa joista täyttäisi paikat 9-13, 12-16 ja 16-20 ja sitten silmukalla tarkistaisi onko kaikki 11 muistipaikkaa "täynnä". Vaan miten tuon tekisi Excelissä?

    Toinen kysymys olisi että miten ohjaan yhden solun tuloksella useaa muuta solua?
    Eli A1=5. A2=10. Noilla arvoilla pitäisi muutettaisiin solujen B5-B15 solujen arvo? Eli A1 määrää B:n sarakkeen eli B5 ja A2 sarakkeiden määrän(5 10=15)

    Äänestä

  • Linkkisi on pelkkä linkki johonkin tiedostoon?

    Äänestä

Eikö tuo aja aivan saman asian kuin Gantt-kaavio?

Äänestä
  • En ymmärrä miten kaavio ratkaisisi asian. Se ratkaisu pitää saada johonkin soluun.

    Äänestä

  • Valitettavasti en sattuneesta syystä voi avata tiedostoa. Olisin kiitollinen jos voisit laittaa kaavan tänne. Kiitos.

    Äänestä

Menipä hankalaksi

=JOS(JA(LASKE.JOS(G8:G12;$U$1)>=1;LASKE.JOS(H8:H12;$U$1)>=1;LASKE.JOS(I8:I12;$U$1)>=1;LASKE.JOS(J8:J12;$U$1)>=1;LASKE.JOS(K8:K12;$U$1)>=1;LASKE.JOS(L8:L12;$U$1)>=1;LASKE.JOS(M8:M12;$U$1)>=1;LASKE.JOS(N8:N12;$U$1)>=1;LASKE.JOS(O8:O12;$U$1)>=1;LASKE.JOS(P8:P12;$U$1)>=1;LASKE.JOS(Q8:Q12;$U$1)>=1;LASKE.JOS(R8:R12;$U$1)>=1);$U$3;$V$3)

Ei tuosta ole hyötyä. Sorry

Äänestä

Mene tonne:
[email protected]
salasana: Excelonkivaa
Tee tiedostolle virustarkistus ja sitten katso ratkaisu

Äänestä

Jos paikalla on yhtä aikaa työntekijöitä, tuleeko silloin Kundepuun ratkaisuksi yli 12 eli epätosi eli pois?

Pohdintaa vain

Äänestä
  • EI

    ihan sama kuinka monta on paikalla samaan aikaan koska matriisikaavallani lasketaan BOOLEAN ALGEBRALLA eikä perus algebralla summaa (TRUE /FALSE)

    eli rautalankaa asiasta...
    Boolean algebrassa on olemassa kaksi arvoa 0 ja 1 eli
    TRUE =1
    FALSE=0

    kun lasketaan yhteen arvoja summat on seuraavia

    FALSE FALSE=0 0-TULOS 0
    FALSE TRUE=0 1 TULOS 1
    TRUE FALSE=1 0 TULOS 1
    TRUE TRUE=1 1 TULOS1

    toi viimeinen hämää pohdiskelijaakin ja normaalii algebrassahan tulos olisikin kaksi tai esim TRUE TRUE TRUE=1 1 1 TULOS 1
    tulos olisi 3 normaali algebrassa, mutta BOOLEAN ALGEBRASSA on vain 0 ja 1 eli FALSE tai TRUE arvo ja eliminointisäännön mukaan 1 1 ei voi olla 0, joten sen on oltava 1

    Koska muita arvoja ei ole kuin 0 ja 1 niin kaavani maksimitulos voi olla 12 eli kaikilla tunneilla on vähintään 1 tai useampi TRUE esiintymä ja tällöin jos kaava palauttaa arvon TRUE ja tekstin "Paikalla" ja vastaavasti jos kaikille tunneille ei ole työntekijää niin silloin arvon FALSE ja tekstin "Pois"

    siis ei väliä kuinka monta "ykköstä" on summassa, niin tulos on aina 1
    TRUE FALSE FALSE TRUE=1 0 0 1 TULOS 1

    matriisikaavan yhteenlaskun tulos on seuraava

    =IF(SUM(IF({1\1\1\1\1\2\1\1\1\2\1\1};1;0))=12;"Paikalla";"Pois")

    kun sisempi jossittelu tehdään niin tulos on seuraava...

    =IF(SUM({1\1\1\1\1\1\1\1\1\1\1\1})=12;"Paikalla";"Pois")

    ja summan laskun jälkeen...

    =IF(12=12;"Paikalla";"Pois")

    ja jossin jälkeen...

    =IF(TRUE;"Paikalla";"Pois")
    ja lopputulos...

    ="Paikalla"


    Selvittikö asian?


    Keep EXCELing
    @Kunde

    Äänestä

Joo selvitti siinä mielessä, että tajuan taas itse osaavani kovin vähän.

Alkuperäistä kysyjää ei ole näkynyt, mikäköhän on tilanne?

Äänestä

Tätä voi käyttää, jos työaika ei tole täysiä tunteja. Funktion parametriksi annetaan tarpeellinen määrä rivejä kolmen sarakkeen leveydeltä (nimi, tuloaika, lähtöaika).
Funktio lajittelee henkilöt tuloajan mukaiseen järjestykseen ja tarkistaa milloin viimeinen toisen töissä ollessa tullut on lähtenyt.

Type tieto
   nimi As String
   tulo As Date
   lähtö As Date
End Type

Function JokuPaikalla(r) As Boolean
   d = r
   n = UBound(d)
   ReDim henkilö(n) As tieto
   Dim tmp As tieto
   
   aamu = CDate("9:00")
   ilta = CDate("20:00")
   
   i = 0
   For j = 0 To n - 1
      i = i 1
      With henkilö(i)
         .nimi = r(j * 3 1)
         .tulo = r(j * 3 2)
         .lähtö = r(j * 3 3)
      End With
   Next j
   
' lajittelu tuloajan mukaan
   For i = 1 To n - 1
      For j = i 1 To n
         If henkilö(i).tulo > henkilö(j).tulo Then
            tmp = henkilö(i)
            henkilö(i) = henkilö(j)
            henkilö(j) = tmp
         End If
      Next j
   Next i
   
   If henkilö(1).tulo

Äänestä

Kommentoi aloitusta


--------------- kirjoitti:

Työpäivä=9-20.
Työntekijä1 on töissä 9-13.
Työntekijä2 on töissä 12-16.
Työntekijä3 on töissä 16-20.
Miten tarkistaa taulukkolaskennan keinoin että 9-20 on aina joku töissä?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu