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
108
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
Moikka rakas
Oon miettinyt meidän välistä yhteyttä viime aikoina. En ihan osaa pukea sanoiksi, mitä kaikkea tunnen, mutta halusin vaa205954Malmin tapaus on järkyttävä
Kolme ulkomaalaistaustaista miestä raiskasi nuoren tytön tavalla, jota ei meinaa uskoa todeksi. Mikä voisi olla oikeampi5532148- 1451765
- 821174
HS: Kuka vielä uskaltaa mennä sairaalan ensiapuun?
https://www.hs.fi/mielipide/art-2000011212025.html Tässä on hyvin ajankohtainen mielipidekirjoitus koskien Malmin sairaa97932- 72920
Ökyrikas Kurkilahti mussuttaa veroistaan
Pakeni aikoinaan veroja Portugaliin mutta joutui palaamaan takaisin kun Suomi teki verotussopimuksen Portugalin kanssa.69816Jos tämän vaan sulkee ja avaa 5 vuoden päästä
Täällä on luultavasti edelleen näitä ihan samoja juttuja. On kuin kauniit ja rohkeat samat jutut junnaa. Heips. 👋🏻 E10783- 30764
Kuntoportaat sai rahaa
Kuntoportaat sai mojovan tuen. Minua vain ihmetyttää, tuleeko ne pidettyä käyttökunnossa. Televisiossa oli yksi aamu p37696