Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Como calcular a média de campos customizados

Vinícius Pereira
Contributor
February 11, 2025

Pessoal bom dia!

Preciso criar uma automação, no Jira Software, que calcula a média entre 2 campos customizados, armazenando o resultado em um terceiro campo customizado.

Exemplo: campo A = 2 e campo B = 4, após a execução da automação, o valor do campo C será 3 (média entre A e B). Os 3 campos são numéricos.

Criei a seguinte automação:

- Quando alteração de valor de campo

   - Editar campo do item

      - Escolhi o campo que vai armazenar o cálculo da média e coloquei a seguinte fórmula:

         {{(issue.customfield_10397 + issue.customfield_10398) / 2}}

 

Quando realizei a alteração dos campos A e B, deu erro:

 

"Não foi possível renderizar valores inteligentes ao executar esta regra:
Failed to get value for (issue.customfield_10397 + issue.customfield_10398) / 2: {{(issue.customfield_10397 + issue.customfield_10398) / 2}}"
Já tentei outras variações da fórmula sugeridas pelo chatgpt, mas todas deram erro.
Alguém sabe como resolver esse problema?
Obrigado.

2 answers

2 accepted

0 votes
Answer accepted
Vinícius Pereira
Contributor
February 12, 2025

Olá @Layssa Souza e @Bill Sheboy , boa tarde!

Na verdade, ainda não testei o "round", pois está acontecendo algum erro no momento do cálculo da média. No meu caso real, preciso calcular a média de 3 campos customizados. Inclui o terceiro campo na fórmula e alterei para dividir por 3. A fórmula ficou assim:

{{#=}} ({{issue.customfield_10424|0}} + {{issue.customfield_10398|0}} + {{issue.customfield_10397|0}}) / 3 {{/}}

Se A = 2, B = 3 e C = 3

Média = (2+3+3)/3 = 2,667

Se altero A de 2 para 3, deveria ser: (3+3+3)/3 = 3, porém, o campo Média está trazendo o resultado 2,333.

Se altero os 3 campos para 1, está calculando a Média como 2, sendo que o correto seria 1.

Meus campos originais são Relevância, Urgência e Tendência. São campos do tipo "Radio Buttons" e, cada um, possui 5 opções de escolha.

 

image.png

 

Como eles são do tipo "texto", para a automação eu criei 3 campos personalizados  numéricos: Relevância_Aux (10424), Urgência_Aux (10398) e Tendência_Aux (10397) que serão usados para a realização do cálculo da Média.

A minha automação ficou assim: 

 

image.png

image.png

image.png

 

Esse "bloco" acima (Bloco Se + Editar item) se repete 15 vezes, pois, conforme falei anteriormente, os campos Relevância, Urgência e Tendência possuem 5 opções de escolha, cada um deles.

 

Por fim, realizo o cálculo da Média:

 

image.png

 

RUT é o meu campo de Média. No exemplo anterior, onde todos os 3 campos Aux possuem o valor 1, o campo RUT deveria mostrar o resultado 3, porém, está mostrando 2.

image.png

Creio que, em algum lugar da automação, ela não está fazendo a conversão correta ou está apresentando algum delay e isso provoca o recálculo errado da Média. Será que é pelo fato de verificar 15 blocos (Bloco Se + Editar item)? Teria uma outra forma "resumida" para se evitar esse 15 blocos de cálculo?

Obrigado.

Bill Sheboy
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
February 12, 2025

Thanks for that information, @Vinícius Pereira as it will help to simplify the rule, reducing the steps significantly.

  1. You have 3 radio button fields, and each one has 5 choices containing text
  2. You are using if / else conditions to check the text values and map the selected value to a number, stored in another issue field
  3. The rule then tries to average the 3 number fields

 

Rather than using the extra number fields with if / else conditions, there are two ways to simplify the rule:

 

If all of the option values start with the numbers you want to average, you could extract the numbers using text functions and sum those instead.

Let's assume the three radio buttons are named: RelevanceRadio, UrgencyRadio, and TrendRadio.  You may replace these with your custom field name / ID values.

{{#=}}ROUND( ( {{issue.RelevanceRadio.value.left(1)}} + {{issue.UrgencyRadio.value.left(1)}} + {{issue.TrendRadio.value.left(1)}} ) / 3, 2){{/}}

This would grab the first character from each radio button value, average them, and round to 2 digits.

 

If instead the option numbers are different than the radio button text, you may use lookup tables to get the numbers for the math:

  • action: create lookup table
    • name: varRelevanceLookup
    • row
      • key: 1. Seria bom ter, mas ficamos bem sem ele
      • value: 1
    • row
      • key: 2...
      • value: 2...
    • ...add the other rows
  • ...create a table for varUrgencyLookup
  • ...create a table for varTrendLookup
  • average the values using the lookup tables to get the numbers:
{{#=}}ROUND( ( {{varRelevanceLookup.get(issue.RelevanceRadio.value)}} + {{varUrgencyLookup.get(issue.UrgencyRadio.value)}} + {{varTrendLookup.get(issue.TrendRadio.value)}} ) / 3, 2){{/}}

This would use the radio button values to lookup from each table, average the numbers, and round to 2 digits.

 

Like Layssa Souza likes this
Vinícius Pereira
Contributor
February 13, 2025

Bill, bom dia!! Funcionou perfeitamente!! Muito obrigado!

Like # people like this
0 votes
Answer accepted
Layssa Souza
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
February 11, 2025

Ola @Vinícius Pereira 

 

No seu campo de média, adicione o seguinte smart value: 

{{#=}} ({{issue.customfield_10397|0}} + {{issue.customfield_10398|0}}) / 2 {{/}}

 

Meus testes foram realizados em ambiente DC, mas acredito que a solução seja a mesma!

Evid3.pngEvid2.pngEvid1.png 

Cloud

EvidCloud3.pngEvidCloud2.pngEvidCloud1.png

 

Espero que isso ajude :)

Vinícius Pereira
Contributor
February 11, 2025

Olá @Layssa Souza ! Funcionou perfeitamente!! Muito obrigado!!

Sem querer abusar da sua boa vontade, como eu poderia alterar essa fórmula para que ela possa arredondar médias com valores decimais?

Like Layssa Souza likes this
Bill Sheboy
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
February 11, 2025

Hi @Vinícius Pereira 

You could add the ROUND() function around the value, selecting the desired precision: https://support.atlassian.com/cloud-automation/docs/jira-smart-values-math-expressions/#Functions

For example, to round to 3 decimal places:

{{#=}}ROUND(({{issue.customfield_10397|0}} + {{issue.customfield_10398|0}}) / 2, 3){{/}}

 

Kind regards,
Bill

Layssa Souza
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
February 11, 2025

@Vinícius Pereira 

 

Veja se funciona para você:

{{#=}} floor(({{issue.customfield_10397|0}} + {{issue.customfield_10398|0}}) / 2 + 0.5) {{/}}

Teste 2.pngNão consegui identificar o motivo do round não funcionar, então apliquei o floor, que também é aceito no smart value 

Ele arredonda o valor para baixo para o inteiro mais próximo e o "(2 + 0.5)" faz com que números como 2.8 ou 3.3 sejam arredondados corretamente.

Floor.png

 

Veja se para você funciona, infelizmente, o floor eu não consegui testar no JIRA Cloud, pois fiquei sem o ambiente :)

 

Atte,

Layssa Souza.

Suggest an answer

Log in or Sign up to answer
DEPLOYMENT TYPE
CLOUD
PRODUCT PLAN
STANDARD
PERMISSIONS LEVEL
Product Admin
TAGS
AUG Leaders

Atlassian Community Events