[UPDATED FOR 2023]
The closest equivalent is using SearchKit. You can use either Data Segmentation or text rewrites with Smarty.
At the bottom of this answer is a screenshot of a Data Segment to calculate the donor level based on amount donated. There's also a screenshot of using text rewrites to calculate the amount of time elapsed in minutes between two date/time custom fields.
What you're asking for is very similar to Computed Field for Drupal - but the nature of calculated fields is that you're writing code (or some pseudo-code formula). At that point, it's not much further to writing the code in an extension.
Furthermore, there are basic transformations available on SearchKit without rewrites (e.g. concatenate text, sum numbers).
The limitation of the approaches above is that they're only available in SearchKit. If you'd like them available as a custom field/token, there are three extensions you can investigate - Summary Fields, Synopsis and SQL Tasks.
All three extensions rely on writing SQL. Summary Fields has some options for using triggers, but is much harder to use, and you have to build a sub-extension. Synopsis and SQL Tasks let you write your SQL inside a UI. Synopsis is built for the purpose and is a better experience, but SQL Tasks can also be used in many instances.
There are several approaches you can take:
You can write an extension and use hook_civicrm_pre to grab the fields in question and write to the custom field when your survey is created/updated. This is relatively quick and easy.
You can write a MySQL trigger in your database. This is good if you need very high performance. However, you will need to re-add your trigger on every upgrade - unless you put it in an extension.