37122144 funcoes do excel dicas e truques

32
Formador: VÍTOR PINTO Excel Avançado – Dicas e Truques [1] Excel – Entrada de dados duplicados.Validação. Função CONTAR.SE() Será que é possível arranjar um aviso de cada vez que se colocar informação duplicada numa coluna. Ex : Numa folha de Excel com uma tabela onde apliquei filtros nas colunas. A B 1 12456 José 2 12354 Maria 3 12456 Manuel Portanto, ao introduzir o nº em A3 aparecer um aviso de que aquele numero já estava escrito. O que se pretende será, então o seguinte: Para obter o resultado, podemos optar pela denominada “Validação de Dados” e criar uma fórmula que nos permita saber se o valor digitado já consta no Range estabelecido e, nesse caso, apresentar a mensagem de aviso. Seguem-se os passos a dar: 1. Marca-se o Range pretendido. No caso do exemplo, o Range será A1:A3, devendo iniciar-se a marcação sempre na célula de numeração mais baixa (ex: A1); 2. De seguida, clica-se no menu “DADOS” e escolhe-se o item “Validação de Dados”. 3. De seguida, escolhe-se o tabulador “Definições. É aqui que iremos escolher o critério de validação, no exemplo: “Personalizar” e inserirmos a fórmula: =CONTAR.SE($A$1:$A$3;A1)=1

Upload: felipe-savieto-acorsi

Post on 21-Oct-2015

30 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [1]

Excel – Entrada de dados duplicados.Validação. Função CONTAR.SE()

Será que é possível arranjar um aviso de cada vez que se colocar informação duplicada numa coluna.

Ex : Numa folha de Excel com uma tabela onde apliquei filtros nas colunas. A B 1 12456 José 2 12354 Maria 3 12456 Manuel

Portanto, ao introduzir o nº em A3 aparecer um aviso de que aquele numero já estava escrito.

O que se pretende será, então o seguinte:

Para obter o resultado, podemos optar pela denominada “Validação de Dados” e criar uma fórmula que nos permita saber se o valor digitado já consta no Range estabelecido e, nesse caso, apresentar a mensagem de aviso.

Seguem-se os passos a dar:

1. Marca-se o Range pretendido. No caso do exemplo, o Range será A1:A3, devendo iniciar-se a marcação sempre na célula de numeração mais baixa (ex: A1);

2. De seguida, clica-se no menu “DADOS” e escolhe-se o item “Validação de Dados”.

3. De seguida, escolhe-se o tabulador “Definições. É aqui que iremos escolher o critério de validação, no exemplo: “Personalizar” e inserirmos a fórmula:

=CONTAR.SE($A$1:$A$3;A1)=1

Page 2: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [2]

4. Depois, para termos o aviso de erro, escolhemos o tabulador com o mesmo nome

Assim, se digitarmos o valor duplicado em A3, irá aparecer a mensagem acima apresentada.

De notar que, na mensagem há duas opções relevantes: Ou para continuar (SIM) ou para não continuar (NÃO).

Se clicar,os em SIM:

Page 3: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [3]

o resultado será o da aceitação do valor duplicado

Se for NÃO, o resultado será a activação da célula em causa, para permitir a correcção

Excel – As funções SE() e OU()

Numa coluna tenho várias leituras, uma por cada dia:

Dia Leitura Consumo Dia 1 150 2 160 10 3 165 5

O "problema" é que depois posso ter dia(s) sem leituras e isso baralha as contas do consumo:

Dia Leitura Consumo Dia 1 150 2 160 10 3 165 5 4 -165 5 180 180

Page 4: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [4]

Existe alguma maneira "simples" de dar a volta à questão? É que posso ter um dia ou vários sem serem preenchidos (a solução básica é dizer ao utilizador quando não há leitura para copiar a anterior mas estava a ver se conseguia dar a volta à questão).

Bom, o que se pretende é:

Para se conseguir este efeito, reflectido na coluna C (Consumo/Dia), a partir dos dados inseridos na coluna B (Leitura), procurou-se criar uma tabela na coluna E (a partir de E2), como segue:

