Using a pivot table to create a plant distribution matrix
On a recent planting job, 660 plants were delivered to the planting site. They’re unloaded in species groups: 42 Luzula nivea, 49 Tellima grandiflora, 53 Tiarella ‘Spring Symphony’… There are 23 different varieties, and they need to be distributed between 10 different planting borders. Some plants appear in all 10, others in only one or two.
<img height="1280" width="960" data-zoom-src="https://cdn.u.pika.page/lloXIrAaCKxSC8N7qePkza4sMiceqOaM2ZNVGQDCn_k/s:3840:3840/fn:IMG_2424/plain/s3://pika-production/0nyshzx7sjr5wx7ws6yu21qom8b6" data-original-src="https://cdn.u.pika.page/n6_eUaFFToy424YiQvjw2b_s9EMDrw30WJjwvn1FT98/fn:IMG_2424/plain/s3://pika-production/0nyshzx7sjr5wx7ws6yu21qom8b6" data-src="https://cdn.u.pika.page/09v2Jqp5KO55dnXSXKQiYf5y348Ko203jQUOD7jRD5U/s:1800:1400/fn:IMG_2424/plain/s3://pika-production/0nyshzx7sjr5wx7ws6yu21qom8b6" data-lazy-load="true" alt="660 plants laid out after delivery" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7">
<figcaption class="attachment__caption" aria-hidden="true">
The plants shortly after delivery
</figcaption>
If your head is spinning at this prospect, you’ll know how I felt when I first approached this challenge. With a team of three including myself, I wanted to ensure things were run efficiently, and that my attention wasn’t a bottleneck in the process.
I started off with the full schedule of plants for the job. This is great for ticking things off as they’re delivered, and making sure everything has arrived. But it offers no clues on where these plants need to go. Fortunately, Vectorworks is able to produce plant schedules by planting area, so I had a list of which plants (and in what quantity) where in each bed. One could get by with this, but with each plant group off the truck, you’d have to:
Look down through bed A, scan through 14 plants, any in there? No
Look to bed B, scan through 12 plants, any in there? Yes, 5. Ok
Look to bed C…
Not very efficient. I might have gone with this, if I hadn’t watched a presentation from James Trevers, a landscape architect at Tom Stuart-Smith Studio. In it, he described a plant distribution matrix. Each plant is listed down the left hand side, and across the top are all the planting areas. In each cell, is the quantity of that plant in the planting area. It’s like a directory.
<img height="904" width="904" data-zoom-src="https://cdn.u.pika.page/9vB-CliLlSiQ5iVRBwbcO84fKy-DkDk1aHPCBd2jKDM/s:3840:3840/fn:matrix%20graphic/plain/s3://pika-production/ghyyr4rs4asfe03fx6gzfzf6szir" data-original-src="https://cdn.u.pika.page/YYU6LTy6xKY4nn49R0t8wJ-za-PBpZjk43nVNANVbIs/fn:matrix%20graphic/plain/s3://pika-production/ghyyr4rs4asfe03fx6gzfzf6szir" data-src="https://cdn.u.pika.page/ieCqzbNA0gqbDJ_3qyMRhxqbNEFON7eCsY1SuhAU3io/s:1800:1400/fn:matrix%20graphic/plain/s3://pika-production/ghyyr4rs4asfe03fx6gzfzf6szir" data-lazy-load="true" alt="A simple diagram of a plant matrix. Plants go down the left-hand side making up the rows. Planting areas or beds go across the top forming the columns. Then each cell contains the quantity of that plant in the corresponding bed." src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7">
Now when it comes to distributing the plants, the steps are much simpler. Find the plant down the left hand side, then read across for the totals in each bed. If the cell is blank, the plant doesn’t appear.
Of course, I could have painstakingly written this out manually, but a) that’s no fun, and b) if I make any changes (which I inevitably had to due to fluctuating plant availability) I’d have to make the changes everywhere.
As far as I know, Vectorworks doesn’t have the capability to do this, but luckily spreadsheet software does. Enter, the pivot table.
What is a pivot table?
A pivot table is a table of values which are aggregations of groups of individual values from a more extensive table (such as from a database, spreadsheet, or business intelligence program) within one or more discrete categories. The aggregations or summaries of the groups of the individual terms might include sums, averages, counts, or other statistics. A pivot table is the outcome of the statistical processing of tabularized raw data and can be used for decision-making. Wikipedia
Most spreadsheet software has this ability, but in this case I was using Google Sheets.
I start by copying the ‘plant schedule by planting area’ out of Vectorworks and into Google Sheets. Then I add a ‘Bed’ column, which will just contain the letter I’ve assigned to that bed. This is how the pivot table knows which bed each plant instance belongs to.
<img height="1490" width="1560" data-zoom-src="https://cdn.u.pika.page/noVPrA7PFZCU5BQRo9JCR6G6l57l5E7QhTdk98Zee7Q/s:3840:3840/fn:Screenshot%202025-06-16%20at%2014.56.46/plain/s3://pika-production/hrhebsdhapqfjfxnmgi1vwjvbhim" data-original-src="https://cdn.u.pika.page/40SC6LFe0fSEPSFXrX3vYVA-JLPeTONSeSmn-u6fSnw/fn:Screenshot%202025-06-16%20at%2014.56.46/plain/s3://pika-production/hrhebsdhapqfjfxnmgi1vwjvbhim" data-src="https://cdn.u.pika.page/ISD1Zr5CXIjc-7Y4nSjN1GOJ3l6ii0aBv-OJxZAMrCk/s:1800:1400/fn:Screenshot%202025-06-16%20at%2014.56.46/plain/s3://pika-production/hrhebsdhapqfjfxnmgi1vwjvbhim" data-lazy-load="true" alt="A spreadsheet of plants, listed by the planting area they belong in" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7">
<figcaption class="attachment__caption" aria-hidden="true">
I had to autofill the bed designation into each plant, so the pivot table knows what to look for
</figcaption>
Now I have everything I need. I select the data and create a pivot table. In the rows, I need the botanical names of the plants. In the columns go the beds/planting areas. And finally, the values are the quantity of each plant.
<img height="1370" width="490" data-zoom-src="https://cdn.u.pika.page/U2jj8P09_oG3zugbOKbbpSXgjMXuclE20n0GU3W8c7A/s:3840:3840/fn:Screenshot%202025-06-16%20at%2014.57.51/plain/s3://pika-production/cvrm2iqamw5l8p6o67usgmyzabzz" data-original-src="https://cdn.u.pika.page/LJxVKnQFEPYMFu7QZ3Y5gDJPAP7UEI4DMvcPhzkptC8/fn:Screenshot%202025-06-16%20at%2014.57.51/plain/s3://pika-production/cvrm2iqamw5l8p6o67usgmyzabzz" data-src="https://cdn.u.pika.page/7iWI1NhNZWUvyr2172A_k1Qutnr40Q3Pmj7L6fY9Ufw/s:1800:1400/fn:Screenshot%202025-06-16%20at%2014.57.51/plain/s3://pika-production/cvrm2iqamw5l8p6o67usgmyzabzz" data-lazy-load="true" alt="The 'pivot table editor' dialogue window in Google Sheets. It asks for the data you'd like displayed in Rows, Columns, and Values (in the cells)" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7">
The pivot table finds all of the Euphorbia (6 in bed A, 7 in bed B, and so on) and lays them out in a single row.
<img height="1554" width="1885" data-zoom-src="https://cdn.u.pika.page/A-vC_7VGy4TgD0osk3pLELcmBrxQUw3lf8KPF0ORhNc/s:3840:3840/fn:Screenshot%202025-06-16%20at%2014.58.53/plain/s3://pika-production/rj5xc0ksgas8wuskhpahjrzppomw" data-original-src="https://cdn.u.pika.page/QTkWzvC4PU6yt_7tDUCfbbOX72Jr6jdZIRZN5VPX-Ec/fn:Screenshot%202025-06-16%20at%2014.58.53/plain/s3://pika-production/rj5xc0ksgas8wuskhpahjrzppomw" data-src="https://cdn.u.pika.page/2gaKMS-4STpv5tgyLNEYvr0ZVXwZHCDnVFfsCJCM-2Q/s:1800:1400/fn:Screenshot%202025-06-16%20at%2014.58.53/plain/s3://pika-production/rj5xc0ksgas8wuskhpahjrzppomw" data-lazy-load="true" alt="A completed Plant Distribution Matrix using a pivot table" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7">
<figcaption class="attachment__caption" aria-hidden="true">
If you want to remove the annoying row of 0s, you have to ensure you don’t have any blank rows in the data, which Vectorworks loves to add…
</figcaption>
And there you have it, a plant distribution matrix.
This was even more powerful in combination with another Google Docs feature, data embedding, which allowed me to also display live and updating spreadsheets into instruction documents, so that everything stayed in sync. Beautiful. I’ll write about this one another time.
I’m sure there are cleaner ways to do this, so if you excel at spreadsheets, please drop me a line and give me some tips.