It was estimated that there would be 72 million monthly spreadsheet users in 2017 some of which build complex financial, scientific and mathematical models. In the age of multicore computing and ever-increasing amounts of data, how can end-users, who may not be trained IT professionals, access this powerful hardware to accelerate spreadsheet computation? Some existing solutions are usually not fully automatic and may require end-users to modify the spreadsheet in some way to facilitate parallel execution. Ideally, end-users should have a tool at their disposal to transparently exploit the underlying hardware and automatically discover available parallelism in the spreadsheet. Other work has focused on automatic parallelism but assume the existence of pre-defined patterns. This work presents an algorithm which dynamically discovers available parallelism on-the-fly during evaluation of spreadsheet cells without requiring user interaction. The algorithm also features parallel cycle detection, a crucial component to avoid computation becoming stuck. We implement the algorithm in the Funcalc research spreadsheet application that introduces higher-order, user-defined functions that can be defined directly in the cells of the spreadsheet. In combination with automatic parallel evaluation, this promises a powerful and expressive platform for end-user development. Our results show a maximum 10–20x speed-up on a set of benchmark spreadsheets, a maximum 15–32x speed-up on a set of synthetic spreadsheets with pre-defined topologies, and overall improvements over a similar algorithm.