Notifications
Clear all

Referenciar somente número da linha em fórmula

12 Posts
2 Usuários
0 Reactions
1,753 Visualizações
(@aylmer)
Posts: 15
Eminent Member
Topic starter
 

Na célula A1 tenho a fórmula: =CIL12;
Nas células B1 e C1 tenho valores de altura e largura;
Na célula D1 tenho o m² (B1*C1);
E na célula E1, eu precisava de: B1*C1*12 (referente ao CIL12).

Preciso de uma fórmula que referencie somente ao número da linha da fórmula da A1.

Se for CIL6 = *6;
Se for CIL8 = *8;
Se for CIL10 = *10;
Se for CIL12 = *12;

E assim por diante, multiplicando pelo número da linha.

 
Postado : 02/07/2012 7:03 am
(@aylmer)
Posts: 15
Eminent Member
Topic starter
 

Com a fórmula =lin() eu indico a linha em que a fórmula está.
Como citado no exemplo, a célula A1 terá fórmulas como =CIL12. Eu preciso que referencie o 12 da linha da fórmula e não o 1 da linha da célula.

 
Postado : 02/07/2012 8:42 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Veja se isso?

Coloque esta fórmula em E1

Fico no aguardo!

=VALOR(DIREITA(A1;2))*B1*C1
 
Postado : 02/07/2012 8:52 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Aylmer, ainda não entendi o que deseja.
O excel utiliza como sistema de referencia colunas e linhas, e para referenciar-se a uma celula especifica é necessario informar qual a coluna e linha (a celula e o "cruzamento" dessa duas informações). Portanto se informar simplesmente A1=12, vai ser interpretado como 12 é o valor de A1.

 
Postado : 02/07/2012 9:05 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Tente esta

=1*EXT.TEXTO(A1;CORRESP(VERDADEIRO;ÉNÚM(1*EXT.TEXTO(A1;LIN(INDIRETO("1:"&NÚM.CARACT(A1)));1));0);CONT.NÚM(1*EXT.TEXTO(A1;LIN(INDIRETO("1:"&NÚM.CARACT(A1)));1)))*B1*C1

Despois clique na teclas
Fórmulas Matriciais

Ctrl + Shift + Enter

 
Postado : 02/07/2012 9:14 am
(@aylmer)
Posts: 15
Eminent Member
Topic starter
 

Ainda não pude testar as últimas dicas pois tá correria aqui na loja, mas fiz um exemplo do que preciso.

Depois testarei as dicas.

Seu araquivo foi compactado por mim (AlexandreVBA), na próxima infração vc será advertido!!
todos nós precisamos e devemos manter a organização do fórum!!

 
Postado : 02/07/2012 10:34 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Por favor leia as regras!!!!
Nossas Regras:
viewtopic.php?f=7&t=203

Quesito REGRAS
Upload de arquivos
Ja temos mais de 1,5GB em arquivos aqui no Planilhando, e como não geramos $$$, temos que ser austeros no uso da banda e recursos, por isso, segue novas regras pra upload de arquivos:
-Tamanho máximo: 2Mb
-Formato obrigatório: .Zip - .rar - .ice

Att

 
Postado : 02/07/2012 10:44 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Vou concordar com o Reinaldo.
Coloque em E1:

=C1*B1*A1

vc pode escrever os números que quiser em A1, e será multiplicado corretamente.

Matricial para este problema eu já acho demais.
Vc mata formiga com o dedo ou com uma bazooka ? ehehehhee

 
Postado : 02/07/2012 11:58 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Opa...

Faz isso que resolve:

Na célula D1 digite:

=B1*C1*(direita(A1;2)+0)

Quando colocamos em uma mesma célula letras e números, o excel "reconhece" o valor da célula como texto.

A função "ESQUERDA", separa textos, então o "+0" transformará o número do lado da letra em formato um número "calculável", visto que o excel não calcula texto.

Obs.: O 2 é o número de digitos ao lado da palavra "CIL", eu coloquei 2 na fórmula porque no exemplo citado você utilizou "=CIL12". Caso sua tabela for variar muitas vezes em números de vários digitos, você pode utilizar a fórmula abaixo:

=B1*C1*DIREITA(A1;NÚM.CARACT(ESQUERDA(A1;2)))

 
Postado : 04/07/2012 8:42 am
(@aylmer)
Posts: 15
Eminent Member
Topic starter
 

O "direita" e "esquerda" só servem para "cortar" o resultado final.
Seguindo meu exemplo e a função "=B1*C1*(direita(A1;2)+0)" o resultado é 6600, referente a 26600, que seria 10*20*133 e não o 10*20*12, como preciso.

 
Postado : 09/07/2012 12:15 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Agora entendi o problema Aylton, e pensei numa solução, mas só funciona se vc topar quebrar a fórmula de A1 em dois pedaços. A1 e A2.

Exemplo:
Coloque em A1:

=INDIRETO("CIL" & A2)

Coloque em A2:

12

Assim, vc separou o número da fórmula. Se vc constantemente troca a fórmula em A1, e por isso vc quer sempre pegar só o número da linha da célula referenciada na fórmula, agora vc só precisa trocar a linha em A2, ao invés de editar A1.

É uma saída. O exemplo está anexado.
Vou ainda continuar tentando fazer exatamente como você pediu.

 
Postado : 11/07/2012 10:18 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pensei melhor, a melhor alternativa pra fazer exatamente como vc quer, seria criar uma função definida pelo usuário, (UDF), que retornaria a fórmula de uma célula qualquer. Aí sim, vc poderia usar, por exemplo:

=FORMULA(A1)

e o resultado seria "=CIL12"

Daí, vc usaria esta nova função, criada em VBA, numa outra fórmula, assim:

=SUBSTITUIR(FORMULA(A1);"=CIL";"")

isso te devolveria o número 12 da fórmula =CIL12

e vc poderia aí, complementar com suas fórmulas conforme quiser, que seria:

=SUBSTITUIR(FORMULA(A1);"=CIL";"")*B1*C1

Se quiser seguir esta linha, já está anexado. Mas já adianto: seu arquivo passará a ter macros, e sua extensão mudará para XLSM, e pra funcionar, precisará SEMPRE, habilitar as macros.

Vê aí o que achou melhor :)

Valew, Falow !!

 
Postado : 11/07/2012 10:24 pm