Excel keskustelu

Liittynyt
17.10.2016
Viestejä
5 309
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.
 
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.
 
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.
 
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:
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.
 
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:
Kun en edes ymmärrä mikä on ongelmana ja mitä tarkkaanottaen haluat tehdä.. kerro nyt vähän paremmin ja selkeämmin edes em. tiedot.

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:
Vaihtoehtoisesti jos yhdessä solussa on esim numerot: 21251213171215 niin onko komentoa joka laskee eli summaa ne kaikki yhteen veireiseen soluun?
 
Vaihtoehtoisesti jos yhdessä solussa on esim numerot: 21251213171215 niin onko komentoa joka laskee eli summaa ne kaikki yhteen veireiseen soluun?

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....
 
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","")))))"

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.
 
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....

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.
 
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:
 
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:

Missä muodossa filu on tallennettu? Tulee ekana mieleen, että macrojen rakentelu jäänyt jollain kesken. Vaihda .xlsx ja tsekkaa auttaako.
 
Missä muodossa filu on tallennettu? Tulee ekana mieleen, että macrojen rakentelu jäänyt jollain kesken. Vaihda .xlsx ja tsekkaa auttaako.

Tämä on .ods eli siis openofficella väsäilen.

Itse olen tehnyt alusta alkaen, ei mitään makroja.
 
Ok, itsellä ei ole kokemusta open officesta niin en valitettavasti osaa enempää veikkailla.
 
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 muokannut ylläpidon jäsen:
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
 
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ämäpä oli varsin toimiva tapa, kiitoksia tuo säästää paljolti vaivaa jatkossa :)
 
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?
 
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?

Ootko koittanu:

CONCATENATE(A1, CHAR(10), A2)

?
 
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.
 
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:
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]")

Koita jotain sellaista kuin

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

jossa 30 on se monennenko tahdot?
 
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?
 
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?

excel2.png


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

=SUM(INDIRECT("B" & MATCH(B16;A1:A14)):B14)
 
Viimeksi muokattu:
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:
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.
 
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.

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:
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
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".
 
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".

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:
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
Pakko kyllä sanoa, että meni täysin ohi ajatuksesi. Pystyisitkö hieman avaamaan vielä?
 
Kerkesin just muokkaamaan edellistä, mutta koitan selittää.
Tää on kyllä melko perus matikkaa... :sori::sori:

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.​
 
jos useamman tankkauksen keskikulutus riittää niin virhe on maksimissaan yksi tankillinen suuntaansa vaikkei missään vaiheessa tiedettäisi paljonko tankissa on tavaraa.
 
jos useamman tankkauksen keskikulutus riittää niin virhe on maksimissaan yksi tankillinen suuntaansa vaikkei missään vaiheessa tiedettäisi paljonko tankissa on tavaraa.

Tämäkin on totta, mutta vaatii tollasella kulutuksella ainakin 50t Km kirjanpitoa pohjalle. Ennen kuin päästää alle 1L heittoon per 100km
 
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.
 
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.
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).


jos useamman tankkauksen keskikulutus riittää niin virhe on maksimissaan yksi tankillinen suuntaansa vaikkei missään vaiheessa tiedettäisi paljonko tankissa on tavaraa.
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.
 
Tällä hetkellä se tosiaan 'sekoaa' hetkeksi kun tehdään vajaa tankkaus ja tankki ei ollutkaan tyhjä.
Toistan vielä itseäni, eli siis ei tarvitse ajaa tankkia tyhjäksi, vaan tankata aina täyteen. :)
 
Jos taas ajaa aina tyhjäksi (oikeasti mahdotonta) niin tankkauksesta seuraavat kilometrit lasketaan.
 
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...

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:
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.
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?
 
Viimeksi muokannut ylläpidon jäsen:
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?

Ei
upload_2017-9-13_13-33-53.png


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.

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

upload_2017-9-13_13-31-31.png
 
Viimeksi muokannut ylläpidon jäsen:
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:
 
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.
 
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.

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:
 
backuppia vaan ajoon ja tallentaa tuplana, koittaa sitten avata toisessa softassa ennen ku lopullisesti sulkee tiedoston buuttia varten
 

Statistiikka

Viestiketjuista
261 519
Viestejä
4 538 995
Jäsenet
74 817
Uusin jäsen
pepponen

Hinta.fi

Back
Ylös Bottom