Esta tabela, na coluna E, serve para ir dando os valores acumulados diariamente, iniciando em E2, como sendo a leitura do final do mês anterior. A coluna B, será a coluna onde serão inseridos os valores correspondentes às leituras diárias. Assim, se, por exemplo, no dia 3 a leitura for zero (0) ou sem valor (como no dia 8), sendo o consumo do dia igualmente zero (0), a tabela terá que reflectir que o valor acumulado se mantém o mesmo do(s) dia(s) anterior(es) (no exemplo, 162). Então, no dia 4, ao fazer-se uma leitura, que será sempre superior ao valor acumulado, irá dar um valor de

Page 5: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [5]

consumo igual à diferença entre o último dia com consumo e o presente (no exemplo, 8), passando, assim, na tabela de referência, de 162, para 170 (162 + 8 = 170).

Agora, vamos às fórmulas necessárias para se conseguir o resultado pretendido:

Na coluna C, começando em C3 e depois copiando a fórmula até ao dia pretendido (normalmente 30 ou 31 – no exemplo, apenas até C12 – dia 10):

=SE(OU(E2=FALSO;B3=0);0;B3-E2)

Na coluna E, começando em E3 e depois copiando a fórmula até ao dia pretendido (normalmente 30 ou 31 – no exemplo, apenas até E12 – dia 10):

=SE(B3=0;-(B3-E2);B3)

Excel – Somar sob determinados critérios

“ Se eu digitar a seguinte fórmula numa célula = CONTAR.SE(E5:K5;”P”) e se existir algum “P” no range E5:K5, a célula é contada.

E se eu quiser contar nesse mesmo range as células que contenham “P”, “T” e “L”?

Vejamos o exemplo:

O resultado será 2.

Mas, se incorporarmos o “T” e o “L”, o resultado será 4.

Novamente o exemplo, com a fórmula adequada ao resultado pretendido.

Page 6: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [6]

Excel – Localizar e Substituir

“ Preciso saber como alterar o conteúdo de um conjunto de células mas tenho a seguinte dificuldade:

Numa célula ou em várias tenho, por exemplo =soma(a5:a15), quero alterar o "5" para "6" passando a ter =soma(a6:a15) e o que obtenho é =soma(a6:a16), como posso apenas alterar o primeiro "5" sem mexer no segundo "5"?”

Para obstar tal situação, teremos que nos socorrer de algum expediente.

Assim, para obtermos o componente Range “A15”, sem que o mesmo possa ser alterado quando estamos a efectuar a substituição do algarismo “5”, podemos digitar o seguinte, por exemplo, na célula E200: ="A"&14+1, o que irá mostrar o conteúdo da célula como “A15”, apesar de não ter nenhum algarismo “5”:

Então, se pretendermos ter a soma(A5:A15) sem termos o segmento do range “A15”, mas sim, em sua substituição, o conteúdo de E200 (que será A15), digitaríamos, por exemplo em E5: =SOMA(A5:INDIRECTO(E200))

O resultado esperado seria 14.

Agora, se pretendermos utilizar o “Localizar e Substituir”:

Page 7: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [7]

Teríamos, então, o resultado esperado: 13

Ou seja, quando for para substituir "fórmulas" (em Opções>>), de 5 para 6, vai dar o resultado que se teria com a alteração da fórmula para

=SOMA(A6:INDIRECTO(E200)), ou seja, o mesmo que SOMA(A6:A15).

Excel – Formatação de células

“Copiei uma tabela da Net e na coluna que tem 1-1 ou 1-2 o Excel assume como um de Janeiro e um de Fevereiro respectivamente. Quando tento formatar a célula para texto, para que fique na forma original, ele coloca um numero 32 mil e qualquer coisa... Alguém pode ajudar?”

Vejamos o exemplo dado:

Page 8: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [8]

Se tentarmos formatar as células como texto, irá aparecer o seguinte:

