2 min readfrom Microsoft Excel | Help & Support with your Formula, Macro, and VBA problems | A Reddit Community

BYROW/BYCOL/MAP Variants for Nested Arrays + BENCHMARK

Our take

Explore the power of nested arrays with my new BYROW, BYCOL, and MAP variants. These functions offer an innovative approach to handling complex data structures efficiently. Additionally, the BENCHMARK function allows for easy performance testing, revealing how these new variants stack up against traditional methods like REDUCE and VSTACK. While still in development, I’m eager to see how you utilize these tools.

The recent introduction of BYROW, BYCOL, and MAP variants that return nested arrays, alongside a BENCHMARK function for performance testing, marks an exciting development in spreadsheet technology. This innovation, presented by Medohh2120, not only simplifies complex operations but also enhances the user experience by improving performance. For users grappling with intricate data manipulations, this release could be a game-changer. The potential to streamline workflows and optimize productivity is significant, especially in an era where data-driven decision-making is paramount.

The essence of these new functions lies in their ability to process data more efficiently. Traditional methods often rely on combinations of functions like REDUCE and VSTACK, which can be cumbersome and slow. By contrast, the new LAMBDA-based approach allows for more intuitive handling of nested arrays, which can lead to faster computations. This aligns with the ongoing trend of making spreadsheet technology more accessible and user-friendly, enabling users to focus on their insights rather than getting bogged down by technical intricacies. Furthermore, this push for innovation resonates with discussions on removing duplicate rows or enhancing training methods for tools like Excel, as seen in articles such as How to either remove all duplicate rows including original, or isolate all unique rows and Guided/simulation like training rather than videos?.

The BENCHMARK function included in this update is particularly noteworthy as it empowers users to assess the efficiency of their implementations in real-time. In an environment where performance can significantly affect productivity, having tools that evaluate speed and responsiveness is invaluable. This is especially true for data analysts and professionals who rely heavily on spreadsheets for decision-making processes. The ability to measure and compare performance directly encourages users to experiment and adapt their workflows, fostering a culture of continuous improvement. As spreadsheet tools become increasingly sophisticated, it is essential for users to have the means to gauge how these changes impact their work.

Looking ahead, the broader implications of these advancements are profound. As more users embrace AI-native technologies, we can anticipate a shift in how data management is approached across various sectors. The accessibility of advanced functionalities like nested array handling and performance benchmarking signifies a move towards democratizing data analysis, allowing users at all levels to harness the power of their data. This trend not only enhances individual productivity but also paves the way for organizations to leverage data more effectively, fostering innovation and informed decision-making.

As we observe these developments, one question stands out: How will user adoption of these new functions shape the future of spreadsheet technology? As practitioners begin to explore and implement these tools, their experiences and feedback will be crucial. This ongoing dialogue between developers and users will undoubtedly drive further enhancements and refinements, ensuring that spreadsheet technology continues to evolve in ways that truly empower users.

Hey everyone!
I made some simple BYROW, BYCOL, and MAP variants that can return nested arrays, and I also made a BENCHMARK function for performance testing.

Here's some code for testing:

BYROW⊟ = LAMBDA(array, function, [orient], LET( me, LAMBDA(me, seg, LET( n, ROWS(seg), IF( n = 1, function(seg), IF( orient, HSTACK( me(me, TAKE(seg, INT(n / 2))), me(me, DROP(seg, INT(n / 2))) ), VSTACK( me(me, TAKE(seg, INT(n / 2))), me(me, DROP(seg, INT(n / 2))) ) ) ) ) ), IFNA(me(me, array), "") ) ); BENCHMARK = LAMBDA(Func, [iterations], [time_unit], LET( iterations, IF(ISOMITTED(iterations), 1, iterations), start_time, NOW(), loop_result, REDUCE(0, SEQUENCE(iterations), LAMBDA(acc, i,Func())), total_ms, (NOW() - start_time) * 86400000, avg, total_ms / iterations, IF(time_unit, "avg: " & TEXT(avg / 1000, "0.000") & "s | total: " & TEXT(total_ms / 1000, "0.000") & "s", "avg: " & TEXT(avg, "0.00") & "ms | total: " & TEXT(total_ms, "0") & "ms" ) ) ); 

I didn’t put a huge amount of effort into polishing this but In my tests on my device, these performed a lot better than using REDUCE + VSTACK for the same kind of thing, so maybe it’ll be useful to someone.

Really curious to see how people use it, and if something looks like it should be optimized or changed, say so.

I'll update them regularly, fix bugs whenever I can.

You can find the rest of them on my Gist pages: BENCHMARK, SpillNest.

submitted by /u/Medohh2120
[link] [comments]

Read on the original site

Open the publisher's page for the full experience

View original article

Tagged with

#no-code spreadsheet solutions#Excel alternatives for data analysis#natural language processing for spreadsheets#generative AI for data analysis#rows.com#Excel compatibility#big data performance#Excel alternatives#BYROW#BYCOL#MAP#nested arrays#BENCHMARK#LAMBDA#performance testing#ROWS#HSTACK#VSTACK#REDUCE#NOW