2009-09-15 23:04:12 +0000 2009-09-15 23:04:12 +0000
33
33

Como é que eu consigo o nome do dia para uma célula em Excel?

Tendo em conta uma data, como é que eu entro o dia da semana (por exemplo, “segunda-feira”) numa célula em Excel?

Respostas (9)

54
54
54
2009-09-15 23:06:40 +0000

Exemplo simples: célula

A1: 1/8/2009 B1 célula: =TEXT(WEEKDAY(A1), “dddd”)

Isto imprimirá, para a data dada, o dia correspondente.

É isto que desejou?

19
19
19
2009-11-02 10:43:55 +0000

A resposta dada acima só funciona por acaso porque o Excel pensa que 1/1/1900 foi um Domingo* e por defeito o Excel usa o Domingo como primeiro dia da semana para a função de Dia da Semana.

O que está de facto a calcular nesse método é o dia da semana como um número, depois formatando-o como um dia com base nesse número interpretado como uma data. Por exemplo, se a sua data for 1/2/2003 e utilizar a função WEEKDAY, isto resulta em 7 (=Sábado). Quando depois formatar isto como “dddd”, estará de facto a receber o nome do dia 7 no Excel desde a sua “época”, ou seja, 7/1/1900, que por acaso é um sábado*. Esta fórmula será quebrada se alguém a abrir e tiver a opção seleccionada para utilizar o sistema de datas baseado 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 não quer construir uma solução que se baseie nisso, pois não?)

Pode tornar a fórmula mais curta, mais rápida e mais robusta simplesmente usando

=TEXT(A1,"dddd")

Claro que pode simplesmente formatar as próprias células de data com um formato personalizado, como já sugerido, dependendo se realmente precisa disto numa coluna separada ou não. Utilizo frequentemente formatos de data tais como

ddd dd mmm yyyy

para dar eg Sat 01 Fev 2003* pelo que a data é explícita mas mostra também o nome do dia da semana.

Usando uma segunda coluna e uma função TEXT é essencial se se quiser usar o dia da semana explicitamente algures numa fusão de correio (por exemplo), de modo semelhante para coisas como moedas e assim em Excel > a fusão do Word passa o valor real subjacente armazenado em vez da versão formatada no ecrã, 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 correctamente no Word.

* na verdade é uma segunda-feira mas o Excel foi escrito para corresponder às datas incorrectas no Lotus 1-2-3 que tratou 1900 como um ano bissexto quando não o é.

7
7
7
2009-09-15 23:16:11 +0000

Outra possibilidade, dependendo do que se pretende fazer com a data a seguir, é definir o formato da célula para Personalizado: dddd

5
5
5
2012-12-08 18:02:03 +0000

Descobri que a nidificação de declarações IF pode ser incómoda, mas funciona. Se, no entanto, quiser guardar um pouco de dactilografia, pode tentar isto:

=CHOOSE(WEEKDAY(A2), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")

Ou, se 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 abreviatura de três letras para o que quer que seja hoje.

1
1
1
2014-06-18 05:49:40 +0000

A1 célula: 1/8/2009 Célula B1: =A1 depois prima ctrl+1 (formatar célula) seleccione o separador número, clique em customizado e depois escreva “DDDD” no tipo txtbox

1
1
1
2013-10-10 15:52:11 +0000

pode também localizar a resposta usando [$nnn] antes do formato (por isso o código personalizado é: [$nnn]dddd;@). mudar nnn com o código da língua apropriada. não tenho a lista, mas de alguma forma, o código em inglês é -409 (e o meu local é -421).

penso que se pode experimentar o formato Number, alterar o campo da língua, depois alterá-lo de volta para o formato personalizado.

0
0
0
2016-06-29 04:04:28 +0000

Formatar Células - Data - Tipo de Calendário (seleccione Gregorian English) - Tipo (a secção tem o formato requerido quarta-feira, 14 de Março de 2001)

0
0
0
2013-04-03 13:45:00 +0000

Apresenta a data actual

=TEXT(WEEKDAY(MONTH(TODAY())),"dddd")

Apresenta a data actual com o texto requerido.

=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")
0
0
0
2016-11-29 17:45:23 +0000

A função WEEKDAY pode ser utilizada nos Códigos Vba . Por exemplo :

Label1.Caption = WeekdayName(Weekday(TextBox1, 0), False, 0)

O nome do dia é obtido a partir do TextBox1 no exemplo acima. O resultado é “Segunda-feira ”.

Utilizei esta função quando criei o formulário de utilizador sobre a entrada da data na célula activa com o menu do botão direito do rato. O modelo pode ser revisto aqui