Então, para ultrapassarmos a situação e para que consigamos ter, por exemplo, nas células B1, B2 e B3, respectivamente os dados pretendidos a partir do conteúdo das células A1, A2 e A3, ou seja, 1-1, 1-2 e 1-3, para que fique assim:

Devemos construir a seguinte fórmula em B1, copiando-a até B3:

=TEXTO(A1;"d-m")

Excel – As Funções SE(), ARRED() e PROCV()

Ainda a propósito do post anterior, foi colocada a questão de encontrar uma data que esteja entre a Data inicial e a Data final (por exemplo, 14/03/2007-11/05/2008) e depois partir daí para a contagem dos dias até à data final (que poderá estar também entre uma data inicial e final mais abaixo).

A imagem do que se pretende:

Page 9: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [9]

Ou seja,

Campos a preencher:

- Data de início (será 14/03/2007) - D2 - Data de fim (será 11/05/2008) -D4 - Capital (será 1000) - E2

Resultado pretendido:

De 14/03/2007 a 30/06/2007 - 109 dias à taxa de 0,1058 = 31,60 De 01/07/2007 a 31/12/2007 - 184 dias à taxa de 0,1107 = 55,80 De 01/01/2008 a 11/05/2008 - 132 dias à taxa de 0,1120 = 40,50 -------------------------------------------------- Total de juros: 127,90

Então, com a utilização da função PROCV(), poderemos chegar ao resultado pretendido.

Assim, teremos:

Em F2:=SE(D2="";ARRED(C2*((B2-A2)+1)/365*$E$2;2);ARRED(PROCV(D2;$A$2:$C$4;3)*((B2-D2)+1)/365*$E$2;2))

Em F3:=SE(D3="";ARRED(C3*((B3-A3)+1)/365*$E$2;2);ARRED(PROCV(D3;$A$2:$C$4;3)*((B3-D3)+1)/365*$E$2;2))

Em F4:=SE(D4="";ARRED(C4*((B4-

A4)+1)/365*$E$2;2);ARRED(PROCV(D4;$A$2:$C$4;3)*((D4-A4)+1)/365*$E$2;2))

Page 10: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [10]

Excel - A Função ROUNDDOWN() ou ARRED.PARA.BAIXO()

Por mail, fizeram-me a seguinte pergunta (adaptada): "...gostava de incluir a informação ao utilizador quais as medidas a cortar de uma barra para maior aproveitamento, por exemplo: tenho 5 cortes com 112, 1 com 30, 2 com 4 etc etc.. as barras têm 6 metros e a intenção era tirar o maior aproveitamento no corte, para as sobras serem o menor possivel, isto é, escolher valores cuja soma fosse o mais perto possivel dos 6 metros, a mensagem ao utilizador fosse por exemplo: de uma barra cortas 5 com 112 e uma com 30, na outra cortas tantas com tanto e outras ou outra com tanto etc..."

Bom, vejamos a imagem da possível resolução do problema:

As fórmulas:

Em E5: =ARRED.PARA.BAIXO((C1/C5);0)

Em E6: =SE(C6="";"";ARRED.PARA.BAIXO((I5/C6);0))

Em E7: =SE(C7="";"";ARRED.PARA.BAIXO((I6/C7);0))

Em I5: =C1-(C5*E5)

Em I6: SE(C6="";"";I5-(C6*E6))

Em I7: SE(C7="";"";I6-(C7*E7))

Mas, e se não quisermos, no exemplo, cortar as 5 barras da medida 112, mas apenas 4? Como faríamos para, aceitando a alteração, harmonizar o número de cortes relativos às outras medidas?

Vejamos então, o exemplo do que agora referi:

Page 11: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [11]

Eis as fórmulas, referentes à coluna I:

Em I5: =SE(F5="";C1-(C5*E5);C1-(C5*F5))

Em I6: =SE(F6="";SE(C6="";"";I5-(C6*E6));SE(C6="";"";I5-(C6*F6)))

Em I7: =SE(F7="";SE(C7="";"";I6-(C7*E7));SE(C7="";"";I6-(C7*F7)))

