Com uma data, como faço para obter o dia da semana (por exemplo, "segunda-feira") em uma célula no Excel?
Com uma data, como faço para obter o dia da semana (por exemplo, "segunda-feira") em uma célula no Excel?
Respostas:
Exemplo simples:
Célula A1: 1/8/2009
Célula B1: = TEXTO (WEEKDAY (A1), "dddd")
Isso, na data especificada, imprimirá o dia correspondente.
Foi isso que você desejou?
A resposta dada acima está funcionando apenas pela fluke porque o Excel considera que 1/1/1900 era um domingo * e, por padrão, o Excel está usando o domingo como primeiro dia da semana para a função Dia da semana.
Na verdade, o que você está calculando nesse método é o dia da semana como um número e, em seguida, formata-o como um dia com base nesse número interpretado como uma data. Por exemplo, se a sua data for 1/2/2003 e você usar a função WEEKDAY, isso resultará em 7 (= sábado). Quando você formata isso como "dddd", está realmente recebendo o nome do dia 7 no Excel desde sua "época", ou seja, 1/7/1900, que é um sábado *. Essa fórmula será quebrada se alguém abrir a opção selecionada para usar o sistema de datas com base em 1904, pois 1/1/1904 não era um domingo, mas uma sexta-feira. (sim, eu sei que quase ninguém usa isso, mas você não deseja criar uma solução que dependa disso, não é?)
Você pode tornar a fórmula mais curta, mais rápida e mais robusta simplesmente usando
=TEXT(A1,"dddd")
Obviamente, você pode apenas formatar as células de data com um formato personalizado, como já sugerido, dependendo se você realmente precisa disso em uma coluna separada ou não. Costumo usar formatos de data como
ddd dd mmm yyyy
por exemplo, sáb 01 fev 2003, para que a data seja explícita, mas também mostre o nome do dia da semana.
O uso de uma segunda coluna e uma função TEXT é essencial se você desejar usar o dia da semana explicitamente em algum lugar da mala direta (por exemplo), da mesma forma para itens como moedas e assim por diante. versão formatada em tela, portanto, independentemente do formato da célula, o Word vê um número horrível. Um campo de texto verdadeiro é passado 'como está' e é exibido corretamente no Word.
* na verdade, é uma segunda-feira, mas o Excel foi escrito para corresponder às datas incorretas no Lotus 1-2-3, que tratavam 1900 como um ano bissexto quando não é.
Outra possibilidade, dependendo do que você deseja fazer com a data posterior, é definir o formato da célula como Personalizado: dddd
=A1
no exemplo da primeira resposta.
Eu descobri que as IF
declarações de aninhamento podem ser complicadas, mas funcionam. Se, no entanto, você quiser economizar um pouco de digitação, tente o seguinte:
=CHOOSE(WEEKDAY(A2), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
Ou, se você precisar de nomes completos:
=CHOOSE(WEEKDAY(A2), "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
Neste exemplo, "A2" pode ser qualquer célula (ou fórmula) que contenha a data em questão. Por exemplo:
=CHOOSE(WEEKDAY(TODAY()), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
imprimiria a abreviação de três letras para o que quer que seja hoje.
você também pode localizar a resposta usando [$ nnn] antes do formato (portanto, o código personalizado é: [$ nnn] dddd; @). mude nnn com o código de idioma apropriado. Eu não tenho a lista, mas de alguma forma, o código em inglês é -409 (e o meu local é -421).
Eu acho que você pode experimentar com o formato Number, alterar o campo de idioma e alterá-lo novamente para o formato personalizado.
Célula A1: 1/8/2009 Célula B1: = A1 e pressione ctrl + 1 (formatar célula), selecione a guia número, clique em personalizado e digite "DDDD" no tipo txtbox
Exibe a data atual
=TEXT(WEEKDAY(MONTH(TODAY())),"dddd")
Exibe a data atual com o texto necessário.
=CHOOSE(WEEKDAY(MONTH(TODAY())), "S-U-N-D-A-Y","M-O-N-D-A-Y","T-U-E-S-D-A-Y","W-E-D-N-E-S-D-A-Y","T-H-R-S-D-A-Y","F-R-I-D-A-Y","S-A-T-U-R-D-A-Y")
A função WEEKDAY pode ser usada em códigos Vba. Por exemplo :
Label1.Caption = WeekdayName(Weekday(TextBox1, 0), False, 0)
O nome do dia é obtido do TextBox1 no exemplo acima. O resultado é "segunda-feira" .
Eu usei essa função quando criei userform sobre a entrada de data na célula ativa com o botão direito do mouse no menu.