I'm working on a formula for a "result" column in a table that looks up data in another table based on some criteria in the main one, then displays it. Of the point where I'm getting stumped at, it is returning a dynamic 2D array (row returns are variable dependent on an FILTER/MATCH lookup). Example (4 columns x 3 rows) return value: {1,2,3,4;1,2,3,4;1,2,3,4}
I want to get the product of the values in each column such that the output from the formula using the example return value above would be this: {1,8,27,64}
(Which is the equivalent of doing this: {1,2,3,4} * {1,2,3,4} * {1,2,3,4})
How do I accomplish this using only formula functions?
All of my google searches have been coming back with methods that assume static table size, multiply the columns against each other, and/or the table "existing" within a sheet somewhere (and still don't give the result I'm looking for).
I've already figured this out via VBA, but due to the nature of how I'm using the sheet, waiting for the updates to run via VBA are too slow. It's not that it takes forever - it's only about 3-4 seconds for ~60 rows - but rather that I make a change to my lookup table, wait for the update to the result column in the main table, check the results, make another change, rinse & repeat 50 some odd times while I fine tune things to look the way I want them to, and the delays are wearing on me.
I'm also unsure that I can use helper rows/columns as the results would need to be packed too close together and would just display #SPILL, which results in the formulas referencing it just showing the same thing. So it looks like this needs to be self contained.
Plugins are an absolute no.
(Other little edit: Whoops, I put INDEX/MATCH above when I meant FILTER/MATCH.)
EDIT: Hopefully this will help clarify?
Here's the structure of my main table where this formula resides:

My Formula takes the words from ColA and ColB and uses FILTER/MATCH to do a lookup that 1) returns multiple results, 2) the return results are entire rows, and 3) is an exact match (it returns nothing for words in ColA and ColB that don't exist in the lookup table).
This means that, as of the current state of the formula, I'm getting 2D arrays back for most of the rows in the main table. AFAICT, I'm not going to be able to stick these into a helper column somewhere as they'll overlap and just cause #SPILL which then won't evaluate in whatever formulas then reference them.
I need to turn these into 1D arrays that are 1 row x same-#-as-source columns where the result in each column is the product of only that column's contents. I'm then going to continue building off from this formula with more formula to achieve my final result that will fit nicely in the single cell. (I already have that piece solved. It's just going from the 2D -> 1D product array I need help with.)

BYROWandBYCOL, there is no shorthand method by which an array of products (by column or row) can be obtained from anarray(there is such a method when querying arange, but that isn't relevant to your case). The only option would be to create a formula which comprises as many arguments as there are columns in the input array and then pass these toCHOOSE. If the number of columns to be considered is fixed and small, this might be a feasible option. Otherwise, share a dataset so that alternatives to yourINDEX/MATCHset-up can be sought.{1,2,3,4;1,2,3,4;1,2,3,4}and expected output with that example is the posted{1,8,27,64}. The input is simply a result of another formula that I want to nest inside of the solution formula. So, if we want to sayMyFormularepresents the input array, then a (mockup) solution would bePRODUCT(MyFormula)(though this one obviously doesn't work as it multiplies all of the values together).SUMPRODUCT()does not do what I want. It multiplies the values in the wrong order and then sums them.