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
149
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
Riikan kukkaronnyöri on umpisolmussa
Kulutus ei lähde liikkeelle, koska kansalaiset eivät usko, että: – työpaikka säilyy – tulot eivät romahda – talous ei h72763Jos vedetään mutkat suoraksi?
Niin kumpaan ryhmään kuulut? A) Niihin, jotka menevät edellä ja tekevät? Vai B) Niihin, jotka kulkevat perässä ja ar1062611Tanskan malli perustuu korkeaan ansioturvaan
Ja vahvoihin työllisyys- ja kotoutumispalveluihin. Suomessa Riikka on leikannut juuri näitä: palkkatukea, työttömyysturv182307Vain vasemmistolaiset ovat aitoja suomalaisia
Esimerkiksi persut ovat ulkomaalaisen pääomasijoittajan edunvalvojia, eivät auta köyhiä suomalaisia.481889Anteeksipyyntöni
Jätän tähän anteeksipyyntöni sinulle, koska en voi sanoa sitä missään muuallakaan. Pyydän anteeksi, jos purkamani tuska141453- 321453
- 1771173
Sydämeni valtiaalle
En täältä aio asioita kysellä. Haluan tuoda tiedoksesi, että pohjimmiltani en ihmisiä tahdo satuttaa ja ajattelen muiden1011144Persu ajoi autoa
Ajoi lapsen yli https://www.iltalehti.fi/kotimaa/a/597a7468-3d1d-455e-bed2-21c1efc31ac1201073En vain unohda
Sitä miten rakastuneesti olet minua katsonut. Oliko tunteet liian suuria että niistä olisi voinut puhua.70986