Video: Programming - Computer Science for Business Leaders 2016 2024
Niet alle matrixformules retourneren arrays met meerdere kolommen en / of meerdere rijen naar het werkblad. Maar wanneer ze dat doen, kan het voorkomen dat u slechts één waarde in de array wilt zien. U kunt de INDEX-functie van Excel gebruiken om daarmee te helpen.
LIJNSCH is bijvoorbeeld een van de werkbladfuncties die alleen goed werken als u een array opgeeft en de formule invoert die de functie bevat. Maar stel dat u toegang wilt tot slechts één celwaarde in de LIJNSCH-resultaten, misschien om een werkbladlay-out in een routinematig rapport te verwerken. In dat geval wilt u niet noodzakelijk de volledige set LIJNSCH-resultaten en kunt u de INDEX-functie van Excel gebruiken om uit te pakken en alleen de INDEX-functie weer te geven die u wilt weergeven.
Hier volgt bijvoorbeeld hoe u array kunt gebruiken: voer LIJNSCH in voor een meervoudige regressie:
= LINEST (A2: A51, B2: D51, TRUE)
Als u array-invoer uitvoert die formule in een bereik van 5 rij bij 4 kolommen, bevat de kruising van de derde rij en eerste kolom van dat bereik de R-kwadraatwaarde van de regressie. Dus als u slechts één enkele cel selecteert en de volgende formule invoert, krijgt u alleen de R-kwadraatwaarde:
= INDEX (LIJNSCH (A2: A51, B2: D51, TRUE), 3, 1)
Hier geeft u INDEX de array met waarden die door de functie LIJNSCH zijn geretourneerd. Dat is het eerste argument voor INDEX. De tweede en derde argumenten voor INDEX zijn de nummers 3 en 1, die INDEX opdracht geven om de waarde in de derde rij en de eerste kolom van de array te vinden en terug te zetten naar het werkblad.
U kunt de volledige INDEX-formule invoeren zoals die normaal wordt gegeven, met een array van LIJNSCH-resultaten als eerste argument, zonder de combinatie Ctrl en Shift en Enter, dat wil zeggen zonder dat de matrix wordt ingevoerd. (Probeer het op beide manieren, beide kunnen de array invoeren en normaal invoeren.)
En toch, als u probeert de volgende eencellige matrixformule in te voeren, produceert deze de fout #WAARDE! als u probeert het normaal in te voeren:
= IF (H44639: H44644> 0, G44639: G44644, 0)
Wanneer de formule een functie aanroept waarvan verwacht wordt dat Excel een array als argument gebruikt, kan de formule normaal ingevoerd. Dat is het geval met deze formule:
= INDEX (LIJNSCH (A2: A51, B2: D51, TRUE), 3, 1)
De LIJNSCH-resultaten zijn genest binnen de INDEX-functie, waar ze als eerste fungeren argument. Excel verwacht dat INDEX een array met waarden als eerste argument zal gebruiken - het parseren van een array is wat INDEX is geboren om te doen. De gegeven formule hoeft dus niet in een array te worden ingevoerd.
Deze matrixformule met een enkele cel moet daarentegen als array worden ingevoerd:
= GEMIDDELD (IF (A2: A25 = "Zig", B2: B25, ""))
In dit geval doet Excel verwacht niet dat de ALS-functie een reeks waarden als argument zal gebruiken, maar hier presenteren we niet één maar twee arrays van waarden aan IF: het bereik A23: A25 en B2: B25.(Je kunt zelfs aannemen dat er een reeks van 24 instanties van "" is geïmpliceerd door de eerste twee argumenten.) Omdat de formule niet voldoet aan de oorspronkelijke verwachting van Excel van de argumenten voor IF, moet je Excel's aandacht vestigen op de situatie, en u doet dit door middel van het invoeren van de formule.