Laskentataulukko on tehtynä ja tarvitsisi laskea keskiarvo sarakkaeista, jos tietyt arvot täyttyvät, eli jos D-> sarakkeessa on merkintä A, B tai C, ja jos F-sarakkeessa on merkitä 1, niin laske näiden sarakkeiden E- sarakkeista keskiarvo ajoista, joita sinne on syötetty.
Vetää hiljaiseksi, kun ei tunnu Gookkelilla löytyvän vastausta. Osaako joku vastata?
Keskiarvon laskeminen jos tietyt ehdot täyttyvät
6
105
Vastaukset
- Tämmöinen
=IF(AND(D1>="A";D1<="C";F1=1);AVERAGE(G1:Z1);"")
- matriisi
Jos nyt ymmärsin oikein tarkoituksesi (edellinen vastaus ei kaiketi ole oikein?), niin
=KESKIARVO(JOS(F1:F10=1;JOS(VASTINE(D1:D10;{"A";"B";"C"};0);E1:E10)))
HUOM! Matriisikaava. Hyväksy se Ctrl Vaihto Enter. Kaavan ympärille kaavariville tulee {}-sulkeet.
Muuta solualueet oikeiksi. Nyt huomioi 10 ensimmäistä riviä (E1:E10). - matriisi
Nyt kun tuota kaavaa aamulla oikein tarkasti testasin (meinasi illalla mennä lätkämatsi ohi), löytyi siitä puutteita. Kaava toimii hyvin jos F-sarakkeen 1:siä poistaa tai lisää, laskee kaava aina uuden keskiarvon. Mutta jos D-sarakkeessa muuttaa vaikka A tilalle D tai tyhjän (ja F on 1) niin kaava palauttaakin #PUUTTUU!-vastauksen. Kaava ei ole "omaatekoa", vaan löysin sen netistä, enkä osaa näin suoralta käsin sanoa mikä mättää. Yritin muuttaa sitä niin että huomioisi ensin nuo A,B ja C vertailut ja sitten vasta F-sarakkeen 1:set mutten saanut sitä pelaamaan. Jospa täällä joku viisaampi osaa neuvoa.
Matriisikaava
=(KESKIARVO((JOS(F1:F10=1;JOS(1-ONVIRHE(VASTINE(D1:D10;{"A";"B";"C"};0));E1:E10)))))
Keep EXCELing
@Kunde
- matriisi
Ja se viisaampi löytyi.
Monille tuottaa vaikeuksia ymmärtää matriisikaavoilla laskeminen ja miten kaava toimii.
Kaavan laskentaa voi tutkia esim. klikkaamalla kaavasolua ja sitten valikosta KAAVAT/LASKE KAAVA. Avautuvaan lomakkeeseen tulee kaava ja siinä voi tsekata laskemisen etenemistä askel askeleelta.
Yksittäisen kaavan tulosta voi tutkia kaavarivillä maalaamalla kaavan argumentteineen ja näppikseltä F9, jolloin laskettu kaavantulos näkyy. ESC näppiksellä palataan takaisin kaavan alkuperäiseen muotoon ei ENTERIÄ tässäkohtaa!!!
Käydäänpäs sitten läpi kaavan laskemisen logiikka esimerkkitapauksessa.
Oletetaan että D1:D3 on A,B,C ja E1:E3 on 1,2,3 ja F1:F3 soluissa on ykköset muut alueen solut tyhjiä...
=KESKIARVO(JOS(F1:F10=1;JOS(1-ONVIRHE(VASTINE(D1:D10;{"A";"B";"C"};0));E1:E10)))
esim. kaavassa ensiksi testataan alueen F1:F10 ykköset
F1:F10=1
ja tulokseksi saadaan matriisi
{TOSI;TOSI;TOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI}
eli F1:F3:ssa on ykköset =TOSI
seuraavaksi lasketaan
VASTINE(D1:D10;{"A";"B";"C"};0)
eli tutkitaan löytyykö alueelta D1:D10 soluissa arvot A tai B tai C ja tulokseksi tulee jos solun arvo on A-1 ja B-2 ja C-3, eli kirjaimen suhteellinen sijainti matriisissa {"A";"B";"C"}
{1;2;3;#PUUTTUU!;#PUUTTUU!;#PUUTTUU!;#PUUTTUU!;#PUUTTUU!;#PUUTTUU!;#PUUTTUU!}
tässä kohtaa nimimerkillä MATRIISI meni sormi suuhun...
eli seuraavaksi pitäisi poistaa virheet...
ONVIRHE(VASTINE(D1:D10;{"A";"B";"C"};0)
ONVIRHE({1;2;3;#PUUTTUU!;#PUUTTUU!;#PUUTTUU!;#PUUTTUU!;#PUUTTUU!;#PUUTTUU!;#PUUTTUU!})
{EPÄTOSI;EPÄTOSI;EPÄTOSI;TOSI;EPÄTOSI;TOSI;TOSI;EPÄTOSI;TOSI;TOSI}
nyt meillä onkin virheetön matriisi, mutta arvot ovat juuri päinvastoin, eli TOSI=EPÄTOSI jA EPÄTOSI=TOSI eli meidän pitää seuraavaksi muuntaa ne käänteiseksi
1-ONVIRHE(VASTINE(D1:D10;{"A";"B";"C"};0))
tällä kätevällä tavalla se hoituu, koska TOSI=1 ja EPÄTOSI=0
eli jos TOSI niin 1-1=O eli tulokseksi tulee EPÄTOSI=0...
{1;1;1;0;0;0;0;;0;0}
seuraavaksi kerrotaan jälkimmäisen jos- lausekkeen matriisit keskenään
JOS(1-ONVIRHE(VASTINE(D1:D10;{"A";"B";"C"};0));E1:E10)
E1:E10={1;2;3;0;0;0;0;0;0;0}
JOS({1;1;1;0;0;0;0;;0;0}*{1;2;3;0;0;0;0;0;0;0})
{1;2;3;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI}
seuraavaksi ensimmäinen jossin matriisit kerrotaan keskenään
JOS(F1:F10=1;JOS(1-ONVIRHE(VASTINE(D1:D10;{"A";"B";"C"};0));E1:E10))
JOS({TOSI;TOSI;TOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI}*{1;2;3;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI})
ja tulokseksi tulee
{1;2;3;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI}
ja lopuksi sitten keskiarvo matriisista
KESKIARVO(JOS(F1:F10=1;JOS(1-ONVIRHE(VASTINE(D1:D10;{"A";"B";"C"};0));E1:E10)))
KESKIARVO({1;2;3;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI;EPÄTOSI})
ja tulokseksi 2
ehkäpä tämä selvitys helpotti ymmärtämään kaavan rakenne ;-)
Keep EXCELing
@Kunde
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 1757204
Klaukkalan onnettomuus 4.4
Klaukkalassa oli tänään se kolmen nuoren naisen onnettomuus, onko kellään mitään tietoa mitä kävi tai ketä onnettomuudes682971- 562228
Kolari Klaukkala
Kaksi teinityttö kuoli. Vastaantulijoille ei käynyt mitenkään. Mikä auto ja malli telineillä oli entä se toinen auto? Se671415Ukraina ja Zelenskyn ylläpitämä sota tuhoaa Euroopan, ei Venäjä
Mutta tätä ei YLE eikä Helsingin Sanomat kerto.3681369- 561284
Ooo! Kaija Koo saa kesämökille öky-rempan:jättimäinen terde, poreallas... Katso ennen-jälkeen kuvat!
Wow, nyt on Kaija Koon mökkipihalla kyllä iso muutos! Miltä näyttää, haluaisitko omalle mökillesi vaikkapa samanlaisen l191229Toivoisin, että lähentyisit kanssani
Tänään koin, että välillämme oli enemmän. Kummatkin katsoivat pidempään kuin tavallisesti toista silmiin. En tiedä mistä171040Olisinpa jo siellä, otatkohan minut vastaan
Olisitpa lähelläni ja antaisit minun maalata sinulle kuvaa siitä kaikesta ikävästä, tuskasta, epävarmuudesta ja mieleni791000Kevyt on olo
Tiedättekö, että olo kevenee kummasti, kun päästää turhista asioista tai ihmisistä irti! Tämä on hyvä näin <384998