Come avevamo visto in un altro thread esiste la funzione giorno.settimana() che però restituisce un valore numerico e non letterale. Basta crearsi una funzioncina ad hoc.
Apri l'editor vba, vai su inserisci => modulo e fai copia incolla di questa funzioncina che ti ho scritto.
codice:
Function giornolett(cella As Range)
numerico = Application.WorksheetFunction.Weekday(cella.Value)
Select Case numerico
Case 2
giornolett = "Lunedì"
Case 3
giornolett = "Martedì"
Case 4
giornolett = "Mercoledì"
Case 5
giornolett = "Giovedì"
Case 6
giornolett = "Venerdì"
Case 7
giornolett = "Sabato"
Case 1
giornolett = "Domenica"
End Select
End Function
Potrai così usarla come una funzione nativa di excel semplicemente digitando
=giornolett(a1)
Per quanto riguarda il numero della settimana relativamente al mese non esiste una funzione predefinita di excel ma basta che scriva
=INT((GIORNO(A1)-1)/7)+1

edit. Per il giorno della settimana molto più semplicemente mi è venuto in mente che potresti fare (sempre inserendo il codice in un modulo)
codice:
Option Base 1
Function giornolett(cella As Range)
Dim giorni As Variant
giorni = Array("Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato")
giornolett = giorni(Application.WorksheetFunction.Weekday(cella.Value))
End Function