Om alle basisassets in geneste creatieve kits te berekenen, scheid je directe assets van kitinhoud, vermenigvuldig je op elk nestingniveau en tel je de resultaten op. In deze uitleg voor Excel voor Mac maak je een volledige behoeftematrix en een exacte asset-en-kitzoekopdracht.
De taak is om te bepalen hoeveel exemplaren van elke afbeelding nodig zijn voor één kit of een gekozen aantal kits, wanneer kits andere kits bevatten. Alle labels en hoeveelheden hieronder zijn fictief. De berekening telt afbeeldingsinstanties; herbruikbare bronbestanden worden niet ontdubbeld.
Welke versies van Excel voor Mac ondersteunen deze werkwijze?
Gebruik Excel voor Microsoft 365 voor Mac, Excel 2024 voor Mac of Excel 2021 voor Mac. Microsoft vermeldt deze edities voor de matrix- en zoekfuncties die hier worden gebruikt. Microsoft documenteert ook expliciet dynamische matrices in Excel 2021 voor Mac. In deze uitleg worden gewone werkbladbereiken en formules gebruikt die met Enter zijn bevestigd. MMULT-functie, INDEX-functie, Wat is er nieuw in Excel 2021 voor Mac.
Een formule voor een dynamische matrix vult automatisch aangrenzende cellen, een gedrag dat spillen wordt genoemd. Voer elke matrixformule alleen in de opgegeven startcel in en laat het uitvoerbereik leeg. Plaats deze formules buiten Excel-tabellen: Microsoft documenteert dat matrixformules die spillen niet in tabellen worden ondersteund. Formules voor dynamische matrices en gedrag van spillende matrices.
De rekenvoorbeelden zijn gecontroleerd met een kleine deterministische Python-berekening. De formules zijn niet uitgevoerd in de Excel-desktoptoepassing.
Hoe leg je directe assets en geneste kits vast?
Begin met een leeg werkblad. Je maakt twee invoermatrices: één voor basisafbeeldingen die rechtstreeks in elke kit zijn geplaatst en één voor kits die rechtstreeks in andere kits zijn geplaatst. Door deze invoer gescheiden te houden, voorkom je dat al uitgevouwen hoeveelheden opnieuw worden meegeteld.
Voer de matrix met directe basisassets in
Plak dit door tabs gescheiden blok in A1. Het numerieke gedeelte, B2:D5, bevat vier assetrijen en drie kitkolommen.
Asset\tDotKit\tStripeKit\tStudioKit
Dot\t2\t1\t0
Arc\t1\t0\t2
Grid\t0\t3\t1
Tile\t0\t1\t0
Lees elke kolom als de directe afbeeldingsinhoud van één kit. Eén DotKit bevat rechtstreeks twee exemplaren van Dot en één van Arc. Eén StripeKit bevat rechtstreeks één Dot, drie Grid-exemplaren en één Tile. De geneste kits leg je afzonderlijk vast.
Gebruik voor elk ontbrekend onderdeel de numerieke waarde nul. Microsoft geeft aan dat MMULT-invoer getallen moet bevatten; lege cellen of tekst kunnen #VALUE! opleveren. Houd de labels buiten de numerieke bereiken die aan de functie worden doorgegeven. MMULT-functie.
Voer de matrix met kits-in-kits in
Plak het volgende blok in A7. Hier geeft een rij de kit aan die als onderdeel wordt gebruikt en een kolom de bovenliggende kit. De numerieke nestingmatrix beslaat B8:D10.
Componentkit\tDotKit\tStripeKit\tStudioKit
DotKit\t0\t2\t1
StripeKit\t0\t0\t3
StudioKit\t0\t0\t0
De matrix beschrijft deze recepten:
- DotKit bevat geen andere kits.
- StripeKit bevat twee DotKits.
- StudioKit bevat één DotKit en drie StripeKits.
Leg alleen de directe inhoud vast. De ene DotKit die rechtstreeks in StudioKit zit, hoort in D8; de zes extra DotKits in de drie StripeKits moeten worden berekend. Als je zeven invoert in D8, tel je die zes dubbel.
Gebruik exact dezelfde kitvolgorde in B1:D1, B7:D7 en A8:A10: DotKit, StripeKit, StudioKit. Bij matrixvermenigvuldiging worden posities aan elkaar gekoppeld, dus alleen overeenkomende labels herstellen een andere invoervolgorde niet.
Dit voorbeeld gaat uit van niet-negatieve gehele aantallen en recepten die uiteindelijk uitkomen bij basisassets. Geen enkele kit mag zichzelf via een keten van andere kits bevatten.
Hoe bereken je de volledige behoeftematrix?
Noem de matrix met directe assets hieronder B en de nestingmatrix N. Dit zijn wiskundige aanduidingen, geen werkbladnamen die je moet definiëren. Door B met N te vermenigvuldigen, krijg je de assets die via één insluitingslink worden toegevoegd. Door dat resultaat met N te vermenigvuldigen, voeg je nog een link toe.
Voor deze drie kits is de diepste keten StudioKit met daarin StripeKit met daarin DotKit. De volledige matrix is daarom de som van de directe assets, de assets één nestingniveau lager en de assets twee nestingniveaus lager:
Volledige behoefte = B + BN + BN²
Het superscript staat voor herhaalde matrixvermenigvuldiging. Bereken dit in Excel met MMULT; als je de gewone operator ^2 op een bereik toepast, worden de afzonderlijke waarden gekwadrateerd.
Bereken de bijdragen op elk nestingniveau
Voer deze formule in G2 in en druk op Enter. De formule vult G2:I5 met de assets die via één nestinglink worden bereikt.
=MMULT($B$2:$D$5,$B$8:$D$10)
Voer de volgende formule in L2 in. De formule vult L2:N5 met de assets die via twee nestinglinks worden bereikt.
=MMULT(G2:I5,$B$8:$D$10)
De afmetingen verklaren de volgorde van de vermenigvuldiging: een assetmatrix van vier bij drie, vermenigvuldigd met een nestingmatrix van drie bij drie, levert opnieuw een assetmatrix van vier bij drie op. Microsoft documenteert dat het aantal kolommen van de eerste matrix gelijk moet zijn aan het aantal rijen van de tweede matrix. MMULT-functie.
Ter tussentijdse controle moeten in de StudioKit-kolom van G2:I5 achtereenvolgens 5, 1, 9 en 3 staan. De kolom voor StudioKit in L2:N5 moet achtereenvolgens 12, 6, 0 en 0 bevatten, in de assetvolgorde Dot, Arc, Grid, Tile.
Tel de directe en geneste bijdragen op
Voer DotKit, StripeKit en StudioKit in over Q1:S1. Voer Dot, Arc, Grid en Tile in onder elkaar in P2:P5. Plaats vervolgens deze formule in Q2:
=$B$2:$D$5+G2:I5+L2:N5
De voltooide matrix in Q2:S5 moet er als volgt uitzien:
| Basisasset | DotKit | StripeKit | StudioKit |
|---|---|---|---|
| Dot | 2 | 5 | 17 |
| Arc | 1 | 2 | 9 |
| Grid | 0 | 3 | 10 |
| Tile | 0 | 1 | 3 |
Controleer de hoeveelheid Dot voor StudioKit handmatig. De kit bevat geen directe Dots, krijgt er twee via de DotKit die er direct in zit en vijftien via de drie StripeKits die elk vijf Dots bevatten. Het totaal is zeventien. Deze controle volgt elke route naar dezelfde asset, ook routes via een gedeelde subkit.
Hoe controleer je of er geen nestingniveau ontbreekt?
Een aannemelijk totaal bewijst niet dat de uitvouwing compleet is. Controleer met de nestingmatrix zelf of er nog een insluitingsniveau bestaat.
Voer deze formule in G8 in om de nestingmatrix voor twee links in G8:I10 te berekenen:
=MMULT($B$8:$D$10,$B$8:$D$10)
Voer daarna deze formule in L8 in om de nestingmatrix voor drie links in L8:N10 te berekenen:
=MMULT(G8:I10,$B$8:$D$10)
Bij de opgegeven gegevens bevat G8:I10 één niet-nulwaarde: zes DotKits die via een StripeKit in StudioKit worden bereikt. Alle waarden in L8:N10 zijn nul. Er is geen route met drie links, dus er kan geen bijdrage zijn die verder gaat dan de twee nestingniveaus die al zijn opgenomen.
Deze stopregel volgt uit het matrixmodel. Bij niet-negatieve hoeveelheden betekent een volgende nestingmatrix met uitsluitend nullen dat ook elk langer nestingpad ontbreekt. Dit is sterker dan controleren of één bepaalde asset toevallig nog een bijdrage ontvangt.
Voor een groter werkboek met k verschillende kits en zonder insluitingscycli, heeft de langste keten hoogstens k−1 links. Blijf elke assetbijdragematrix met de nestingmatrix vermenigvuldigen en de resultaten optellen totdat de volgende nestingmacht uitsluitend nullen bevat. De formule met drie termen hierboven is volledig voor dit voorbeeld; als extra kits diepere ketens vormen, moet je de formule uitbreiden.
Als je de kits van eenvoudig naar meest genest ordent, wordt controle eenvoudiger. In de opgegeven nestingmatrix staan alle niet-nulwaarden boven de diagonaal. Een positieve waarde op de diagonaal betekent dat een kit zichzelf rechtstreeks bevat. Als een langere keten terugkeert naar de kit waarmee die begon, pas dat recept dan aan voordat je deze eindige uitvouwing gebruikt.
Hoe zoek je één hoeveelheid voor een asset en kit op?
Stel W1 in op Asset, X1 op Kit en Y1 op Hoeveelheid. Voer Arc in W2 in en StudioKit in X2. Voer in Y2 het volgende in:
=INDEX($Q$2:$S$5,MATCH(W2,$P$2:$P$5,0),MATCH(X2,$Q$1:$S$1,0))
Het resultaat moet 9 zijn. De eerste MATCH bepaalt de rij van de asset; de tweede bepaalt de kolom van de kit. INDEX geeft de waarde op het kruispunt terug. Microsoft documenteert deze manier van een rij en kolom selecteren en bevestigt dat MATCH met 0 een exacte overeenkomst oplevert zonder gesorteerde labels te vereisen. INDEX-functie, MATCH-functie.
Houd labels uniek binnen elke as, omdat exact MATCH de eerste overeenkomende positie teruggeeft. Een ontbrekend label levert #N/A op. Laat die fout zichtbaar terwijl je de namen controleert, in plaats van deze door nul te vervangen: nul heeft al een betekenisvolle interpretatie in de behoeftematrix. MATCH-functie.
Hoe bereken je een batch met meerdere kits?
Voer DotKit, StripeKit en StudioKit in over Q7:S7. Voer 2, 1 en 3 in over Q8:S8. Dit zijn de afzonderlijk gevraagde hoeveelheden: twee DotKits, één StripeKit en drie StudioKits.
Plaats Totaal aantal exemplaren in U1 en voer vervolgens deze formule in U2 in:
=MMULT($Q$2:$S$5,TRANSPOSE($Q$8:$S$8))
TRANSPOSE zet de horizontale vraagrij voor de drie kits om in een verticale kolom. De vermenigvuldiging levert vervolgens één totaal per basisasset op en vult U2:U5. Microsoft documenteert dat TRANSPOSE rijen en kolommen verwisselt. TRANSPOSE-functie.
| Basisasset | Berekening | Totaal aantal exemplaren |
|---|---|---|
| Dot | 2×2 + 5×1 + 17×3 |
60 |
| Arc | 1×2 + 2×1 + 9×3 |
31 |
| Grid | 0×2 + 3×1 + 10×3 |
33 |
| Tile | 0×2 + 1×1 + 3×3 |
10 |
Tel de intern benodigde DotKits en StripeKits niet op bij deze vraagrij. Hun inhoud is al opgenomen in de volledige matrix. Extra vraagwaarden staan voor extra kits die afzonderlijk zijn aangevraagd.
Wat controleer je als het resultaat niet klopt?
Loop deze controles na voordat je de formules wijzigt:
- Een matrix toont
#SPILL!: controleer het bedoelde uitvoerbereik op bestaande waarden of samengevoegde cellen. Verwijder de blokkade of verplaats de formule. Microsoft documenteert beide situaties als blokkades voor spillen. Een #SPILL!-fout oplossen. - Een vermenigvuldiging toont
#VALUE!: controleer de invoer op lege cellen, tekst, opgenomen kopteksten of onverenigbare afmetingen. MMULT-functie. - De totalen zijn te hoog: controleer of de directe matrices al uitgevouwen subkitinhoud bevatten en of interne kithoeveelheden aan de batchvraag zijn toegevoegd.
- De totalen zijn te laag: controleer de volgende nestingmacht. Een niet-nulresultaat betekent dat de uitvouwing mogelijk nog een bijdragelaag nodig heeft.
- De getallen lijken aannemelijk onder de verkeerde koppen: vergelijk de kitvolgorde in beide invoermatrices met die in de uitvoerkoppen.
Werk bij het uitbreiden van het werkboek elk betrokken invoerbereik, elke hulpberekening, uitvoerkop, zoekopdrachtbereik en vraagbereik bij. Deze formules gebruiken vaste adressen; een nieuwe kit naast de bestaande invoer typen neemt deze niet automatisch mee.
Houd de directe recepten als bewerkbare invoer, bewaar de controle op de nestingdiepte naast de berekening en controleer na elke structurele wijziging steekproefsgewijs één volledig assetpad. Met die controles ondersteunt de voltooide matrix zowel opzoekingen voor afzonderlijke kits als batchtotalen op basis van dezelfde vastgelegde recepten.
Bronnen
- MMULT-functie — Microsoft Support.
- Wat is er nieuw in Excel 2021 voor Mac — Microsoft Support.
- Formules voor dynamische matrices en gedrag van spillende matrices — Microsoft Support.
- INDEX-functie — Microsoft Support.
- MATCH-functie — Microsoft Support.
- TRANSPOSE-functie — Microsoft Support.
- Een #SPILL!-fout oplossen — Microsoft Support.