Excel – Novamente a Função ARRED()

“A tabela abaixo representa valores de taxas de juros aplicáveis nas datas indicadas, isto é, entre as datas indicadas aplicam-se as taxas que estão à frente.

A B C 1 01/01/07 30/06/07 0,1058 2 01/07/07 31/12/07 0,1107 3 01/01/08 30/06/08 0,1120 4 01/07/08 31/12/08 0,1120

(Em que A= Data de Início Em que B= Data de Fim Em que C= Taxa a Aplicar) Se um documento for emitido em 14/03/07 e contar juros até 11/05/08, é possível obter o valor dos juros na totalidade.

Eu pretendia obter no final valores parcelares, assim: De 14/03/2007 a 30/06/2007 - 109 dias à taxa de 0,1058 = 31,60 De 01/07/2007 a 31/12/2007 - 184 dias à taxa de 0,1107 = 55,80 De 01/01/2008 a 11/05/2008 - 132 dias à taxa de 0,1120 = 40,50 “

Representemos então, o que se pretende:

Page 12: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [12]

Para calcularmos o número de dias entre as duas datas que contêm a mesma taxa de juro a aplicar, utilizaremos a seguinte fórmula:

Em E1: =(B1-A1)+1 Em E2: =(B2-A2)+1 Em E3: =(B3-A3)+1

(A formatação destas células deverá ser “Número”, sem casas decimais)

E agora, para calcularmos os valores dos juros, de forma parcelar, teremos:

Em F1: =ARRED(C1*E1/365*1000;2) Em F2: =ARRED(C2*E2/365*1000;2) Em F3: =ARRED(C3*E3/365*1000;2)

(A formatação destas células deverá ser “Número”, com 2 casas decimais)

Excel - VLOOKUP(), RIGHT() & VALUE()

"Como posso fazer com que, digitando uma sequência de 3 algarismos numa determinada célula da Folha1, por exemplo, em A1, apareça, na coluna B, o resultado da pesquisa na Folha2, em que as células da coluna B contêm determinados números, cujos primeiros 3 algarismos, a contar da esquerda, podem ou não conter os algarismos digitados, na mencionada célula A1 da Folha1. Especificidade: não existe, na tabela da folha2, nenhum número que termine em 0 [zero] (ex: 12500)".

Vejamos o exemplo:

Resultado que se pretende na Coluna B da Folha1, ao inserir em A1 os algarismos 125:

Page 13: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [13]

A pesquisa a ser efectuada, na Folha2, procurando pelos 3 algarismos digitados, devendo dar como resultado, todos os números que, na Coluna B, contenham os algarismos digitados na Folha1, na célula A1:

Assim, teremos que digitar, na célula B1 fa Folha 1, a seguinte fórmula:

VLOOKUP(A1;Sheet2!$A$1:$B$10;2) Por sua vez, na célula B2, digitamos a seguinte fórmula: =IF(B1="";"";IF(RIGHT(B1;1)=1;"";IF(VLOOKUP($A$1;Sheet2!$A$1:$B$10;2)=

$B$1;$B$1-1))) E, para terminar, digitamos na célula B3, copiando para tantas células dessa coluna

(B4, B5, B6, etc...), quantas aquelas que sejam necessárias, para mostrar todas as ocorrências que contenham os 3 algarismos mencionados:

=IF(B2="";"";IF(VALUE(RIGHT(B2;1))=1;"";IF(VLOOKUP($A$1;Sheet2!$A$1:

$B$10;2)=$B$1;$B$1-VALUE(RIGHT(B2;1)))))

Excel - VLOOKUP() "Numa folha e na célula B1 temos um valor que é um somatório de valores de

células. Ora, na célula A1 pretendia o cálculo automático de um valor percentual em função do resultado obtido em B1. O valor percentual é diferente conforme o intervalo de valores de referência (os valores de referência e respectivas percentagens encontram-se nas colunas D, E e F). Será possível? Como?

O exemplo:

Como possível solução, a seguinte fórmula, em C1, para obter a percentagem em

função do valor contido em B1:

