Osallistu kisaan Liiga ja rekkamies – 500 € palkinnot!
Excel kysymyksiä
-
Jäähile
- Jäsen
- Viestit: 516
- Liittynyt: 15.05.2003, 15:13
- Pisteitä: 0
- Paikkakunta: Oulu
Excel kysymyksiä
1.Päivämäärän hakeminen
Kuinka haetaan päivämäärä automaattisesti vaikkapa soluun A1 ,niin että haettu päivämäärä ei muutu vuorokauden vaihtuessa. =Today() ei ilmeisesti käy?
2.Solujen vertaaminen silmukassa
Silmukalla olisi tarkoitus käydä läpi esim. solujen A1:A10 sisältö ja vastaavasti B1:B10.Jos soluista löytyisi sama teksi esim."nhl" ,niin suoritettaisiin laskutoimitus C*D niiltä riveiltä ,joilta haettu teksti löytyi.
3.Luvun hakeminen silmukalla
Silmukan olisi tarkoitus käydä läpi esim.solujen A1:A1000 sisältö ja tulostaa kommentti aina ,jos solun sisältö ois >1,0
Toivottavasti ei ollut vanhoja ?
Kuinka haetaan päivämäärä automaattisesti vaikkapa soluun A1 ,niin että haettu päivämäärä ei muutu vuorokauden vaihtuessa. =Today() ei ilmeisesti käy?
2.Solujen vertaaminen silmukassa
Silmukalla olisi tarkoitus käydä läpi esim. solujen A1:A10 sisältö ja vastaavasti B1:B10.Jos soluista löytyisi sama teksi esim."nhl" ,niin suoritettaisiin laskutoimitus C*D niiltä riveiltä ,joilta haettu teksti löytyi.
3.Luvun hakeminen silmukalla
Silmukan olisi tarkoitus käydä läpi esim.solujen A1:A1000 sisältö ja tulostaa kommentti aina ,jos solun sisältö ois >1,0
Toivottavasti ei ollut vanhoja ?
-
jl
- Jäsen
- Viestit: 52
- Liittynyt: 14.02.2004, 16:30
- Pisteitä: 0
Tarkennapa kysymyksiä hieman niin vastaaminen helpottuu.
Haluatko toteuttaa toiminnallisuutesi Excel - kaavoilla vai VBA - makroilla?
Päivittääkö toiminnallisuus jonkun staattisen taulukon rivikohtaisia arvoja vai annetaanko käyttäjälle kertaluonteista analyysitietoa datasta?
Laitetaan nyt jotain vastauksia, vaikka osittain joudun arvaamaan mitä oikeastaan kysyt.
1. VBA: cells(1,1).value = now()
2. Excel - kaava solussa E1: =IF(AND(A1="nhl";B1="nhl");C1*D1;0) -> kopioi soluihin E2:E10
3. Excel - kaava solussa B1: =IF(A1>1;"kommentti";"") -> kopioi soluihin B2:B1000
Haluatko toteuttaa toiminnallisuutesi Excel - kaavoilla vai VBA - makroilla?
Päivittääkö toiminnallisuus jonkun staattisen taulukon rivikohtaisia arvoja vai annetaanko käyttäjälle kertaluonteista analyysitietoa datasta?
Laitetaan nyt jotain vastauksia, vaikka osittain joudun arvaamaan mitä oikeastaan kysyt.
1. VBA: cells(1,1).value = now()
2. Excel - kaava solussa E1: =IF(AND(A1="nhl";B1="nhl");C1*D1;0) -> kopioi soluihin E2:E10
3. Excel - kaava solussa B1: =IF(A1>1;"kommentti";"") -> kopioi soluihin B2:B1000
Viimeksi muokannut jl, 19.05.2005, 15:14. Yhteensä muokattu 1 kertaa.
Minikommentit
-
Jäähile
- Jäsen
- Viestit: 516
- Liittynyt: 15.05.2003, 15:13
- Pisteitä: 0
- Paikkakunta: Oulu
Kiitokset avusta! Vielä muutama kysymys:
Kaikki pitäisi toteuttaa makrolla
1.Soluissa A1:A100 on kertoimia.Tarkoituksena tehdä makro joka etsi 20 pienintä kerrointa ja kopioi koko rivin ,josta kerroin löytyi seuraavalle sivulle.
2.Soluissa A1:A100 on sarjojen nimiä.Jos sana alkaa "eng" ,niin lasketaan vastaavissa soluista B1:B100 löytyvien lukujen keskiarvo.
3.Soluissa M2:M100 on ruksi (X) ,jos tietty tapahtuma on toteutunut.Miten voidaan tehdä tulostus "oikein" vastaavalle riville sarakkeseen O ,josta ruksi on löytynyt.
For rivi 1 to 100
rivi = rivi+1
Tapahtuma = "M" & CStr(rivi)
If Len(Range(Tapahtuma).Value)=1 Then
'TÄHÄN SITTEN SE TULOSTUS KOMENTO
End if
Kaikki pitäisi toteuttaa makrolla
1.Soluissa A1:A100 on kertoimia.Tarkoituksena tehdä makro joka etsi 20 pienintä kerrointa ja kopioi koko rivin ,josta kerroin löytyi seuraavalle sivulle.
2.Soluissa A1:A100 on sarjojen nimiä.Jos sana alkaa "eng" ,niin lasketaan vastaavissa soluista B1:B100 löytyvien lukujen keskiarvo.
3.Soluissa M2:M100 on ruksi (X) ,jos tietty tapahtuma on toteutunut.Miten voidaan tehdä tulostus "oikein" vastaavalle riville sarakkeseen O ,josta ruksi on löytynyt.
For rivi 1 to 100
rivi = rivi+1
Tapahtuma = "M" & CStr(rivi)
If Len(Range(Tapahtuma).Value)=1 Then
'TÄHÄN SITTEN SE TULOSTUS KOMENTO
End if
Minikommentit
-
Berrie
- Jäsen
- Viestit: 1490
- Liittynyt: 14.01.2003, 09:40
- Pisteitä: 34
Aika paha, melkeinpä pitäisi olla riveillä yksilöivä tunnus, toisinsanoen miten toimitaan jos sama kerroin löytyy usemmalta riviltä? Mikä/mitkä rivi(t) niistä kopsataan jos samat kertoimet sattuu sijoille 19-22?Jäähile kirjoitti:1.Soluissa A1:A100 on kertoimia.Tarkoituksena tehdä makro joka etsi 20 pienintä kerrointa ja kopioi koko rivin ,josta kerroin löytyi seuraavalle sivulle.
Vaikka kaikki piti tehdä makroilla niin silti esitän tuommoisen...Jäähile kirjoitti:2.Soluissa A1:A100 on sarjojen nimiä.Jos sana alkaa "eng" ,niin lasketaan vastaavissa soluista B1:B100 löytyvien lukujen keskiarvo.
=SUMMA.JOS(A1:A100;D1;B1:B100)/LASKE.JOS(A1:A100;D1)
eng
=SUMIF(A1:A100;D1;B1:B100)/COUNTIF(A1:A100;D1)
VaikkapaJäähile kirjoitti:3.Soluissa M2:M100 on ruksi (X) ,jos tietty tapahtuma on toteutunut.Miten voidaan tehdä tulostus "oikein" vastaavalle riville sarakkeseen O ,josta ruksi on löytynyt.
For rivi 1 to 100
rivi = rivi+1
Tapahtuma = "M" & CStr(rivi)
If Len(Range(Tapahtuma).Value)=1 Then
'TÄHÄN SITTEN SE TULOSTUS KOMENTO
End if
Sheets(1).Cells(rivi,15).Value = "oikein"
Kannattaa opetella viittaamaan Sheetteihin ja soluihin noilla Sheets ja Cells systeemeillä eli esim.
Koodi: Valitse kaikki
For rivi = 2 to 100
If Sheets(1).Cells(rivi, 13).Value = "X" Then
Sheets(1).Cells(rivi, 15).Value = "oikein"
End if
rivi = rivi+1
Next
Minikommentit
-
jl
- Jäsen
- Viestit: 52
- Liittynyt: 14.02.2004, 16:30
- Pisteitä: 0
Jäähile kirjoitti:Kiitokset avusta! Vielä muutama kysymys:
Kaikki pitäisi toteuttaa makrolla
1.Soluissa A1:A100 on kertoimia.Tarkoituksena tehdä makro joka etsi 20 pienintä kerrointa ja kopioi koko rivin ,josta kerroin löytyi seuraavalle sivulle.
Tässä vähän vinkkiä millä pääset alkuun.
Tämä tekee suunnilleen 1 - kohdan asiat ja saat varmaan siitä runkoa 2:een ja 3:een:
Koodi: Valitse kaikki
Option Explicit
Public Const SIIRRETTAVIA As Integer = 20
Public Const RIVEJA As Integer = 100
Public Const SARAKKEITA As Integer = 8
Sub siirra()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim pienin As Double
Dim rivi As Integer
Dim siirretty() As Boolean
ReDim siirretty(RIVEJA)
For j = 1 To SIIRRETTAVIA
pienin = 999999
For i = 1 To RIVEJA
If Len(Sheets("sheet1").Cells(i, 1).Value) > 0 And IsNumeric(Sheets("sheet1").Cells(i, 1).Value) _
And siirretty(i) = False Then
If Sheets("sheet1").Cells(i, 1).Value < pienin Then
pienin = Sheets("sheet1").Cells(i, 1).Value
rivi = i
End If
End If
Next i
siirretty(rivi) = True
For k = 1 To SARAKKEITA
Sheets("Sheet2").Cells(j, k).Value = Sheets("Sheet1").Cells(rivi, k).Value
Next k
Next j
End Sub
Minikommentit
-
nieba
- Jäsen
- Viestit: 18
- Liittynyt: 26.01.2004, 16:08
- Pisteitä: 0
Minikommentit
-
gary
- Jäsen
- Viestit: 520
- Liittynyt: 14.01.2003, 09:36
- Pisteitä: 0
Minikommentit
-
Jäähile
- Jäsen
- Viestit: 516
- Liittynyt: 15.05.2003, 15:13
- Pisteitä: 0
- Paikkakunta: Oulu
Minikommentit
-
Berrie
- Jäsen
- Viestit: 1490
- Liittynyt: 14.01.2003, 09:40
- Pisteitä: 34
Minikommentit
-
Jäähile
- Jäsen
- Viestit: 516
- Liittynyt: 15.05.2003, 15:13
- Pisteitä: 0
- Paikkakunta: Oulu
Pistetäänpä taas lisää ,kun täällä tuntuu olevan tietävää porukkaa.
VLOOKUP(A1,B1:C1000,2,False)
Onnistuuko semmonen ,että A1 vaihtuisi kun rivejä mennään alas päin.A1,A2,A3 jne ,mutta tuo B1:C1000 alue pysyisi samana.Eli ongelma tulee ,kun kopioi kaavan soluun ja käytän filldownia ,jolloin myös B1:C1000 alue muuttuu.Pitäskö toteuttaa makrolla vai onnistuuko muuten?
Jotain tämmöstä olen ajatellut:
raja1 = 1
raja2 = 1000
Range("D1").Select
ActiveCell.Formula = "=VLOOKUP( A1,B(raja1):C(raja2),2,False)"
Range("D1:D1000").Select
Selection.Filldown
Eli ongelmana on lähinnä tuo lihavoitu kaavan osuus.Kuinka tuo pitäisi kirjoittaa?Iso kiitos jo auttaneille!
EDIT: Ei taida tuo filldown olla oikea tapa.Pitäskö tehdä for-silmukka tai jotain.
VLOOKUP(A1,B1:C1000,2,False)
Onnistuuko semmonen ,että A1 vaihtuisi kun rivejä mennään alas päin.A1,A2,A3 jne ,mutta tuo B1:C1000 alue pysyisi samana.Eli ongelma tulee ,kun kopioi kaavan soluun ja käytän filldownia ,jolloin myös B1:C1000 alue muuttuu.Pitäskö toteuttaa makrolla vai onnistuuko muuten?
Jotain tämmöstä olen ajatellut:
raja1 = 1
raja2 = 1000
Range("D1").Select
ActiveCell.Formula = "=VLOOKUP( A1,B(raja1):C(raja2),2,False)"
Range("D1:D1000").Select
Selection.Filldown
Eli ongelmana on lähinnä tuo lihavoitu kaavan osuus.Kuinka tuo pitäisi kirjoittaa?Iso kiitos jo auttaneille!
EDIT: Ei taida tuo filldown olla oikea tapa.Pitäskö tehdä for-silmukka tai jotain.
Minikommentit
-
Rene....
- Jäsen
- Viestit: 60
- Liittynyt: 25.03.2003, 11:26
- Pisteitä: 0
Minikommentit
-
temer
- Jäsen
- Viestit: 4
- Liittynyt: 11.03.2004, 15:54
- Pisteitä: 0
Mitenkäs tuon automaattisen virheenkorjauksen saa pois päältä? Valitsin asetuksista mielestäni kaikki pois, mutta silti ohjelma muuttaa numeroita päivämääriksi, esim 1-30 tuleekin 1.1.1930 En huomannut ohjelman muuttavan sanoja.
Toinen kysymys: Miten saan "varattua" johonkin kohtaa taulukkoa sopivan määrän sarakkeita? Näin.
Lopuksi voisitte vielä suositella hyviä Excel-aiheisia sivustoja tai kirjallisuutta.
Toinen kysymys: Miten saan "varattua" johonkin kohtaa taulukkoa sopivan määrän sarakkeita? Näin.
Lopuksi voisitte vielä suositella hyviä Excel-aiheisia sivustoja tai kirjallisuutta.
Minikommentit
-
comax
- Jäsen
- Viestit: 31
- Liittynyt: 02.07.2003, 13:05
- Pisteitä: 0
- Paikkakunta: Rovaniemi
Minikommentit
-
mutanen_aapo
- Jäsen
- Viestit: 3559
- Liittynyt: 14.01.2004, 15:48
-
Tuotto: +115.89 yks.
Palautus%: 101.01%
Panosten ka: 6.84 yks.
Vetoja: 1671
- Pisteitä: 4460
- Paikkakunta: Fin/Ita
Mulla on sellainen seurantapohja, jossa joka kohteeseen merkitään panos, mahd. voitto ja bookkeri(tietysti paljon muutakin). Nyt olen laittanut bookkeriksi esim. Betfair, panokseksi 50e ja voitoksi 100e. Nyt tarkoitukseni olisi pitää Betfairilla olevasta rahamäärästä kirjaa siten, että ohjelma hakisi kaikki kohteet(solut) joissa lukee Betfair. Sitten se osaisi miinustaa panokset ja plussata voitot ja sitten se lisäisi sen alkukassaan. Miten tuollaisen saa väsättyä?
Minikommentit
-
jubago
- Jäsen
- Viestit: 238
- Liittynyt: 09.03.2004, 17:06
- Pisteitä: 0
Esim. seuraavasti (yhdelle riville):Mulla on sellainen seurantapohja, jossa joka kohteeseen merkitään panos, mahd. voitto ja bookkeri(tietysti paljon muutakin). Nyt olen laittanut bookkeriksi esim. Betfair, panokseksi 50e ja voitoksi 100e. Nyt tarkoitukseni olisi pitää Betfairilla olevasta rahamäärästä kirjaa siten, että ohjelma hakisi kaikki kohteet(solut) joissa lukee Betfair. Sitten se osaisi miinustaa panokset ja plussata voitot ja sitten se lisäisi sen alkukassaan. Miten tuollaisen saa väsättyä?
=IF(F2="Betfair";W1-O2+M2;W1)
F2=Firma
W1=Betfairin kassa
O2=Panos
M2=Voitto
Minikommentit
- Oliver
- Jäsen
- Viestit: 1330
- Liittynyt: 14.01.2003, 12:22
- Pisteitä: 265
- Viesti:
=Alkukassa+SUMMA.JOS(bookkerisarake;"Betfair";palautussarake)-SUMMA.JOS(bookkerisarake;"Betfair";panossarake).mutanen_aapo kirjoitti:Mulla on sellainen seurantapohja, jossa joka kohteeseen merkitään panos, mahd. voitto ja bookkeri(tietysti paljon muutakin). Nyt olen laittanut bookkeriksi esim. Betfair, panokseksi 50e ja voitoksi 100e. Nyt tarkoitukseni olisi pitää Betfairilla olevasta rahamäärästä kirjaa siten, että ohjelma hakisi kaikki kohteet(solut) joissa lukee Betfair. Sitten se osaisi miinustaa panokset ja plussata voitot ja sitten se lisäisi sen alkukassaan. Miten tuollaisen saa väsättyä?
Tai
=Alkukassa+SUMMA(JOS(bookkerisarake="Betfair";palautussarake-panossarake;0)) (kuittaus Ctrl + Shift + Enter).
Jälkimmäinen on vektorilaskutoimitus, eli sarakealueet pitää olla yhtäsuuret.
Minikommentit
-
mutanen_aapo
- Jäsen
- Viestit: 3559
- Liittynyt: 14.01.2004, 15:48
-
Tuotto: +115.89 yks.
Palautus%: 101.01%
Panosten ka: 6.84 yks.
Vetoja: 1671
- Pisteitä: 4460
- Paikkakunta: Fin/Ita
Minikommentit
- Neo
- Jäsen
- Viestit: 3597
- Liittynyt: 19.01.2003, 18:32
-
Tuotto: +0.00 yks.
Palautus%: -
Panosten ka: -
Vetoja: 0
- Pisteitä: 3193
- Paikkakunta: Norge
- Viesti:
Minikommentit
-
Mikezu
- Jäsen
- Viestit: 253
- Liittynyt: 05.02.2004, 17:01
- Pisteitä: 22
Lienee tähänkin ongelmaan helppo ratkaisu, mutta itsellä ei lanttu leikkaa sitten millään:
Millä kaavalla saan laskettua, kuinka monella rivillä taulukossa sarakkeen A arvoa "a" vastaa sarakkeessa B arvo "5"?
Vastaukseksi pitäisi tulla siis 2. LASKE.JOS -funktio ei taida tähän taipua?
Millä kaavalla saan laskettua, kuinka monella rivillä taulukossa sarakkeen A arvoa "a" vastaa sarakkeessa B arvo "5"?
Koodi: Valitse kaikki
|A|B|
-----
|a|1|
|b|2|
|d|3|
|c|4|
|a|4|
|a|5|
|d|6|
|c|4|
|a|5|
Minikommentit
- Oliver
- Jäsen
- Viestit: 1330
- Liittynyt: 14.01.2003, 12:22
- Pisteitä: 265
- Viesti:
Minikommentit
-
Mikezu
- Jäsen
- Viestit: 253
- Liittynyt: 05.02.2004, 17:01
- Pisteitä: 22
Minikommentit
-
gary
- Jäsen
- Viestit: 520
- Liittynyt: 14.01.2003, 09:36
- Pisteitä: 0
Minikommentit
-
playerone
- Jäsen
- Viestit: 1050
- Liittynyt: 10.09.2004, 10:44
- Pisteitä: 3
- Paikkakunta: Tampere
Excel ei meikäläiseltä taivu, kunhan käytän valmiita taulukko-ohjelmia, joten pistetään nyt tähän ketjuun yksi tyhmäkin kysymys tasapainottamaan kokonaisuutta
Mun seurantataulukkoon ilmesty yhtäkkiä "VIITTAUS!" tekstejä "pelattu-voitettu-vaihto-tulos" kohtaan. En näe missään minkään olevan erilailla kuin ennen? Kyseinen taulukko on kopsattu tältä palstalta.
Ei siinä mitään, mutta kun hakkasin tunnin vanhoja pelejä taulukkoon, joita olin vain paperille kirjoitellut ja si yhtäkkiä huomaan noi viittaukset. Ei viitsinyt enää poistaa kaikkea kirjoittamaansa, millä ne viittaukset olis tietysti myöskin lähtenyt. Millähän ne sais pois, kun olis kuitenkin aika oleellista nähdä tuo kohta "tulos", olkoonkin että tällä hetkellä teksti "viittaus!" näyttää kyllä paremmalle kuin se tulos näyttäisi.
Mun seurantataulukkoon ilmesty yhtäkkiä "VIITTAUS!" tekstejä "pelattu-voitettu-vaihto-tulos" kohtaan. En näe missään minkään olevan erilailla kuin ennen? Kyseinen taulukko on kopsattu tältä palstalta.
Ei siinä mitään, mutta kun hakkasin tunnin vanhoja pelejä taulukkoon, joita olin vain paperille kirjoitellut ja si yhtäkkiä huomaan noi viittaukset. Ei viitsinyt enää poistaa kaikkea kirjoittamaansa, millä ne viittaukset olis tietysti myöskin lähtenyt. Millähän ne sais pois, kun olis kuitenkin aika oleellista nähdä tuo kohta "tulos", olkoonkin että tällä hetkellä teksti "viittaus!" näyttää kyllä paremmalle kuin se tulos näyttäisi.
Minikommentit
- Oliver
- Jäsen
- Viestit: 1330
- Liittynyt: 14.01.2003, 12:22
- Pisteitä: 265
- Viesti:
Jos esim. alemmalla rivillä oleva kaava tarvitsee ylemmän rivin arvoa ja ylempi rivi poistetaan, niin silloin tulee tuo viittausvirhe. Tässä tapauksessa virhe luultavasti poistuu kopioimalla kaavat ylhäältä alas uudestaan (tai jos sarakkeen alkupään kaavat eivät ole identtisiä niin vaikka kolmannelta riviltä lähtien).playerone kirjoitti:Mun seurantataulukkoon ilmesty yhtäkkiä "VIITTAUS!" tekstejä "pelattu-voitettu-vaihto-tulos" kohtaan.
Minikommentit
-
jarihfi
- Jäsen
- Viestit: 222
- Liittynyt: 14.07.2004, 23:20
- Pisteitä: 3
Taas yksi tyhmä Excel kysymys, kun kerran täällä tuota tietoa tuntuu riittävän !
Elikkä tilanne esim. seuraava =>
A B
3.150 26.00
3.150 -11.11
3.135 17.23
3.100 -4.80
3.049 -14.15
3.045 16.66
3.045 -13.63
3.045 15.00
3.024 -13.95
3.024 13.33
3.022 18.46
3.022 10.00
Ja nyt pitäisi määrittää B:n arvo (arvio) vaikka seuraaville tilanteille A=3.08, A=3.03 ja A=3.20.
Olen koittanut tehdä tuota forecast-funktiolla, mutta sehän ei tuossa tilanteessa taida taipua oikein ?
Elikkä tilanne esim. seuraava =>
A B
3.150 26.00
3.150 -11.11
3.135 17.23
3.100 -4.80
3.049 -14.15
3.045 16.66
3.045 -13.63
3.045 15.00
3.024 -13.95
3.024 13.33
3.022 18.46
3.022 10.00
Ja nyt pitäisi määrittää B:n arvo (arvio) vaikka seuraaville tilanteille A=3.08, A=3.03 ja A=3.20.
Olen koittanut tehdä tuota forecast-funktiolla, mutta sehän ei tuossa tilanteessa taida taipua oikein ?
Minikommentit