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
W_Vann_Hall
13 - Mars
13 - Mars

In the meantime, here is a status bar you can drop into any [knock wood] base as needed.

statusBar
As configured, it requires you to add three Formula fields, {BarGoal}, {BarCurrent}, and {StatusBar}.

  1. {BarGoal} should be set to equal the ABS() value of whichever Airtable field contains your target goal.

  2. Assuming {Current} is the field containing your current measurement, {BarCurrent} should be set to

    IF({Current},ABS({Current}),0)
    
  3. {StatusBar} should be configured for the following formula:

IF(
    BarGoal,
    REPT(
        '█',
        INT(
            (IF(
                BarCurrent<=BarGoal,
                BarCurrent,
                BarGoal
                )/BarGoal)*18
            )
        )&
        IF(
            ROUND(
                MOD(
                    (IF(
                        BarCurrent<=BarGoal,
                        BarCurrent,
                        BarGoal
                        )/BarGoal)*18,
                    1
                    ),  
                0
                )=1,
            '▌'
            )
    )

As provided, the status bar is 18 characters wide at 100%; this width can be varied by replacing the value ‘18’ with your preferred width. The status bar maxes out at 100%, and blank values of {BarCurrent} are treated as zero (0). The formulas for {BarGoal} and {BarCurrent} take the absolute values of your goal and current metrics to avoid generating errors, but negative target or current values probably won’t work the way you expect.

Optionally, the status bar can be preceded with the current percent of goal reached by using the following formula:

IF(
    BarGoal,
    REPT(
        ' ',
        3-LEN(
            INT(
                (IF(
                    BarCurrent<=BarGoal,
                    BarCurrent,
                    BarGoal
                    )/BarGoal)*100
                )&''
            )
        )&
        INT(
           (IF(
                BarCurrent<=BarGoal,
                BarCurrent,
                BarGoal
                )/BarGoal)*100
            )&
        '% '&
        REPT(
            '█',
            INT(
                (IF(
                    BarCurrent<=BarGoal,
                    BarCurrent,
                    BarGoal
                    )/BarGoal)*18
                )
            )&
            IF(
                ROUND(
                    MOD(
                        (IF(
                            BarCurrent<=BarGoal,
                            BarCurrent,
                            BarGoal
                            )/BarGoal)*18,
                        1
                        ),  
                    0
                    )=1,
                '▌'
                )
    )
Max_Goldberg
5 - Automation Enthusiast
5 - Automation Enthusiast

Thanks so much! I really appreciate this response.

Grant_Peterson
4 - Data Explorer
4 - Data Explorer

This is fantastic. Thank you for this great solution, W_Vann_Hall!

Max_Goldberg1
6 - Interface Innovator
6 - Interface Innovator

I can believe I am not the only person in the world named Max Goldberg but it is blowing my mind that I am not the only Max Goldberg who wanted to know how to make a progress bar in Airtable.

Jonathan_Yales
4 - Data Explorer
4 - Data Explorer

Replace the ’ █ ’ with ’ ░ ’ or ’ ▒ ’ or ’ ▓ ’ for various shades other then black.

Sara_Guirgis
4 - Data Explorer
4 - Data Explorer

Edited the (genius) formula from @W_Vann_Hall to show the rest of the status bar shaded in grey.

Looks like this:
Snag_4b9a0cc7

IF(
    BarGoal,
    REPT(
        ' ',
        3-LEN(
            INT(
                (IF(
                    BarCurrent<=BarGoal,
                    BarCurrent,
                    BarGoal
                    )/BarGoal)*100
                )&''
            )
        )
        &
        INT(
           (IF(
                BarCurrent<=BarGoal,
                BarCurrent,
                BarGoal
                )/BarGoal)*100
            )
        &
        '% '
        &
        REPT(
            '█',
            ROUND(
                (IF(
                    BarCurrent<=BarGoal,
                    BarCurrent,
                    BarGoal
                    )/BarGoal)*10
                )
            )
            &
        REPT(
            '░',
            ROUND(
                10-(IF(
                   BarCurrent<=BarGoal,
                    BarCurrent,
                    BarGoal
                    )/BarGoal*10),0
                )
            )
    )
Bill_King
4 - Data Explorer
4 - Data Explorer

Many thanks to @W_Vann_Hall and @Sara_Guirgis for your genius and sharing skills!

Martin_Gudmunds
4 - Data Explorer
4 - Data Explorer

Really smart solution! I tried to simplify it a bit further, since there was quite a bit of repetitive code in the progress bar. I decided to make a second column Percentage that calculated the percent value to be used for the view.

I also had to do some tweaks on the characters used since they didn’t have the same width in my chrome browser on Mac and moved the number after the bar since it seems like airtable now trims spaces, so it was hard to get the bars to align correctly with the above code sample.

Also fixed a bug where it would sometimes render 11 boxes total because of where the ROUND method was located on the empty boxes loop.

Here’s my contribution:

IF(
    Percentage >= 0,
    REPT(
        '■',
        ROUND( MIN(Percentage, 1) * 10 )
    )
    &
    REPT(
        '□',
        10 - ROUND( MIN(Percentage, 1) * 10)
    )
    &
    ' '
    &
    INT( MIN(Percentage, 1) * 100 )
    &
    '%'
)
Lindsey_Bavaro
5 - Automation Enthusiast
5 - Automation Enthusiast

This may be a super silly question… however, where are you getting these rectangle emoji shapes? I only have squares in my default emojis and would love to use a color other than black. :slightly_smiling_face:

This progress bar is AMAZING! Thank you

ScottWorld
18 - Pluto
18 - Pluto

How is that little black/red/grey box symbol created?

I can copy & paste it from this thread, but I’m not sure how to generate it on my own.

I tried going into my emojis and choosing a black/red/grey emoji box, but multiple emoji boxes in a row don’t connect to each other (they leave a little space in between each of them).

However, the black/red/grey boxes in this thread actually DO connect to each other when you have multiple of them in a row!

Anybody know how to recreate those boxes from scratch?