=VLOOKUP(B1;D1:F3;3)

Page 14: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [14]

e em A1, como resultado pretendido: =B1*C1

Excel - Procurar com 2 variáveis - Index & Match() "Tenho uma tabela em que uma determinada combinação de 2 variáveis,

corresponde a um código. Numa outra tabela, onde tenho estas variáveis, preciso colocar o código que corresponde a cada combinação de 2 variáveis. Preciso de preencher a coluna M com o código da 1ª tabela associada a A + B (exemplo: B5=a, C5=2 - Código: III -, a que corresponde o conjunto das variáveis C + D( exemplo: G6 + H6 -- resultado em M6: III).

O exemplo, nas imagens:

Se alterar em H6, de 2 para 3, então em M6 o resultado será IV:

A fórmula, em M6 (copiada para as células pretendidas da coluna M):

{=INDEX($D$2:$D$10;MATCH(G6&H6;$B$2:$B$10&$C$2:$C$10;0))} NOTA: Ctrl + Shift + Enter na célula activa, para obter como um array,ou seja, com

{}.

Page 15: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [15]

Excel - SUMPRODUCT()

Se pretendermos verificar o número de ocorrências num determinado Range, sejam as ocorrências "MG", "VM", "PR" e "MD", como no seguinte exemplo:

podemos utilizar a seguinte fórmula, adaptada a cada uma das ocorrências:

="MG" & " " &SUMPRODUCT(--(RIGHT(A1:F2;2)="MG")) ="MV" & " " &SUMPRODUCT(--(RIGHT(A1:F2;2)="VM")) ="PR" & " " &SUMPRODUCT(--(RIGHT(A1:F2;2)="PR")) ="MD" & " " &SUMPRODUCT(--(RIGHT(A1:F2;2)="MD"))

Excel - SUMPRODUCT(), SUM() ou SUMIF()? "Tenho uma folha em que na coluna A, tenho datas no seguinte formato"06-09-

2007", na coluna B e na coluna C tenho valores. Não estou a conseguir, mediante a utilização da formula=SUMIF(A1:A1000;MONTH(6);B1:B1000), somar todos os valores da coluna B correspondentes ao mês 6" .

Possível solução: =SUMPRODUCT((MÊS(A1:A1000)=6)*B1:B1000)

Alternativa:

{=SUM((MONTH(A1:A1000)=6)*(B1:B1000))}'como um array, ou seja com CTRL+SHIFT+ENTER para obter {}

Uma terceira possível solução:

=SUMIF(A1:A1000;">="&DATE(2007;6;1);B1:B1000)-SUMIF(A1:A1000;">"&DATE(2007;6;30);B1:B1000)

Page 16: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [16]

Excel - Data Validation, Max(), Countif(), Match() e Row()

"Estou a criar um registo de membros... contudo, dado que o seu número facilmente poderá chegar aos 50, corro o risco de criar entradas duplicadas. Assim, e depois de mais uma visita ao Exceler encontrei um post sobre o assunto [post de 2004-12-16]. Mas, a solução apresentada não me pareceu funcionar com texto... Agradeço, se possível, a informação de se será possível aplicar ou não a texto... "

Várias soluções se podem apresentar.

Uma delas, por exemplo, será a utilização de "Data Validation". No exemplo seguinte, sempre que se escrever numa das células do Range um conteúdo duplicado, vai dar uma mensagem:

Como fazer:

Page 17: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [17]

Outra possibilidade, é utilizar uma fórmula [com o mesmo Range de exemplo (D1:D10)] - na célula E1:

IF(MAX(COUNTIF($D$1:$D$10;$D$1:$D$10))>1;"Duplicado";"") e copiando até ao fim do range [no exemplo,E1:E10] - Neste caso, vai dar TODAS as entradas duplicadas no range D1:D10, ou seja, considera entrada duplicada as duas entradas:.

Outra possibilidade ainda será, se se pretender que apenas as entradas duplicadas sejam consideradas, então teremos, no exemplo, em F1:

=IF(D1="";"";IF(MATCH(D1;D$1:D$10;0)<ROW(D1);"Duplicado!";"")) e copiando de F1 até F10:

Page 18: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [18]

Excel - Left(), Mid() & Right()

"Como hei-de fazer para que, partindo do seguinte conteúdo em duas células: 20+500- e 18+200, tenha como resultado numa terceira célula, o seguinte: 2+300 e, sempre que altere um destes valores parcelares, no mesmo formato, o resultado reflicta essa alteração?"

O exemplo:

A fórmula:

=LEFT(A1;2)-LEFT(B1;2)&"+"&MID(A1;4;3)-RIGHT(B1;3)

Funções LEFT() e RIGHT(), LEN() e FIND() Se pretendermos extrair um determinado conteúdo de uma célula que contém letras

e números, como no exemplo:

podemos utilizar, no primeiro caso, as Funções LEFT() e FIND() e no segundo, as Funções RIGHT(), LEN() e FIND():

Page 19: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [19]

Vários métodos para um mesmo fim... Tomemos, por exemplo, em A1, o seguinte Nome + Apelido: "Jorge Rodrigues" Para inserir o Nome numa outra célula: =LEFT(A1;FIND(" ";A1)-1) ou =LEFT(TRIM(A1);FIND(" ";TRIM(A1))-1) Para inserir o Apelido: =RIGHT(A1;LEN(A1)-FIND(" ";A1)) ou =MID(A1;FIND(" ";A1)+1;256) ou =RIGHT(A1;LEN(A1)-SEARCH(" ";A1;1)) ou =MID(TRIM(A1);FIND(" ";TRIM(A1))+1;LEN(A1))

Excel: As Funções LEN() e SUBSTITUTE() Quantos caracteres "." tem na célula A1 cujo conteúdo é 01.02.03.04? A célula A1

neste caso é do tipo texto. O resultado deveria ser 3. Utilizando as Funções LEN() e SUBSTITUTE(), obtém-se o resultado desejado:

A fórmula em B1: =NÚM.CARACT(A1)-NÚM.CARACT(SUBSTITUIR(A1;".";""))

Calcular diferença entre horas, com resultado em minutos Se pretendermos efectuar um cálculo para obter a diferença entre dois horários e

sabermos o resultado em minutos, podemos utilizar, por exemplo, os seguintes métodos:

Page 20: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [20]

E se a hora final for inferior à hora inicial, como no caso de a hora final ser já depois da meia-noite? Aqui, podemos utilizar a seguinte fórmula:

Page 21: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [21]

Excel: Ainda a Diferença entre duas datas - resultado em semanas e dias Suponhamos que temos duas datas: 01-01-2005 e 23-01-2005. Se pretendermos

saber quantas semanas estão contidas entre estas duas datas e quantos dias remanescem, verificamos que são 3 semanas (7x 3 = 21), restando 1 dia.

Numa abordagem um pouco simplista, mas demasiado elaborada (só para melhor compreensão), podemos criar várias fórmulas tendo em consideração o que atrás foi escrito. Então, teríamos:

em B2:

=DATEDIF(A1;A2;"d")/7, ou seja, 3 semanas [ à Função DATEDIF() corresponde em português a Função DATADIF() ]

em B3:

=DATEDIF(A1;A2;"d"), ou seja, a totalidade de dias - 22 dias E o resultado seria:

em B6: =INT(B2)&","&INT(B3)-INT(B2)*7, ou seja: 3,1 (3 semanas e 1 dia) Mas, se quisermos ser menos elaborados, mas com uma fórmula mais correcta, então podemos utilizar as Funções INT() [ em português é a mesma) e MOD() (RESTO() em português ]:

Page 22: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [22]

em B6: =INT((A2-A1)/7)&","&MOD(A2-A1;7)

Para finalizar, se quisermos ter uma apresentação mais cuidada, podemos escrever a fórmula do seguinte modo:

em B6:

=IF(MOD(A2-A1;7)=0;INT((A2-A1)/7)&" semana(s)";INT((A2-A1)/7)& _ " semana(s) e "&MOD(A2-A1;7)&" dia(s)")

Excel: Funções de data Um calendário básico:

Em O6 - o mês Em O7 - o ano Em M9: =WEEKDAY($O$6&"-"&$O$7) Em N9: =M9+1

Page 23: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [23]

Em O9: =N9+1 O mesmo até S9. Para mostrar o dia corrente noutra cor, como no exemplo, marca-se a tabela com os 31 algarismos correspondentes aos dias do mês:

Escolhe-se Formatar Condicionalmente:

e, no terceiro campo da condição, coloca-se a fórmula: =DAY(TODAY()) Agora, para que os dias do mês coincidam com o mês em causa, ou seja, meses com 30 dias, meses com 31 dias e Fevereiro com 29 ou 28 dias, conforme seja ano bissexto ou comum, teremos que construir a seguinte fórmula, no exemplo, em S6: =DAY(DATE(O7;MONTH(DATEVALUE(O6&"-"&O7))+1;0)) Por último, na célula onde deve ficar o algarismo 29, ou seja, no exemplo, em M14, colocamos a seguinte fórmula: =IF(S6=28;"";29) Na célula correspondente a 30: =IF(S6<30;"";30) E na célula correspondente a 31: =IF(S6=31;31;"")

Excel: Ainda funções de data No post anterior foi apresentado um modelo básico de calendário. Hoje, utilizando esse

mesmo calendário, mostro como se pode incluir o número da semana correspondente, embora não seja totalmente correcto, porque não se está a tomar como início da semana o domingo, mas sim e sempre, os dias 1,8,15,22 e 29 do mês em referência:

Page 24: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [24]

A Fórmula em L10 (com Copy & Paste até L14): =DAYS360($M$4;(M10&"-"&$O$6&"-"&$O$7))/7+1-5400 Nota: A célula M4 é uma célula vazia, apenas representando a data de início para a Função Days360(), ou seja, o valor 0 (zero):

Excel: Somar dois tipos de ocorrências Se pretendermos somar dois tipos de ocorrências, como no exemplo

Page 25: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [25]

podemos criar uma pequena fórmula, utilizando as Funções SUM() e COUNTIF(), esta última, com um array. O Código: =SUM(COUNTIF(A1:A20;{"bom";"muito bom"}))

Excel: Ainda a Função SUMPRODUCT() Se pretendermos "contar" uma determinada ocorrência, mas que obedeça, por

exemplo a um critério, podemos utilizar a Função SUMPRODUCT() ou SOMARPRODUTO(). No exemplo, pretendemos contar o número de vezes em que o nome "joão" aparece na coluna A, obedecendo ao critério de lhe corresponder o algarismo 2 na coluna B:

Excel: Utilização da Função SUBTOTAL()

Como se pode verificar, ao utilizar-se a Função para dar o Total, pode mencionar-se o Range que inclui os subtotais, porque estes são, pura e simplesmente, ignorados!

Excel: Formatação Condicional Se pretendermos inserir valores ou texto em determinadas células pré-definidas, para uma

maior comodidade, podemos colori-las, de modo a saber que se encontram vazias e, por isso,

Page 26: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [26]

mais fáceis de serem identificadas. Tomemos o exemplo:

Depois de inserirmos valores, as células deixam de estar coloridas, voltando a ter coloração se ficarem novamente vazias:

O método, é a utilização da Formatação Condicional, no exemplo nas células A1,B2,C3 e D4, associada à função ISBLANK() ou É.CÉL.VAZIA(), como mostra a figura seguinte, ou seja ISBLANK(A1), ISBLANK(B2) etc.:

Excel: As Funções SUMPRODUCT() e TEXT(). Utilização com a Função ISBLANK() No dia 2 de Fevereiro, apresentei um post com uma fórmula que junta as funções

Sumproduct()e Text(), para verificar a quantidade de ocorrências contidas num determinado Range. No entanto, a fórmula apenas funciona correctamente (problema só em relação a "Jan") se o Range estiver completamente preenchido; se houver células em branco, estas são igualmente contadas como se contivessem a ocorrência "Jan", o mesmo não acontecendo com outras ocorrências, como se pode verificar no exemplo seguinte:

Page 27: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [27]

A fórmula a executar, para que a contagem das ocorrências seja correcta (não contando, por isso, com as células vazias como fazendo parte da ocorrência), é a seguinte, agora com a incorporação da Função IsBlank():

Excel: Múltiplos CountIf() Se pretendermos contar as ocorrências contidas num determinado Range ( no exemplo

C1:C13) e que obedeçam a critérios estabelecidos em certas células (no exemplo, as células A1 e B1), então podemos inserir, p. ex. em A3, a seguinte Fórmula, com a utilização de múltiplos COUNTIF() [ou CONTAR.SE()]: =COUNTIF(C1:C13;A1)+COUNTIF(C1:C13;B1)

Page 28: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [28]

Excel: Formatação Condicional, com Fórmula como condição A título de exemplo, uma grelha de números e de estrelas, sendo que A1:E1 são os 5

números saídos e F1:G1, as 2 estrelas saídas:

A formatação condicional para a grelha de números, partindo do princípio que os campos a verde correspondem aos números escolhidos (no exemplo, E6 corresponderá ao nº 4, E8 ao 16, etc):

A formatação condicional para a grelha de estrelas, partindo do princípio que os campos a azul correspondem aos números escolhidos (no exemplo, C16 corresponderá ao nº 2 e E16 ao 7):

Page 29: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [29]

Excel: Formatos personalizados - O formato nulo O formato nulo (;;;) oculta o conteúdo da célula A2:

Antes da formatação:

Depois da formatação:

Excel: Formatação personalizada - Cor Na formatação personalizada, podem seleccionar-se até quatro cores (das oito cores possíveis: Azul, Vermelho, Amarelo, Verde, Branco, Preto, Magenta e Turquesa).

No exemplo, seleccionaram-se as quatro primeiras(Azul para valores positivos, Vemelho para

valores negativos, Amarelo para valores zero e Verde para texto):

Page 30: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [30]

Formatação personalizada - Cor II No entanto, pode usar-se mais do que oito cores, através das 56 cores da palette de

escolhas de cor, utilizando o tipo [Color#], em que # se refere a um número entre 1 e 56 da palette (1= 1ª cor da lista - Preto; 2= 2ª cor da lista - Branco ... 56= última cor da lista - Cinzento Escuro) e utilizar-se igualmente símbolos, como seja o adicionar (+) e o subtrair (-) Exemplo:

Page 31: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [31]

Exemplo da Função CONTAR.VAZIO() A Função CONTAR.VAZIO() [COUNTBLANK()] conta as células vazias num determinado

Range:

Exemplo das Funções CONCATENAR() e VALOR()

Funções de Texto Exemplos da utilização das Funções de texto ESQUERDA(), SEG.TEXTO() e DIREITA()

Somar Colunas

Page 32: 37122144 Funcoes Do Excel Dicas e Truques

Formador:

VÍTOR PINTO Excel Avançado – Dicas e Truques [32]

Para somar Colunas sem a preocupação de as limitar, pode utilizar-se a seguinte fórmula: =SOMA(B:C) (port.)

Somar Linhas

É claro que para somar Linhas o método é semelhante, ou seja: =SOMA(3:4) (port)

Excel - O problema do aparecimento de: "#/DIV0!" Às vezes, no EXCEL, quando se pretende efectuar uma divisão, o dividendo é menor que o

divisor, ou a célula que funciona como dividendo, porque fazendo parte de uma fórmula, encontra-se vazio. Neste caso, aparecerá na célula do resultado aquela mensagem abominável que todos nós conhecemos:"#/DIV0!". Solução:

Utilizando uma fórmula na célula do resultado: Ex - assumindo que a célula do resultado é C1, que a célula do dividendo é A1 e que a célula do divisor é B1, teremos: =SE(É.ERRO(A1/B1);"";A1/B1)