Página 1 de 1

Procura de vários valores na mesma célula e atribuição de um valor

Enviado: 05 Ago 2021 às 08:18
por OCR
Bom dia amigos!
Tenho um formulário que recebe a indicação de vários tratamentos prescritos pelo médico, cada tratamento tem um código associado, como usei o form do Google, os registos de um utente ficam todos na mesma célula podem estar até seis tratamentos na forma: Tratamento1[Código], Tratamento2[Código], Tratamento3[Código], (...) etc... nesse mesmo livro de Excel tenho uma outra folha que tem esses códigos em que cada código tem um preço. Não estou a conseguir fazer o somatório dos tratamentos tendo em conta que estão todos os valores na mesma célula.

Será que me podem ajudar?
Desde já obrigada!

Re: Procura de vários valores na mesma célula e atribuição de um valor

Enviado: 05 Ago 2021 às 09:10
por osvaldomp
Olá, @OCR .

Sugestão: disponibilize diretamente aqui no fórum uma amostra do seu arquivo Excel com algumas células (máximo 5 células representativas) que contenham múltiplos códigos e coloque manualmente o resultado esperado para cada exemplo com as necessárias explicações na própria planilha.

Re: Procura de vários valores na mesma célula e atribuição de um valor

Enviado: 05 Ago 2021 às 11:21
por OCR
Exemplo.xls
Obrigada pela resposta. Segue um exemplo do que pretendo.
Obrigada!

Re: Procura de vários valores na mesma célula e atribuição de um valor

Enviado: 05 Ago 2021 às 16:38
por osvaldomp
Olá, @OCR .

Segue uma solução via UDF, veja se aproveita.

Instale uma cópia da UDF abaixo em um módulo comum, assim:
1. copie a UDF daqui
2. a partir da planilha em que estão os dados tecle 'Alt+F11' para acessar o editor de VBA
3. no menu do editor / Inserir / Módulo
4. cole a UDF na janela em branco que vai se abrir
5. feito! 'Alt+Q' para retornar para a planilha
6. em Dados!B2 cole ~~~> =trat(A2) e arraste para baixo
Código: Selecionar todos
Function Trat(r As Range)
 Dim f As Long, s As Long, k As Long, cód As String, tot As Double
  For k = 1 To Len(r.Value) - Len(Replace(r.Value, "[", ""))
   f = InStr(s + 1, r.Value, "["): s = InStr(f + 1, r.Value, "]")
   cód = Mid(r.Value, f + 1, s - f - 1)
   tot = tot + Evaluate("INDEX(Preçario!A:A,MATCH(""" & cód & """,Preçario!B:B,0))")
  Next k
  Trat = tot
End Function
#
obs.
1. considerei que em Preçario!B3 o conteúdo é 1528.2 e não 528.2 como você colocou
2. em B2 a UDF irá retornar 4,34 e não 4,71 como você colocou

Re: Procura de vários valores na mesma célula e atribuição de um valor

Enviado: 06 Ago 2021 às 05:42
por OCR
Obrigada pela rápida resposta, a questão é que tenho o ficheiro numa planilha do google e não suporta VBA...

Re: Procura de vários valores na mesma célula e atribuição de um valor

Enviado: 06 Ago 2021 às 09:08
por osvaldomp
Então eu sugiro que você procure ajuda em um fórum especializado em Planilhas Google.