Effektivisering av Bennu-modellen med RandArray - Excel-tips

Innehållsförteckning

Förra veckan på Ignite introducerade Excel-teamet dynamiska matriser. Idag, en närmare titt på RANDARRAY-funktionen.

Nyligen, i mitt inträde till Excel Hash-spelet, skapade jag en modell för att beräkna chansen att jorden kommer att få en ny turistattraktion, Bennu-kratern år 2196. Den modellen utförde trettio miljoner beräkningar och krävde 200 001 formler tillsammans med en 100- raddatatabell. Här är formlerna som används i 200 001 celler:

Denna modell beräknas på 10-12 sekunder

För att förenkla modellen använder du RANDARRAY (100000) istället för RAND-funktionen. Detta gör att formeln beräknas 100 000 gånger.

  • Du börjar med att ersätta RAND () med RANDARRAY (100000) för att generera 100.000 svar:

    RANDARRAY(100000)

  • Skicka RANDARRAY in till NORM.INV för att beräkna 100 000 platser

    NORM.INV(RANDARRAY(100000),$H$4,$H$5)

  • Skicka NORM.INV till VLOOKUP för att avgöra om Bennu påverkar jorden:

    VLOOKUP(NORM.INV(RANDARRAY(100000),$H$4,$H$5),$N$23:$O$179,2,TRUE)

  • Och slutligen summera 100K-resultaten

    =SUM(VLOOKUP(NORM.INV(_xlfn.RANDARRAY(100000),$H$4,$H$5),$N$23:$O$179,2,TRUE))

Den slutliga modellen för att köra 100.000 försök finns i en enda formel:

200 000 celler ersatta av en formel

Filstorleken krymper dramatiskt: Från 370979 byte till 37723 byte. Omräkningstiden är halverad. Titta på Recalc-tiderna i videon nedan.

Kolla på video

Ladda ner Excel-fil

För att ladda ner Excel-filen: rationalisera-the-bennu-modellen-med-randarray.xlsm

Från och med nu till slutet av 2018 gör jag min nya Excel Dynamic Arrays Straight To The Point e-bok gratis.

Excel-tanke på dagen

Jag har frågat mina Excel Master-vänner om deras råd om Excel. Dagens tanke att fundera på:

"Starta alltid ditt bordsnamn med" tbl ""

Dietmar Gieringer

Intressanta artiklar...