I would like to "grab" numbers from a text field and then use the numbers in a calculation.

  • 1
  • 2
  • Question
  • Updated 3 months ago
  • Answered

I would like to "grab" numbers from a text field and then use the numbers in a calculation.

[Example text A] = "1 Pair per Bag, 12 Bags per Inner Bag, 12 Inner Bags per Case"

[Example text B] = "10 Eaches Box, 100 Boxes per Case"

I would like to create a formula field that grabs the above numbers in the sequence listed and multiple..

Example A -- New formula field  [1 * 12 *12] = 144

Example B -- New formula field  [10 * 100] = 1000

is this possible?

Photo of George

George

  • 180 Points 100 badge 2x thumb

Posted 4 years ago

  • 1
  • 2
Photo of Ⲇanom the ultimate (Dan Diebolt)

Ⲇanom the ultimate (Dan Diebolt), Champion

  • 30,044 Points 20k badge 2x thumb
I don't think this is a good idea to actually implement this in the formula language - but it is technically possible to do by manually splitting apart the text field first on commas and then on spaces using Right(), Left() NotRight(), and NotLeft(). You will have to assume a maximum number of numeric values embedded in your text string and write the formula to parse out that many numbers and multiply them together. But I would suspect some user is going to deviate from the assumed format over time and the formula will eventually fail.

On the other hand this can done using script in a reliable way. This code fragment splits the text field on non-digits using a regular expression and then reduces the array by multiplying all non-empty terms together.

var field = "1 Pair per Bag, 12 Bags per Inner Bag, 12 Inner Bags per Case";
var terms = field.split(/\D+/g);
var product = _.reduce(terms, function(memo, item) {
  return item.length > 0 ? item * memo : memo;
}, 1);
console.log(product);

logs 144
Photo of QuickBasePros_IDS

QuickBasePros_IDS, Champion

  • 3,770 Points 3k badge 2x thumb
If possible, consider splitting your numbers and unit values into separate fields; so you can more accurately capture the numeric values for more reliable calculations
Photo of Ⲇanom the ultimate (Dan Diebolt)

Ⲇanom the ultimate (Dan Diebolt), Champion

  • 30,044 Points 20k badge 2x thumb
I even created a demo for you - just change some of the numbers in the text field and watch the numeric field update as you type:

Questions, Answers and Points
https://haversineconsulting.quickbase.com/db/bj3fd38iz?a=er&rid=1

Pastie Database
https://haversineconsulting.quickbase.com/db/bgcwm2m4g?a=dr&rid=404
Photo of Gaurav Sharma

Gaurav Sharma

  • 5,884 Points 5k badge 2x thumb
Nice one :)
Photo of George

George

  • 180 Points 100 badge 2x thumb
You Da Man! Dan.....Thank you.
Photo of Gaurav Sharma

Gaurav Sharma

  • 5,884 Points 5k badge 2x thumb
Hi Dan,

instead of number can we pick usernames/email address from text field through this.

can you help me with your code ?

Thanks,
Gaurav
Photo of Ⲇanom the ultimate (Dan Diebolt)

Ⲇanom the ultimate (Dan Diebolt), Champion

  • 30,044 Points 20k badge 2x thumb
Emails could be pattern matched from the text easily. Usernames could appear indistinguishable from simple words so unless you had a list of usernames or some other unique characteristic they would be more difficult to pattern match.
Photo of Gaurav Sharma

Gaurav Sharma

  • 5,884 Points 5k badge 2x thumb
Ok..

can you give me code of email pattern ?
Photo of G.Macri

G.Macri

  • 728 Points 500 badge 2x thumb
Did dan ever publish code for emails?