Help

This Product Ideas board is currently undergoing updates, but please continue to submit your ideas.

In-Cell Progress Bar for Each Record

cancel
Showing results forย 
Search instead forย 
Did you mean:ย 
Max_Goldberg
5 - Automation Enthusiast
5 - Automation Enthusiast

Hi -
Weโ€™re looking to pull a percentage of a task complete and reflected that % as a progress bar in a cell for a single record. We want the progress bar to be continuous (up to an integer) as the % of the task completed is updatedโ€ฆ I.e. (just one of many use cases) if we have a record that is counting # of forms submitted for a given record, and the total number is noted in the record, the percentage of completed forms with respect to the completed record is reflected in an updating graphic progress bar.

Bootstrap plugin example: https://www.w3schools.com/bootstrap/bootstrap_progressbars.asp.

The progress bar Airtable feature should update from as the percentage cell on the record self-updates upon completion of a given trigger elsewhere in the Airtable ecosystem.

Many thanks!

31 Comments
Jeff_Haskin
6 - Interface Innovator
6 - Interface Innovator

Alternatively, hereโ€™s a easy one using a โ€œProgressโ€ field and a โ€œProgress Barโ€ field:

CONCATENATE(
  REPT("โ–ˆ",(({Progress}*100)/5)-MOD({Progress}*100,5)/5),
  REPT("โ–‘",20-((({Progress}*100)/5)-MOD({Progress}*100,5)/5))
)

progress

Each black square represents 5% progress. Gray squares show the total possible progress.

Jeff_Haskin
6 - Interface Innovator
6 - Interface Innovator

Here ya go!

CONCATENATE(
  CONCATENATE(
    REPT(" ",(3-LEN(CONCATENATE(ROUND({Total Task Progress}*100,0))))*2),
    CONCATENATE(ROUND({Total Task Progress}*100,0)),
    "%  "
    ),
  CONCATENATE(
    REPT(
      IF({Total Task Progress}<0.20,"๐ŸŸฅ",
        IF({Total Task Progress}<0.40,"๐ŸŸง",
          IF({Total Task Progress}<0.60,"๐ŸŸจ",
            IF({Total Task Progress}<0.80,"๐ŸŸฆ",
              IF({Total Task Progress}<1.00,"๐ŸŸฉ","")
            )
          )
        )
      ),
    (({Total Task Progress}*100)/10)-MOD({Total Task Progress}*100,10)/10),
    REPT("โฌœ",10-((({Total Task Progress}*100)/10)-MOD({Total Task Progress}*100,10)/10))
  )
)
Jeff_Haskin
6 - Interface Innovator
6 - Interface Innovator

The benefit to having the progress percentage itself appear in its own column next to the progress bar (rather than appearing with the progress bar) is that when you have groupings and the progress percentage field is showing, you can have percent values total up across groups, which doesnโ€™t work when itโ€™s merely displayed with the progress bar in the same field.

gliddon
4 - Data Explorer
4 - Data Explorer

This is an awesome formula, thanks so much! The only issue I have is that the 100% doesnโ€™t display the pretty emoji progress bar you made. Hereโ€™s what I see:

Screen Shot 2022-07-25 at 11.18.13 AM

I use a linked record for Status, then assigned each Status a % Progress score. Then I look up that % score as the Total Task Progress in your formula above.

Any suggestions as to how to get that 100% all green bar looking right? Iโ€™ll keep fiddling, but thought Iโ€™d ask anyways!

Hewitt
4 - Data Explorer
4 - Data Explorer

@gliddon in your last if statement IF statement add an additional green box where the blank is. This should allow the 100% bar to appear

IF({Calculation}<1.00,โ€œ :green_square: โ€,โ€œ :green_square: โ€)

Also, how did you get rid of the spacing between your squares?

Roxane_Uzureau
4 - Data Explorer
4 - Data Explorer

You guys are mind-blowingโ€ฆ i spend HOURS trying to work what the best LAYOUT is on my airtables!
Ok, so I have yet another layer of complexity to add here:
I want the progress bar to update according to the amount of tasks completed (already calculated from two other Lookup cells to get the relevant info from TASKS tab)
I have a box already for the numbers of tasks complete :slightly_smiling_face:

Screenshot 2022-09-08 at 9.07.04 PM

Can anyone help on how would I go about that?

G_T
5 - Automation Enthusiast
5 - Automation Enthusiast

This was an excellent thread! Thank you for the formulas.

I wanted to comment with a slightly updated version.

I took the progress bar from above and altered it via these items:

  • made a version that has a continuous progress bar (no boxes or squares)
  • made a version that is small for mobile devices

Plus, I added a component, to show how many tasks for a project are in the following status. I spaced them out so they always appear on the left, in the middle, or on the right;

  • To Do - shown via this symbol โŽ‹
  • Waiting (on someone) - shown via this symbol โŽ
  • In Progress - shown via this symbol โžค

Screen Shot 2022-09-12 at 2.30.03 PM

G_T
5 - Automation Enthusiast
5 - Automation Enthusiast

The graphic comes from these fields
Combination Field

CompletionBar&'\n'&{Status graphic}

CompletionBar field
(this is the same formula from above, but I replaced the square progress indicators with different ones, called Full Width within Apple Emoji keyboard. The full width aspect lets them touch, appearing as if it is a continuous indicator, instead of boxes lined up in a row

IF(
    PercentDone >= 0,
    REPT(
        'โ–…',
        ROUND( MIN(PercentDone, 1) * 10 )
    )
    &
    REPT(
        '๏น',
        10 - ROUND( MIN(PercentDone, 1) * 10)
    )
    &
    ' '
    &
    INT( MIN(PercentDone, 1) * 100 )
    &
    '%'
)

Status Graphic field

IF({rollupDONE matches percent done}="โœ”๏ธConfirmed Done","โ˜‘๏ธDone",CONCATENATE(
  IF(
    AND({โŽ‹count To Do}>0,{โŽ‹count To Do}<10),
    "โŽ‹"&{โŽ‹count To Do}&"               ",
    IF(
      {โŽ‹count To Do}>=10,
      "โŽ‹"&{โŽ‹count To Do}&"             ","                      ")),
      IF(
        AND({โŽcount Waiting}>0,{โŽcount Waiting}<10),
        "โŽ"&{โŽcount Waiting}&"               ",
        IF({โŽcount Waiting}>=10,"โŽ"&{โŽcount Waiting}&"             ",
        "                      ")),
  IF({โžคcount InProgress},"โžค"&{โžคcount InProgress},BLANK())))
Jeff_Haskin
6 - Interface Innovator
6 - Interface Innovator

If you replace the โ€œ-โ€ with a non-breaking space, you can do the same thing without a visible character.

Jeff_Haskin
6 - Interface Innovator
6 - Interface Innovator

I did this by having each task have itโ€™s own progress field, with this formula:

IF({Status}="Done",1,0)

That field would then be hidden, itโ€™s only purpose is the rollup.

Now just roll up that field with this formula:

AVERAGE(values)

โ€ฆand boom! The total progress of all attached tasks.

You have to AVERAGE instead of SUM when working with percentages.