Somar variaveis Iguais

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Somar variaveis Iguais

Re: Somar variaveis Iguais

by thalesduarte » 19 Aug 2022, 12:47

Acho que me expressei mal.
Peço desculpas.

Então, estou realizando uma aplicação no qual a ferramenta vai ler UM arquivo txt na nuvem e vai dizer os Totais pontuados de cada funcionário.

A parte da leitura do banco de dados eu consegui fazer tranquilamente.
A parte onde travei foi a respeito de poder listar esses campos.

Tentei no for fazer um tmp.3, mas não consegui reproduzir ele no arr.

Segue Código.

Code: Select all

var =
(
00966776003, 12, BRAZIL
00966776003, 27, BRAZIL
00966776003, 62, BRAZIL
66495756070, 25, ESTADOS UNIDOS
66495756070, 12, ESTADOS UNIDOS
66495756070, 12, ESTADOS UNIDOS
09598848401, 25, JAPÃO
09598848401, 12, JAPÃO
09598848401, 33, JAPÃO

)
arr := {}
for x,y in strsplit(var,"`n")
	{
	tmp := strsplit(y,", "), nm := tmp.1, cnt := tmp.2
	arr[nm] := !arr.HasKey(nm) ? cnt : arr[nm] + cnt
	}

for k,l in arr
	lst .= k "`t" l "`n"

msgbox Os funcionários que mais pontuaram foram:`nCPF / PONTUAÇÃO / PAÍS`n%lst%


flyingDman wrote:
19 Aug 2022, 12:22
Eu não entendi. Eu só vejo nomes de países, não cidades. Você diz que há uma cidade por CFP, mas o CFP que termina em 03 tem ESTADOS UNIDOS, BRASIL e JAPAO associados a ele. Seria mais fácil se você mostrasse o resultado desejado.

Re: Somar variaveis Iguais

by flyingDman » 19 Aug 2022, 12:22

Eu não entendi. Eu só vejo nomes de países, não cidades. Você diz que há uma cidade por CFP, mas o CFP que termina em 03 tem ESTADOS UNIDOS, BRASIL e JAPAO associados a ele. Seria mais fácil se você mostrasse o resultado desejado.

Re: Somar variaveis Iguais

by thalesduarte » 19 Aug 2022, 12:04

Amigo, boa tarde.

Se eu quiser colocar um terceiro parametro, como posso fazer o for retornar isso?

Code: Select all

var =
(
66495756070, 25, BRAZIL
00966776003, 12, ESTADOS UNIDOS
66495756070, 12, JAPAO
00966776003, 27, BRAZIL
66495756070, 12, ESTADOS UNIDOS
00966776003, 62, JAPAO
)
arr := {}
for x,y in strsplit(var,"`n")
	{
	tmp := strsplit(y,", "), nm := tmp.1, cnt := tmp.2
	arr[nm] := !arr.HasKey(nm) ? cnt : arr[nm] + cnt
	}

for k,l in arr
	lst .= k "`t" l "`n"

msgbox % lst
msgbox % arr[66495756070]
Como posso retornar a cidade? junto com o CPF, total e a cidade? (Sempre será 1 cidade por CPF, não será mais de uma)

Re: Somar variaveis Iguais

by thalesduarte » 18 Aug 2022, 12:48

flyingDman wrote:
18 Aug 2022, 12:44
Da mesma forma:

Code: Select all

var =
(
66495756070, 25
00966776003, 12
66495756070, 12
00966776003, 27
66495756070, 12
00966776003, 62
)
arr := {}
for x,y in strsplit(var,"`n")
	{
	tmp := strsplit(y,", "), nm := tmp.1, cnt := tmp.2
	arr[nm] := !arr.HasKey(nm) ? cnt : arr[nm] + cnt
	}

for k,l in arr
	lst .= k "`t" l "`n"

msgbox % lst
msgbox % arr[66495756070]
Muito Obrigado!!
Não entendi muito bem como foi a montagem do código, mas vou utilizar esse código como base para estudos.
Grato pela atenção!
Desejo um ótimo dia! =)

Re: Somar variaveis Iguais

by flyingDman » 18 Aug 2022, 12:44

Da mesma forma:

Code: Select all

var =
(
66495756070, 25
00966776003, 12
66495756070, 12
00966776003, 27
66495756070, 12
00966776003, 62
)
arr := {}
for x,y in strsplit(var,"`n")
	{
	tmp := strsplit(y,", "), nm := tmp.1, cnt := tmp.2
	arr[nm] := !arr.HasKey(nm) ? cnt : arr[nm] + cnt
	}

for k,l in arr
	lst .= k "`t" l "`n"

msgbox % lst
msgbox % arr[66495756070]

Re: Somar variaveis Iguais

by thalesduarte » 18 Aug 2022, 12:42

Olá, muito obrigado pelo retorno!!
Sim, é parecido com isso.

Só que também precisaria para números.
Por Exemplo
Para somar contando com CPFS

Code: Select all

var =
(
66495756070, 25
00966776003, 12
66495756070, 12
00966776003, 27
66495756070, 12
00966776003, 62
)
arr := {}
for x,y in strsplit(var,"`n")
	{
	nm := strsplit(y,", ").1, cnt := strsplit(y,", ").2
	arr[nm] := !arr.HasKey(nm) ? cnt : arr[nm] + cnt
	}

for k,l in arr
	lst .= k "`t" l "`n"

msgbox % k
Como eu poderia fazer isso?

Re: Somar variaveis Iguais

by flyingDman » 18 Aug 2022, 12:13

Bom dia. O que dizer disso?

Code: Select all

var =
(
Thales, 25
Ricardo, 12
Thales, 12
Ricardo, 27
Giovani, 12
Giovani, 62
)
arr := {}
for x,y in strsplit(var,"`n")
	{
	nm := strsplit(y,", ").1, cnt := strsplit(y,", ").2
	arr[nm] := !arr.HasKey(nm) ? cnt : arr[nm] + cnt
	}

for k,l in arr
	lst .= k "`t" l "`n"

msgbox % lst
Você também pode recuperar o total para cada nome individual da seguinte maneira:

Code: Select all

msgbox % arr["thales"]

Somar variaveis Iguais

by thalesduarte » 18 Aug 2022, 11:41

Olá, boa Tarde.

Como faço para somar VARIAS variaveis iguais?

Estou com um script que está gerando Nomes e textos, por exemplo.


Gerando os seguintes dados.

Thales, 25
Ricardo, 12
Thales, 12
Ricardo, 27
Giovani, 12
Giovani, 62

Tendo em vista que o código gera diversos nomes.

Cerca de 500 pessoas.
Como posso fazer isso de forma automáticaw

Como posso fazer para somar os valores com os nomes iguais.

Por Exemplo:

Resultado Total de:
Thales = 37
Ricardo = 39
Giovani = 74

Não consegui ainda achar uma forma de escrever isso no AHK.

Poderiam me dar um help nessa situação?


Seria semelhante a formula SOMASES() DO EXCEL

Grato!

Top