Looking for Guidance on Baserow's Advanced Formula Usage

Hello Everyone :hugs:,

I’ve been looking into Baserow for data management, and I’m delighted with its capabilities and adaptability. But with some of the more complex mathematical functions, I’ve run into a bit of a snag. I’m hoping the community can offer some advice.

To be more precise, I want to build a formula that takes in several fields and outputs a different record ID for every one. Although I am familiar with the fundamentals of concatenation, I find it difficult to include conditional logic into the formula.

For instance, I want to use a different set of fields otherwise and only concatenate two fields if a third field satisfies specific requirements.

The following is a condensed version of my goals:

  • Field A plus Field B should be combined to provide the unique identity if Field C has the value “Yes”.
  • The unique identifier should be a combination of Field A and Field D if Field C has the value “No”.

I have also gone through this: https://www.reddit.com/r/selfhosted/comments/q23rtw/releasing_baserow_16_with_formula_and_multiple/minitab

Has anyone in Baserow attempted anything comparable? Any examples or advice on how to organise these conditional formulations would be highly appreciated.

Furthermore, it would be very beneficial if there were any documents or resources that went into further detail about the use of complex formulas.

Thank you :pray: in advance for your assistance.

Hello @James, I’ll try to write formulas for the examples you provided later today so you can use them as references. Meanwhile, you can use this tutorial: How to automate task management with dynamic Baserow formulas // Baserow to see how to work with if-statements in formulas.

This one might also be useful for you to check: 20 essential Baserow functions to master your data // Baserow

Hey @James, here are the examples of formulas you need:

if(field('C') = 'Yes', concat(field('A'), field('B')), '0')
if(field('C') = 'No', concat(field('A'), field('D')), '0')