Excel keskustelu

Viestiketju alueella 'Yleinen ohjelmistokeskustelu' , aloittaja Nomber, 23.11.2016.

  1. Nomber

    Nomber

    Viestejä:
    379
    Rekisteröitynyt:
    17.10.2016
    Minulla on excel tiedosto jossa on X määrä välilehtiä. Haluaisin tallentaa nämä välilehdet kerralla pdf tiedostoiksi. Miten tämä onnistuu vai onnistuuko ollenkaan? PDF tiedoston nimen pitäisi olla tuon kyseisen välilehden otsikko.

    En ole löytänyt muuta keinoa tallentaa kaikkia tabeja pdf:äksi kuin sellaisen jossa ne tulevat kaikki samaan pötköön yhteen pdf tiedostoon, mutta tarvitsen erilliset tiedostot.

    Voin toki tallentaa jokaisen tabin erikseen, mutta tabeja on joku lähes 100 ja kerran kuussa pitäisi homma tehdä niin säästäisi aikaa reilusti jos saisi yhdellä klikkauksella homman hoidettua.
     
  2. Nomber

    Nomber

    Viestejä:
    379
    Rekisteröitynyt:
    17.10.2016
    Heti kun tämän triidin tein niin löysin ratkaisun, eli jos joku muu painii saman homman kanssa niin tässä ohjeet:

    Tälläisella kodilla homma pelaa:
    Koodi:
    Option Explicit
    
    Sub createPDFfiles()
        Dim ws As Worksheet
        Dim Fname As String
        For Each ws In ActiveWorkbook.Worksheets
            On Error Resume Next 'Continue if an error occurs
    
            ' Name PDF files based on the worksheet Index (e.g Annex 1.1.1, Annex 1.1.2, etc.)
            Fname = "Annex 1.1." & ws.Index & "_result"
    
            ' If you want to name the PDF files differently just change the Fname variable above to
            ' whatever you like. For example if you changed Fname to:
            '
            '  Fname =  “C:\myFolder\pdfs\” & ActiveWorkbook.Name & "-" & ws.Name
            '
            '  The files would be stored in C:\myFolder\pdfs, and named using the
            ' spreadsheet file name and the worksheet name.
            '
            ' WARNING: Using worksheet names may cause errors if the  names contain characters that Windows
            ' does not accept in file names. See below for a list of characters that you need to avoid.
            '
            ws.ExportAsFixedFormat _
                Type:=xlTypePDF, _
                Filename:=Fname, _
                Quality:=xlQualityStandard, _
                IncludeDocProperties:=True, _
                IgnorePrintAreas:=False
        Next ws
    End Sub
    Ja täällä ohjeet koodin käyttöön: http://www.contextures.com/xlvba01.html

    Eli tehdään vain tuommoinen yksinkertainen makro. Toimii todella hienosti.
     
  3. Rossifumi

    Rossifumi

    Viestejä:
    81
    Rekisteröitynyt:
    19.10.2016
    Miten saisin jaettua lukusarjan mahdollisimman samankokoisiin ryhmiin excelissä?

    Eli minulla on lukusarja esim: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. nämä luvut pitäisi jakaa kolmeen ryhmään niin, että tulos olisi mahdollisimman sama kaikissa ryhmissä eli tässä tapauksessa 18 ja yhdessä 19.

    Tähän ei ainakaan oma pääni vielä taivu.
     
  4. sbasil

    sbasil

    Viestejä:
    948
    Rekisteröitynyt:
    17.10.2016
    Onkos täällä Excel/makro-guruja. Miten mahtaisi onnistua jonkun alueen kopiointi niin, että tuo automaattisesti valitsisi B2:sta viimeiseen riviin, missä on dataa. Esimerkissä kopiointi päättyy riviin 152, mutta taulukon kasvaessa olisi hienoa, että 152:n sijasta makro valitsisi viimeisen rivin, missä on arvoja. Mitenköhän tuo olisi helpoin toteuttaa? :D

    Koodi:
    Sub Macro1()
    '
    ' Macro1 Macro
    '
    
    '
    Range("B2:p152").Select
    Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
    End Sub

    Itselleni vastaten; tämä ainakin näyttäisi toimivan:

    Koodi:
    Sub Macro1()
    '
    ' Macro1 Macro
    '
    
    '
    Range(Cells(2, ActiveCell.Column), Cells(Range("C6").End(xlDown).Row, ActiveCell.Column)).Select
    
    
        Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
    End Sub
    
     
    Viimeksi muokattu: 09.08.2017
  5. jjjjussi

    jjjjussi pelinjohtaja Tukijäsen

    Viestejä:
    959
    Rekisteröitynyt:
    17.10.2016
    Olisi tarkoitus laskea vähän lukuja. Loin taulukon johon lisäilin luvut. Nyt pitäisi saada keskiarvo noista tähän malliin, selitys mitä tarkoitan:

    kentässä ovat luvut:

    5
    6
    7
    8
    .
    .
    .
    .
    .

    Eli jotkut kentät jäävät tyhjiksi. Minkälainen on (=kaava) tähän. Siis tuloksen pitäisi olla tässä tapauksessa 6,5.

    Auttakee.
     
  6. sbasil

    sbasil

    Viestejä:
    948
    Rekisteröitynyt:
    17.10.2016
    Eikö tuo nyt mene ihan vaan =average(maalaa alue, mistä keskiarvo lasketaan)
     
    jjjjussi tykkää tästä.
  7. ENCLAVECA

    ENCLAVECA

    Viestejä:
    3
    Rekisteröitynyt:
    07.06.2017
    Auttakkaa Excel Mikki-hiirtä Excel merihädässä! :eek2:

    Tarkoitus on muuttaa kaikki tietyn listan sanat numeroiks ja summata ain yhden sanan numerot yhteen jne..
    Löysin tutorialin mutta en ymmärrä siitä mitään! Tai ylipäätään Excelistäkään! Fuck.
    Osaisiko joku tiestä viisaampi tässä auttaa miten tämä tehdään:

    " -If you have Excel, simply load one column with a list of words.
    -Enter into the second column a SUM and LEN argument allowing you to add the value of each letter in the previous cell to the sum total of that word. Ex. (this is used for Roman Numerals) "=SUM(((13*(LEN(B60)-LEN(SUBSTITUTE(B60,"C","")))))+(6*(LEN(B60)-LEN(SUBSTITUTE(B60,"D",""))))+(23*(LEN(B60)-LEN(SUBSTITUTE(B60,"I",""))))+SUM((21*(LEN(B60)-LEN(SUBSTITUTE(B60,"M","")))))+(2*(LEN(B60)-LEN(SUBSTITUTE(B60,"L",""))))+(10*(LEN(B60)-LEN(SUBSTITUTE(B60,"V",""))))+(22*(LEN(B60)-LEN(SUBSTITUTE(B60,"X","")))))"

    Toimiiko kaikissa vai vain uusimmassa Excelissä? Yritin kaikkeni mutta en saanut tulosta, auttakaa!! :confused:;)

    Edit: Ylläpidon siirtämä viesti.
     
    Viimeksi muokannut ylläpidon jäsen: 07.06.2017
  8. ENCLAVECA

    ENCLAVECA

    Viestejä:
    3
    Rekisteröitynyt:
    07.06.2017
    Toki!:hungry: Haluan siis syöttää kenttiin sanoja joiden kirjaimet tulee muuttua numeroiksi esim. ABCDEFG = 1234567, jonka jälkeen komento laskee numerot yhteen 1+2+3+4+5+6+7=28 ja syöttää summan (eli 28 tässä tapauksessa) viereiseen kenttään. Kyseisen komennon pitäisi noin toimia mutta olen niin tyhmä excelissä etten saanut toiminaan :darra:

    Edit: Ylläpidon siirtämä viesti.
     
    Viimeksi muokannut ylläpidon jäsen: 07.06.2017
  9. ENCLAVECA

    ENCLAVECA

    Viestejä:
    3
    Rekisteröitynyt:
    07.06.2017
    Vaihtoehtoisesti jos yhdessä solussa on esim numerot: 21251213171215 niin onko komentoa joka laskee eli summaa ne kaikki yhteen veireiseen soluun?
     
  10. HasNoName

    HasNoName

    Viestejä:
    23
    Rekisteröitynyt:
    23.11.2016
    Jos luvut on A1 solussa mitä tapahtuu jos

    =TULOJEN.SUMMA(MID(a1,ROW(OFFSET($A$1,,,LEN(a1))),1)+0)
    ei oo ekseliä asennettuna ni....
     
  11. TL70

    TL70

    Viestejä:
    18
    Rekisteröitynyt:
    21.10.2016
    Tuo funktio kyllä toimii suoraan, eli summaa merkkijonossa olevien kirjainten numerovastineet, tietyillä rajoituksilla:

    - Se lukee tiedon kentästä B60
    - Se käyttää englannin (US) kieliasetuksia eli eroninmerkki on pilkku ( , ) ja funktionimet englanniksi
    - Se käsittelee tuossa muodossa vain seuraavia ISOJA kirjaimia ja numerovastineita C=13, D=23, M=21, L=2, V=10, X=22

    Jos sinulla on Windowsin/Officen kieliasetuksina suomi niin erotinmerkki on Excelissä yleensä puolipiste ( ; ) ja jos Window/Office on suomenkielinen niin funktiot ovat suomenkielisiä (SUM = SUMMA, LEN = PITUUS, SUBSTITUTE = VAIHDA)

    Eli jotta saisit funktion toimimaan haluamallasi tavalla, on sinun tehtävä muutokset käyttämiesi kieliasetusten mukaan ja lisättävä funktioon omat osuutensa kaikille käyttämillesi kirjaimille ja niiden numerovastineille. Funktiosta tulee kaikilla aakkosilla aika pitkä ja saattaa huonolla tuurilla tulla funktion pituusraja vastaan.
     
  12. TL70

    TL70

    Viestejä:
    18
    Rekisteröitynyt:
    21.10.2016
    Kokeilinpa tämän Excelissä. Pienet korjaukset kaavaan eli kaikki funktiot englanninkielisiksi ja pilkku puolipisteeksi, jotta sain toimimaan:

    =SUMPRODUCT(MID(A1;ROW(OFFSET($A$1;;;LEN(A1)));1)+0)

    12345 palautti summan 15
    21251213171215 palautti summan 34

    Eli tuntuisi toimivan.
     
  13. Gize

    Gize

    Viestejä:
    563
    Rekisteröitynyt:
    18.12.2016
    Milläs ongelmasta eroon: excel jostain syystä laittaa aina suodattimen päälle tietylle riville?

    Korjaan aina vastaan tullessa menemällä suodatus-oletussuodatin-peruuta, jolloin se katoaa, mutta miten tästä eroon ja jos vielä joku osaisi valaista miksi tämä suodatus menee jatkuvasti itsestään päälle?

    Tapahtuu vain tässä yhdessä taulukossa ja yhdellä välilehdellä, muilla ei ongelmaa ilmene :think:
     
  14. elmutus

    elmutus

    Viestejä:
    11
    Rekisteröitynyt:
    01.06.2017
    Missä muodossa filu on tallennettu? Tulee ekana mieleen, että macrojen rakentelu jäänyt jollain kesken. Vaihda .xlsx ja tsekkaa auttaako.
     
  15. Gize

    Gize

    Viestejä:
    563
    Rekisteröitynyt:
    18.12.2016
    Tämä on .ods eli siis openofficella väsäilen.

    Itse olen tehnyt alusta alkaen, ei mitään makroja.
     
  16. elmutus

    elmutus

    Viestejä:
    11
    Rekisteröitynyt:
    01.06.2017
    Ok, itsellä ei ole kokemusta open officesta niin en valitettavasti osaa enempää veikkailla.
     
  17. akselic

    akselic Tukijäsen

    Viestejä:
    1 157
    Rekisteröitynyt:
    19.10.2016
    Hoi excel velhot, olen muutaman päivän pähkäillyt IF toiminnon kanssa. Kyseessä siis taulukko, jossa yhteen soluun valitaan pudotusvalikosta asiakkaan nimi, mitkä ovat "Asiakastiedot" nimisellä välilehdellä allekkain. Kun asiakkaan nimi on valikosta valittu niin muutamaan muuhun sarakkeeseen tulee sitten asiakkaan lisätietoja jotka ovat sitten omissa soluissaan samalla rivillä samaisella Asiakastiedot välilehdellä.

    =IF(B4=Asiakastiedot!B4;Asiakastiedot!C4)

    eli kun B4 solussa (on listaus) on Asiakastiedot -välilehden solun B4 arvo, se antaa Asiakastiedot -välilehden solun arvon C4. Tuo lista kasvaa aika kovaa tahtia ja mietin voiko noita kaavoja vähän lyhentää kun tuossa yhden solun kaava alkaa näyttää loputtomalta näin ikään (ja tuo siis jatkuu ja jatkuu):

    =IF(B4=Asiakastiedot!B4;Asiakastiedot!C4)&IF(B4=Asiakastiedot!B5;Asiakastiedot!C5)&IF(B4=Asiakastiedot!B6;Asiakastiedot!C6)&IF(B4=Asiakastiedot!B7;Asiakastiedot!C7)&IF(B4=Asiakastiedot!B8;Asiakastiedot!C8)&IF(B4=Asiakastiedot!B9;Asiakastiedot!C9)&IF(B4=Asiakastiedot!B10;Asiakastiedot!C10)&IF(B4=Asiakastiedot!B11;Asiakastiedot!C11)&IF(B4=Asiakastiedot!B12;Asiakastiedot!C12)

    Onko tuota mahdollista lyhentää niin että se hakisi aina kun asiakkaan nimi on valittuna (= Asiakastiedot -välilehden B sarakkeesta) se täyttäisi viereiseltä tai sitä seuraavalta solulta siihen syötetyn arvon ilman että tuota listaa pitää kasvattaa loputtomiin? Tuo asiakastieto -välilehti on täytetty noin suunnilleen tällä idealla

    ahadfhfa.jpg

    Ja sitten tulostesivulle haetaan tuosta tiedot näin

    jkfjgsfj.jpg
     
    Viimeksi muokattu: 06.08.2017
  18. mhkuas

    mhkuas

    Viestejä:
    7
    Rekisteröitynyt:
    14.12.2016
    Mikäli ymmärsin tarpeesi oikein, käyttäisin tuohon Index-Match -komboa ja tekisin tuosta asiakastiedoista taulukon (Format as Table), jolloin uusien tietojen lisääminen tulosteeseen tai asiakastietoihin on suhteellisen vaivatonta.

    Tässä vielä esimerkki tuosta toteutuksesta: Dropbox - esimerkki.xlsx
     
    akselic tykkää tästä.
  19. akselic

    akselic Tukijäsen

    Viestejä:
    1 157
    Rekisteröitynyt:
    19.10.2016
    Tämäpä oli varsin toimiva tapa, kiitoksia tuo säästää paljolti vaivaa jatkossa :)
     
  20. shuvl

    shuvl

    Viestejä:
    154
    Rekisteröitynyt:
    21.10.2016
    Jospa täällä saisi Excel-vinkkiä ongelmaan;

    Minulla on kahdessa eri sarakkeessa tietoja, jotka täytyy yhdistää hieman erikoisella tavalla. Erikoisuus on se, että kun tiedot yhdistetään samaan soluun, ne tulisi saada solun sisällä kahdelle eri riville. Yritin CONCATENATE:lla siten, että tein manuaalisen rivinvaihdon ALT + Enter, mutta kaava palauttaa aina FALSE.

    Onko tuohon rivinvaihtoon/linebreakkiin olemassa valmista funktiota?
     
  21. HasNoName

    HasNoName

    Viestejä:
    23
    Rekisteröitynyt:
    23.11.2016
    Ootko koittanu:

    CONCATENATE(A1, CHAR(10), A2)

    ?
     
  22. shuvl

    shuvl

    Viestejä:
    154
    Rekisteröitynyt:
    21.10.2016
    Samaan pötköön tulevat. Onkohan tuolle CHAR(NUMBER) olemassa rivinvaihdolle jokin tietty numerokoodi?
     
  23. shuvl

    shuvl

    Viestejä:
    154
    Rekisteröitynyt:
    21.10.2016
    No nyt lähti pelittään. Täyty laittaa Wrap Text päälle soluun. Kiitokset!
     
  24. Lassivv

    Lassivv

    Viestejä:
    249
    Rekisteröitynyt:
    12.02.2017
    Ei varmaan suoranaisesti oikea paikka, mutta täällä aihe niin lähellä että löytyisiköhän tähän asiaan apuja.

    Ongelma Xpath haun kanssa Google spreadsheetissä. Kun teen uuden spreadsheet dokumentin kaikki näyttäisi toimivan ok ja saan haettua b[@class ja span class muotoista tavaraa ulos, div class en saanut vaan tulosti kaiken.

    Noh tärkeimpän ongelmana on että kun teen uuden dokumentin laitan siihen pari sääntöä. se hakee ne kohde sivulta oikein. (esim sivu: linkki)

    Hetken kun täyttelen taulukkoa niin kaikkiin kenttiin tuleekin N/A ja taulukko sanoo "imported content is empty".

    F5 tai dokumentin uudelleen avaaminen ei auta mitään. Joskus nuo voi mystisesti palata takaisin näkyviin tai sitten ainoa vaihtoehto on tehdä uusi dokumentti millä ne yleensä taas lähtee pelaamaan muutamaksi minuutiksi. Onko vikana nyt jotenkin tuo oikotien sivu vai onko yksinkertaisesti jotan mitä en ole ottanut huomioon.

    Nämä rivit esim toimii ok taulukossa, mutta sitten pimenevät 2min päästä eikä niitä meinaa saada toimimaan enää ollenkaan:
    Koodi:
    =IMPORTXML("https://asunnot.oikotie.fi/myytavat-asunnot/lahti/13788397", "//span[@class='listing-viewings__item__time']")
    
    =IMPORTXML("https://asunnot.oikotie.fi/myytavat-asunnot/lahti/13788397", "//b[@class='listing-viewings__item__date']")
    Toivottavasit joku osaisi auttaa amatööriä :)

    Tuntui myös yhteen väliin siltä että jos haki samasta urlista monessa ei kentässä jotain eri tietoa niin ei toiminut sitäkään vähää, mutta voi toki olla että lopetti vaan toiminnan sillä hetkellä muutenkin.

    Kokeiltu myös Xpath copy Chromen kautta:
    /html/body/div[6]/div[3]/div[1]/div[2]/div/span

    Eipä toimi tuokaan sen paremmin.

    Käytössä Google spreadsheet ja Openoffice.
     
  25. otaar

    otaar

    Viestejä:
    76
    Rekisteröitynyt:
    16.10.2016
    voisko oikotie vetää jotkut ddos estot ja sen takia et saa dataa?
     
  26. Lassivv

    Lassivv

    Viestejä:
    249
    Rekisteröitynyt:
    12.02.2017
    Mahdollisesti jotain tällästä siinä on, nyt illalla näyttäisi toimivan kun ei ole tullut päiviteltyä sivua niin useasti kun taulukko jo valmiiks kohtuu ok.

    Yksi ongelma on div class luokkien kanssa, osaisiko joku auttaa miten pystyn hakemaan vaikkapa tietyn numerojärjestyksessä olevan div class kentän exeliin.

    Koodissa esiintyy tällä tyylillä infoa eli samalla class nimellä on ihan erilaisia tietoja noin 30kenttää.
    http://i.imgur.com/rWQuh3a.png

    Tuolta luen sitten tällä rivillä taulukkoon tietoja: =IMPORTXML(A2, "//div[@class='listing-property-value']")

    Ongelmana on että taulukkoon tulostuu 30arvoa eri kenttiin alekkain omiin sarakkeisiin. Eli "koodi" toiminnee oikein poimii sieltä kaikki tuolla "listing-property-value" -nimellä olevat arvot ja tulostaa ne taulukkoon.

    Nyt haluisin kuitenkin poimia sieltä vaan yksitellen tietyn arvon ja tulostaa sen. Pystytkö antamaan tuohon edellä olevaan xpath ohjeeseen jotenkin esim järjestys luvun jolla voin määrittää minkä noista 30sarakkeesta haluan tulostuvan?

    Joku indeksi määrittely varmaan toimisi, mutta raapinut nyt päätä ja pyöritelly kaikkia xpath ohjeita läpi, mutta en ole vaan saanut toimimaan niin että saisin yhden class rivin sieltä vaan poimittua.

    edit: Yritin myös tätä, mutta ei antanut mitään tietoja ulos:
    =IMPORTXML(A2, "//div[@class='listing-property-value'][2]")
     
    Viimeksi muokattu: 12.08.2017
  27. HasNoName

    HasNoName

    Viestejä:
    23
    Rekisteröitynyt:
    23.11.2016
    Koita jotain sellaista kuin

    =INDEX(IMPORTXML(A2, "//div[@class='listing-property-value']"), 30)

    jossa 30 on se monennenko tahdot?
     
    Lassivv tykkää tästä.
  28. Lassivv

    Lassivv

    Viestejä:
    249
    Rekisteröitynyt:
    12.02.2017
    Iso kiitos tuolla lähti pelittämään. Onkohan mitenkään mahdollista käyttää tuota edeltävää listing-property-title:ä määrittämään se kenttä mikä halutaan tulostaa. Eli aina tietyn nimisen listing-property-title:n jälkeen oleva property-value tulostettaisiin.

    Tuossa indeksi hommassa kun tuli sellainen " bugi" vastaan että jossain ilmoituksissa jätetty jotain kenttiä kokonaan pois ja näin ollen menee tuo indeksointi sekaisin.

    Esim tuossa edellisen viestin screenshotissa oleva rakennusvuosi title annettaisiin määritteeksi, että sen jälkeinen value tulostetaan, olisikohan mahdollista mitenkään järkevästi?
     
  29. Forcer

    Forcer

    Viestejä:
    11
    Rekisteröitynyt:
    17.11.2016
    Olisi tälläinen ongelma:

    Pitäisi etsiä alueelta A1:A14 B16-solussa oleva arvo ja laskea viereisestä sarakkeesta samalla rivillä olevasta arvosta B14-soluun asti summa.

    Esimerkki: B16-solussa on nyt 11, joten pitäisi laskea summa soluista B10:B14

    Olen koittanut VLOOKUPin ja MATCHin avulla tätä tehdä, mutta menee tarpeettoman monimutkaiseksi. Onko tähän jotain helppoa ratkaisua?

    [​IMG]

    Edit: sain sen nyt tälläisellä virityksellä toimimaan, varmaan on parempiakin tapoja:

    =SUM(INDIRECT("B" & MATCH(B16;A1:A14)):B14)
     
    Viimeksi muokattu: 17.08.2017
  30. mhkuas

    mhkuas

    Viestejä:
    7
    Rekisteröitynyt:
    14.12.2016
    SUMIF toimii kanssa.

    SUMIF(A1:A14;">" & B16;B1:B14)
     
  31. nnaku

    nnaku I'm object-oriented! Premium-jäsen

    Viestejä:
    404
    Rekisteröitynyt:
    28.11.2016
    Mulla on taulukko, joka päivittyy kun soluun X luetaan viivakoodista numerosarja. Skanneri syöttää numeronsarjan perään "enterin", ja kun koodeja pitäs lukea useita niin on kohtuu rasittava aina navigoida takaisin tuohon haluttuun soluun.

    Eli pitäs saada excelissä kursori pysymään (autofocus?) tietyssä solussa aina kun käyttäjä syöttää dataa. Kumminkaan muuttamatta excelin globaaleja asetuksia. Haluasin tämän pysyvän työkirjan sisällä niin että voin jakaa työkirjaa ilman mitään säätöä.

    VBA kokemus loppuu alt+f11 kohdalle.

    P.s. Skannerin syötteen modaaminen ei myöskään ole mahdollista...
     
    Viimeksi muokattu: 18.08.2017
  32. shuvl

    shuvl

    Viestejä:
    154
    Rekisteröitynyt:
    21.10.2016
    Morot,

    Ongelmana laskea raskaan liikenteen keskikulutus excelissä. Perusideana tietenkin suhteellisen helppo: tankattu litramäärä / (tämän hetkinen km lukema - aiemman tankkauskerran km lukema) * 100.

    Esimerkki: (500 / (500500 - 501300) * 100 = 62,5 l/100km

    Ongelmana on se, että jos/kun tehdäänkin vajaa tankkaus (vaikka vain 60 litraa) ja tankissa olikin aiemmin pohjilla esim 450 litraa. Ajetaankin koko tankki tyhjäksi esimerkiksi 950km, jolloin kaava sanoo:

    (60 / 950) * 100 = noin 6 litraa sataselle? No ei ehkä ihan raskaalla kalustolla.

    Mikähän mulla on väärin/vajaa tässä ideologiassa? Käytännössä tuo aiemmin esitetty toimii tällä hetkellä vain "täyteen tankatessa".

    Kaikki tankkauskerrat ovat excelissä aina omana rivinään kaikki peräkkäin.
     
  33. nnaku

    nnaku I'm object-oriented! Premium-jäsen

    Viestejä:
    404
    Rekisteröitynyt:
    28.11.2016
    eikös tuo pitäs olla (450+60)/950*100

    Eli (tankissa+tankattu)/kilomertit*satakilometriä

    edit:
    Vai haetaanko tässä jotain parempaa ideaa totettaa tollanen kirjanpito o_O
     
    Viimeksi muokattu: 23.08.2017
  34. shuvl

    shuvl

    Viestejä:
    154
    Rekisteröitynyt:
    21.10.2016
    Haetaan myös parempaa "kaavaa" toteuttaa tuo laskelma siten, että se toimii ns täystankkauksella tai sitten tuollaisella "muutaman kymmenen litran tankkauksella".

    Matemaattisesti ongelma on se, että kuljettaja ei tiedä tankin tarkkaa litramäärää ikinä. Tästä syystä tuo 450+60 ei ole tositilanteessa "mahdollinen".
     
  35. nnaku

    nnaku I'm object-oriented! Premium-jäsen

    Viestejä:
    404
    Rekisteröitynyt:
    28.11.2016
    Sitten on hyvä vain pitää kirjaa siihen asti kunnes tankki tankataan täyteen ajetaan tyhjäksi ja laskea näiden kulutus yhteensä.

    Esim:
    upload_2017-8-23_22-57-59.png

    edit:
    Tai jos tankki vedetään aina tankatessa täyteen niin kyllähän litrat sitten selviää, Muuten ei oikeen voi muuta kuin arvailla.
     
    Viimeksi muokattu: 23.08.2017
  36. shuvl

    shuvl

    Viestejä:
    154
    Rekisteröitynyt:
    21.10.2016
    Pakko kyllä sanoa, että meni täysin ohi ajatuksesi. Pystyisitkö hieman avaamaan vielä?
     
  37. nnaku

    nnaku I'm object-oriented! Premium-jäsen

    Viestejä:
    404
    Rekisteröitynyt:
    28.11.2016
    Kerkesin just muokkaamaan edellistä, mutta koitan selittää.
    [ Vain rekisteröityneet käyttäjät näkevät Spoiler-tagin sisällön. Rekisteröidy foorumille... ]

    No tankissa olevan löpön määrä on tiedettävä tavalla taikka toisella. Ja varmaan paras tapa todeta se on tankata tankki täyteen.

    Hyvä nyt sulla on 500l kiisseliä (Täys tankki). Jonka jälkeen on kaksi mahdollista tapausta.

    Tilanne A
    Ajat 100km, jonka jälkeen tankkaat tankin uudelleen täyteen, tankkiin upposi 60l. Tästä tiedetään että kulutus edellisen tankkauksen jälkeen on ollut 60l/100km. Tämä on helppo tapa, jos tankkaat aina tankin täyteen.
    (Tankattu määrä / kilometrit tämän ja edellisen tankkausen välissä)*100
    Tilanne B
    Ajat 400km, jonka jälkeen tankkaat 60l. Tässä kohtaa löpön määrää voidaan vain arvailla. Ajat lisää 500km, jonka jälkeen tankkaat 480l ja tankki on jälleen täysi.
    Olet ajanut kahden edellisen täyden tankkauksen välissä 900km ja tankannut yhteensä 540l. Kulutus (60l+480l)/(400km+500km)*100 = 60L/100Km

    (tankkaus 1+2+3+...+n) / (kilometrit 1+2+3+...+n)*100
    Tämä toimii äärettömään määrään mini tankkauksia, kunnes tankki lopulta tulee täyteen.​
     
  38. otaar

    otaar

    Viestejä:
    76
    Rekisteröitynyt:
    16.10.2016
    jos useamman tankkauksen keskikulutus riittää niin virhe on maksimissaan yksi tankillinen suuntaansa vaikkei missään vaiheessa tiedettäisi paljonko tankissa on tavaraa.
     
    nnaku tykkää tästä.
  39. nnaku

    nnaku I'm object-oriented! Premium-jäsen

    Viestejä:
    404
    Rekisteröitynyt:
    28.11.2016
    Tämäkin on totta, mutta vaatii tollasella kulutuksella ainakin 50t Km kirjanpitoa pohjalle. Ennen kuin päästää alle 1L heittoon per 100km
     
  40. Purple

    Purple

    Viestejä:
    445
    Rekisteröitynyt:
    17.10.2016
    Noinhan se on helpoin että vajaa tankkaukset huomioidaan vasta kun tankataan täyteen. Eli täysitankkaus voi excelissä olla vaikka 1200 litraa ja silti kulutus näyttää oikein. Esim 200L tankkausta täyteen asti ja 1000litraa joka koostuu esim kymmenestä vajaasta tankkauksesta joista 100l kukin.
     
  41. shuvl

    shuvl

    Viestejä:
    154
    Rekisteröitynyt:
    21.10.2016
    Tämä lienee se ongelma tälläisessä yksinkertaisessa excel-toteutuksessa. Tällä hetkellä se tosiaan 'sekoaa' hetkeksi kun tehdään vajaa tankkaus ja tankki ei ollutkaan tyhjä (aika realistinen tapaus), mutta koko kuukauden keskikulutus pitää kutiaan, koska se kompensoituu muiden tankkauskertojen avulla (katsotaan kk:n alussa ja lopussa olevat kilometrit sekä tankkauslitrat joiden perusteella saadaan se keskikulutus/kk).


    No se on nyt vain sitten riitettävä. :tup:

    Täytyy funtsia saisiko tuohon räpellettyä yleisesti jonkun pätevämmän kaavan, jonka avulla kuljettava voisi syöttää muitakin tietoja kuin km:t ja tankatut litrat. Toisaalta, aika räpeltämiseksihän se menisi.. Kiitokset vastauksista.
     
  42. nnaku

    nnaku I'm object-oriented! Premium-jäsen

    Viestejä:
    404
    Rekisteröitynyt:
    28.11.2016
    Toistan vielä itseäni, eli siis ei tarvitse ajaa tankkia tyhjäksi, vaan tankata aina täyteen. :)
     
    shuvl tykkää tästä.
  43. TheMeII

    TheMeII echo "%0|%0">s.bat|s Tukijäsen

    Viestejä:
    1 359
    Rekisteröitynyt:
    13.11.2016
    Jos taas ajaa aina tyhjäksi (oikeasti mahdotonta) niin tankkauksesta seuraavat kilometrit lasketaan.
     
    shuvl tykkää tästä.
  44. slarti

    slarti

    Viestejä:
    24
    Rekisteröitynyt:
    03.11.2016
    Jos haluat fokuksen siirtyvän aina jonkin välilehden muutoksen jälkeen, laita kyseisen välilehden moduuliin seuraava VBA-pätkä:

    Koodi:
    Private Sub Worksheet_Change(ByVal Target As Range)
    
        Me.Cells(2, 2).Select
    
    End Sub
    Tämä valitsee aina solun B2 (rivi 2, sarake 2)

    Jos haluat että siirto tapahtuu vain kun tiettyä solua muutetaan voit muuttaa edellistä muotoon:

    Koodi:
    Private Sub Worksheet_Change(ByVal Target As Range)
    
        If Target = Me.Cells(1, 1) Then
            Me.Cells(2, 2).Select
        End If
    
    End Sub
    Tällöin focus siirtyy vain kun muutetaan solua A1 (rivi 1,sarake 1)
     
    Viimeksi muokattu: 24.08.2017
  45. Nakkipata

    Nakkipata

    Viestejä:
    343
    Rekisteröitynyt:
    28.11.2016
    Mitenkäs Excelin saa laskemaan kahden desimaalin tarkkuudella, en keksi.

    Toivottava: 17,63 x 10 = 176,30 euroa
    Nyt: 17,6321916666667000 x 10 = 176,32 euroa

    Tuosta nykytilanteesta voisin tarkentaa eli tuo 17,6321.... on Excelissä olevan laskutoimituksen tulos. Ruudulle olen tietysti laittanut arvon näkymään kahden desimaalin tarkkuudella. Silti Excel tekee laskusuorituksen tarkalla arvolla. Itse olen tarkan arvon kannalla, mutta asiakas ei.
     
  46. shuvl

    shuvl

    Viestejä:
    154
    Rekisteröitynyt:
    21.10.2016
    Siis haluat lopputuloksen näkymään xxx,<ensimmäinen desimaali><toinen desimaali>, esim 100,05 euroa? Muotoile solu näyttämään vain 2 desimaalia?
     
  47. nnaku

    nnaku I'm object-oriented! Premium-jäsen

    Viestejä:
    404
    Rekisteröitynyt:
    28.11.2016
    Ei
    upload_2017-9-13_13-33-53.png

    A1 = 17,6321916666667000
    B1 = 10
    C1 =ROUND(A1;2)*B1 = 176,30

    upload_2017-9-13_13-31-31.png
     
    Nakkipata ja TheMeII tykkäävät tästä.
  48. Gize

    Gize

    Viestejä:
    563
    Rekisteröitynyt:
    18.12.2016
    Mistäs nyt kiikastaa, tallensin taulukot normaalisti uudelleenkäynnistystä varten, mutta koneen boottauksen jälkeen ei tahdokaan avata, tulee vain tällainen:

    excelOngelma.png

    Siitä ok:lla:

    excelOngelma2.png

    Kaikki olisi muuten ihan ok, mutta kun sieltä aukeaa täysin tyhjä taulukko, apuja kaivataan :confused:
     
  49. otaar

    otaar

    Viestejä:
    76
    Rekisteröitynyt:
    16.10.2016
    Yrittää tuoda tiedostoa tekstitiedostona(.csv:nä tms.) eli ei varmaankaan tunnista tiedostomuotoa, joten se lienee vioittunut jotenkin tallennuksessa.

    Jotta mitään saisit tuolla irti täytyisi tuohon harmaaseen neliöön tulla esikatselu tuotavista tiedoista, ja todennäköisesti jotain pitäisi näkyä noillakin asetuksilla.

    Notepadilla tai muulla tekstieditorilla voisit avata tiedoston ja katsoa löytyykö sieltä datat selkokielisenä tai sitten koittaa avata jollain muulla .ods ymmärtävällä softalla.
     
  50. Gize

    Gize

    Viestejä:
    563
    Rekisteröitynyt:
    18.12.2016
    Juu varmaan on nyt bitti jotenkin vinossa, outoa sikäli että tallennus onnistui kuten normaalistikin.

    OO ei tuo nyt mitään näkyviin, vain tyhjän taulukon.

    muistiolla, wordpadilla ja Notepad++:lla ainoa selkokielinen mitä sieltä saa ulos on:

    Koodi:
    Configurations2/toolpanel/PK
    Tämäntyylistä muutama rivi, loput lukukelvotonta siansaksaa, sama mitä Libreoffice suoltaa taulukon täydeltä (1 välilehti).

    Tämä taitaa olla menetetty tapaus vai tuleeko jotain kikkakolmosta joltain hihasta?


    Varmuuskopio nyt on onneksi vain 4 päivää vanha joten tuntikaupalla ei kannata taistella tämän kanssa (onneksi) :happy: