Yhdessä työkirjassa on 153 välilehteä. Jokaisen välilehden solussa A19 on teksti OY, KY, AY, tai TMI. Miten lasken yhteenvetosivulle OY esiintymien määrän?
Ja jatkokyssäri. Kun ehto A19=OY toteutuu, niin miten näiltä välilehdiltä saa laskettua B25 soluissa olevat arvot yhteen?
Työkirjan saman solun määrälaskenta
5
789
Vastaukset
- ettätälleen
VBA:lla tapahtuu varmaan helpostikkin!?
LASKE.JOS ja SUMMA.JOS funktiot usealla välilehdellä ei toimi ollenkaan, kuin esim. SUMMA-funktio
=SUMMA(Taul1:Taul153!B25) laskisi kaikkien välilehtien B25 solut yhteen, mutta jos laitetaan JOS mukaan, ei
homma enää onnistukkaan. Mutta....
=TULOJEN.SUMMA(LASKE.JOS(EPÄSUORA("'"&D1:D153&"'!A19");"oy")) - kaava laskee montako oy:tä löytyy
Kaavassa D1:D153 sisältää välilehtien nimet. Jos sinulla on joka välilehti nimetty erikseen, homma on valtava.
Mutta jos ovat Taul1, Taul2, jne..., helpottuu. Kirjoita D1 Taul1 ja vedä "kahvasta" 153 asti.(Voit tietysti korvata D1:D153 milla alueella tahansa, kun vain muutat "nimilistan" osoitteen kaavaan sitten oikeaksi)
Jatkokyssäriin vastaus:
=TULOJEN.SUMMA(SUMMA.JOS(EPÄSUORA("'"&D1:D153&"'!A19");"oy";EPÄSUORA("'"&D1:D153&"'!B25")))
Kaavat löytyvät tuolta enkunkielisinä:
http://www.ozgrid.com/forum/showthread.php?t=27306firmalaskuri soluista A19
haluamaasi soluun kaava
=Yritys("ky")
missä ky on firmatyyppi (KY,Ky.kY,ky- käy kaikki kirjoitusasut...)
muuta yhteenveto taulukon nimeä tarvittaessa, nyt yhteenveto ( muuttaa sen pieneksi joten ei ole väliä onko isoja tai pieniä kirjaimia)
summalaskuri soluista B25
haluamaasi soluun kaava
=YritysSumma("ky")
missä ky on firmatyyppi (KY,Ky.kY,ky- käy kaikki kirjoitusasut...)
muuta yhteenveto taulukon nimeä tarvittaessa, nyt yhteenveto ( muuttaa sen pieneksi joten ei ole väliä onko isoja tai pieniä kirjaimia)
moduuliin funktiot
Option Explicit
Function Yritys(Firmatyyppi As String) As Long
Dim taulukko As Worksheet
Dim löytyi As Variant
On Error Resume Next
Application.Volatile
For Each taulukko In ActiveWorkbook.Worksheets
If Not LCase(taulukko.Name) = "yhteenveto" Then
Select Case LCase(taulukko.Range("A19"))
Case LCase(Firmatyyppi)
Yritys = Yritys 1
Case Else
End Select
End If
Next taulukko
End Function
Function YritysSumma(Firmatyyppi As String) As Double
Dim taulukko As Worksheet
Dim löytyi As Variant
On Error Resume Next
Application.Volatile
For Each taulukko In ActiveWorkbook.Worksheets
If Not LCase(taulukko.Name) = "yhteenveto" Then
Select Case LCase(taulukko.Range("A19"))
Case LCase(Firmatyyppi)
YritysSumma = YritysSumma taulukko.Range("B25")
Case Else
End Select
End If
Next taulukko
End Function
Keep Excelling
@Kunde
- chowanders
Jatkokysymyksenä aiheeseen, miten saan seuraavanlaisen kaavan "jatkuvaksi": =TULOJEN.SUMMA(LASKE.JOS(EPÄSUORA("'"&$H$1:$H$5&"'!J9");"x")) ?
Kaavahan on siis syötettynä soluun J9, mutta tällä hetkellä kaavaa kopioidessani seuraavien rivien soluihin siinä pysyy "J9", vaikka haluaisin sen jatkuvan solun mukaisesti J9......J200. - ...
=TULOJEN.SUMMA(LASKE.JOS(EPÄSUORA("'"&$H$1:$H$5&"'!J" & RIVI());"x"))
- chowanders
Kiitos!
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 1824300
- 341584
Minulta loppuu aika
Halusin olla täydellinen. Nyt näyttää siltä että viimeinen kiristys jää puolitiehen, sillä h-hetki on jo ihan kohta käsi401500Syvälliset keskustelut
Olisivat tärkeintä ensisijaisesti hänen kanssaan Tulisi sellainen hetki, mutta kaikki meni pieleen251484Olisipa sitä henkisesti eheämpi ja rohkeampi
mikään maallinen mammona ei itseäni kiinnosta, eikä sen menetys kiinnostus. Mutta kun kohtaa jonkun sykäyttävän ihmisen,201375- 1121306
Moi, nainen
Tunnustan, olen heikkona sun hymyyn, ja sekään ei auta yhtään, että sulla on täydellinen nenä. Joten ensi kerralla, kun301190Kyllähän tämä vähän kirpaisee
Mutta oman sisäisen rauhan vuoksi jätän sinut nyt historiaan. Todennäköisesti olet jo sinäkin mennyt eteenpäin. Olipah381187- 191149
Sulla on uskomaton luonne
Saat minut hetkessä iloiseksi, tai sanotaan nyt niin, että ajatus sinusta saa sydämeni hyppimään riemusta. En vain saa s441048