[EXCEL 2013] Vermenigvuldigen & optellen matrices uit cellen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Tkima
  • Registratie: Augustus 2004
  • Laatst online: 12-04 11:54
Ik ben hier al een tijdje naar op zoek, maar heb het helaas nog niet werkend gekregen.

Simpel gezegd: ik wil matrices van 1 breed en n lang (bestaande uit nullen en enen) vermenigvuldigen met elkaar en de resultaten optellen. Het lukt met de functie SOMPRODUCT (of met {=SOM(matrix1*matrix2)}) de gewenste waardes eruit te krijgen, maar ik wil de matrices los neerzetten zodat ik ze in verschillende combinaties -als criteria- kan gebruiken in meerdere formules.

Als voorbeeld hieronder 2 matrices van 1 breed en 10 lang:

ABVermenigvuldigd
1100
2010
3111
4010
5010
6100
7100
8111
9010
10111



Om de matrices in 1 cel (bijvoorbeeld A11 en B11) te plaatsen gebruik ik de functies: {=A1:A10} en{=B1:B10} , uiteraard met de toetscombinatie CTRL-SHIFT-ENTER om de functies in te voegen als matrix-functies. Dit geeft als resultaat dat deze cellen de eerste waarde van de matrix weergeven: respectievelijk 1 en 0. Als ik 10 cellen onder elkaar selecteer en daar de functie plak krijg ik wel weer de correcte matrix te zien, wat mij het vermoeden geeft dat de matrix weldegelijk goed is opgeslagen in die ene cel. Maar zodra ik er iets mee wil doen zoals het vermenigvuldigen en het optellen kan ik deze cellen niet gebruiken als matrices:

De volgende tussenstap is om de twee cellen waar de matrices in staan te vermenigvuldigen met de PRODUCTMAT functie: {=PRODUCTMAT(A11;B11)}. Wederom (met de CTRL-SHIFT-ENTER combinatie) niet het gewenste resultaat: een nul. Als ik weer 10 cellen gebruik om te testen of ik wel de goede matrix krijg in een bereik van 10 cellen (de eerste waarde is namelijk toevallig ook 0), dan krijg ik helaas 10 nullen onder elkaar.

Wat ik vervolgens geprobeerd heb: transponeren van een van de matrices om een "verticale" matrix met een "horizontale" matrix te vermenigvuldigen (dit had ik ergens op internet gelezen). Helaas weer hetzelfde resultaat: 1 of 10 nullen.


De manier waarop ik het wel werkend krijg (en mijn manier om te testen of de waarde die eruit komt daadwerkelijk de waarde is die ik wil hebben) is om de matrices te integreren in een simpele functie SOM en * functie: {=SOM(A2:A11*B2:B11)} wat dan de correct waarde geeft die ik in dit (vereenvoudigde) voorbeeld wil hebben: 4.


Maar: ik wil de cellen los kunnen laten staan en gebruiken als blokken in formules in verschillende combinaties van criteria in een groot aantal berekeningen. Doel is om de formules beter leesbaar te houden.

Weet iemand hoe dit gedaan kan worden?

Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

In jouw voorbeeld levert {=A1:A10} in A11 het eerste element van de matrix op. Maw als je {=A1:A10} invoert in een enkele cel dan is het resultaat equivalent aan =A1.

je kunt wel van A1:A10 een benoemd bereik maken en die kun je verder gebruiken in je formules, bv
code:
1
 ={som(Areeks*Breeks)}

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland