Condividi:        

Trovare le date dei giorni

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Trovare le date dei giorni

Postdi Cedamido1 » 11/05/26 23:15

Nella cella E8 ho scritto lunedì, dalla cella D100 alla cella D130 è presente l'elenco dei giorni esempio lunedi martedi ecc come faccio a trovare le date di tutti i lunedi che ci sono nell'elenco, ho fatto così ma non funziona =CERCA.VERT(E8;D100:D130;2;FALSO)
Cedamido1
Utente Junior
 
Post: 17
Iscritto il: 15/06/24 22:35

Sponsor
 

Re: Trovare le date dei giorni

Postdi Dylan666 » 12/05/26 08:23

Ma "trovare" in che senso? Le celle corrispondenti vanno contate? Colorate? Filtrate?
Avatar utente
Dylan666
Moderatore
 
Post: 40366
Iscritto il: 18/11/03 16:46

Re: Trovare le date dei giorni

Postdi Marius44 » 12/05/26 08:49

Ciao
Sarebbe stato utile un tuo file. Se ho capito bene, prova così.
Dopo aver inserito in C5 e C6 l'anno e il mese (come numero) a cui ti riferisci, metti questa formula in E100 (e ricopiala fino a E130):
=TESTO(GIORNO.SETTIMANA(DATA($C$5;$C$6;E100);1);"gggg")

Quindi, a fianco al giorno che ti serve (in E8 ma in lettere) metti questa formula in F8 (e ricopia e destra per 5 celle):
=SE.ERRORE(INDICE($E$1:$E$130;AGGREGA(15;6;RIF.RIGA($D$1:$D$130)/($D$1:$D$130=$E$8);RIF.COLONNA(A$1)));"")

Dovresti avere nelle quattro prime celle i giorno (come numero) corrispondenti al giorno della settimana da te indicato.
Fai sapere. Ciao,
Mario
Marius44
Utente Senior
 
Post: 684
Iscritto il: 07/09/15 22:00

Re: Trovare le date dei giorni

Postdi Raffaele53 » 12/05/26 09:38

Ciao a tutti, presumo abbia Excel-2003 e certe formule non esistono.

Facile per Office-365 sarebbe =FILTRO(D100:D130;GIORNO.SETTIMANA(D100:D130;2)=CERCA.VERT(E8;{"Lunedì"\1."Martedi"\2."Mercoledì"\3."Giovedì"\4."Venerdì"\5."Sabato"\6."Domenica"\7};2;FALSO);"")

Con Excel-2003 diventa difficile ricordare se certi passaggi funzionano.
Scrivi in una cella vuota e vedi se risponde con un numero?=SE.ERRORE(CERCA.VERT(E8;{"Lunedì"\1."Martedi"\2."Mercoledì"\3."Giovedì"\4."Venerdì"\5."Sabato"\6."Domenica"\7};2;FALSO);"Cella E8 vuota")

Se OK, in una colonna vuota scrivi in riga1
=SE.ERRORE(INDICE($D$100:$D$130;PICCOLO(SE(GIORNO.SETTIMANA($D$100:$D$130;2)=SE.ERRORE(CERCA.VERT(E$8;{"Lunedì"\1."Martedi"\2."Mercoledì"\3."Giovedì"\4."Venerdì"\5."Sabato"\6."Domenica"\7};2;FALSO);"Cella E8 vuota");RIF.RIGA($D$100:$D$130)-RIF.RIGA($A$100)+1);RIGHE(B$1:B1)));"")

1) Forse dovrai confermarlo matriciale CTRL+ALT+INVIO
2) Trascina la formula giù per 5/10 celle
3) Formatta le celle come DATA = GG/MM/AAAA
Raffaele53
Utente Senior
 
Post: 113
Iscritto il: 03/10/24 13:06

Re: Trovare le date dei giorni

Postdi Cedamido1 » 12/05/26 15:09

Grazie a Tutti per le risposte
Cedamido1
Utente Junior
 
Post: 17
Iscritto il: 15/06/24 22:35

Re: Trovare le date dei giorni

Postdi Anthony47 » 12/05/26 15:27

Ma hai risolto? Se "Non ancora" allora spiega bene quale e' il contenuto di D100:D130:
-Sono "date" (nella barra della formula vedi una data oppure un numero, tipo 46154 per oggi 12 maggio 2026), oppure sono stringhe (nella barra della formula leggi proprio Lunedì, Martedì, etc)
Avatar utente
Anthony47
Moderatore
 
Post: 19697
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Trovare le date dei giorni

Postdi Marius44 » 12/05/26 16:05

Ciao
Volendo si potrebbe utilizzare una UDF come la sottostante
Codice: Seleziona tutto
Option Explicit

Function Marius(ByVal grn As String)
Dim i As Long, giorni As String
For i = 100 To 130
  If Cells(i, 4) = grn Then giorni = giorni & Cells(i, 5) & " - "
Next
Marius = Left(giorni, Len(giorni) - 3)
End Function

In una cella qualsiasi digita =Marius(E8)

Fai sapere. Ciao,
Mario
Marius44
Utente Senior
 
Post: 684
Iscritto il: 07/09/15 22:00

Re: Trovare le date dei giorni

Postdi Raffaele53 » 13/05/26 14:37

Personalmente ho capito che in D100:D130 ci sono delle date casuali (ex 05/01/2026)
Ora scrivendo in E8 un determinato giorno (ex Lunedi), desiderava sapere quanti Lunedi erano presenti in quelle date?

Solo per mia informazione personale, per quale motivo ho dei risultati differenti?
Se uso la data 05/01/2026, la formula =GIORNO.SETTIMANA(D12;2) mi restituisce 1 = Lunedi
Se uso la data 05/01/2026, la formula =TESTO(GIORNO.SETTIMANA(D12;2);"gggg") mi restituisce "domenica"

Tramite VBA >>> MsgBox WeekdayName(Weekday("05/01/2026")) 'mi dice "Martedì"
Dove sto sbagliando ???
Raffaele53
Utente Senior
 
Post: 113
Iscritto il: 03/10/24 13:06

Re: Trovare le date dei giorni

Postdi Marius44 » 13/05/26 16:52

Ciao
Potrebbe essereun problema della versione Excel utilizzata.
Premesso che il 5/01/2026 è un lunedì, utilizzando:
=GIORNO.SETTIMANA(D12;2) mi dà 1, cioè lunedì
=TESTO(GIORNO.SETTIMANA(D12);"gggg") cioè NON METTENDO il 2 dopo il punto e virgola tra parentesi, mi dà lunedì

Non ho provato con VBA
Ciao,Mario
Marius44
Utente Senior
 
Post: 684
Iscritto il: 07/09/15 22:00

Re: Trovare le date dei giorni

Postdi Anthony47 » 13/05/26 18:17

Scusate, non esageriamo con la confusione...
=GIORNO.SETTIMANA(D12;2) restituisce correttamente 1
=TESTO(GIORNO.SETTIMANA(D12;2);"gggg") restituisce in formato gggg il dato riferito alla "data 1", che nella convenzione Excel corrisponde al 01-gen-1900 ma con l'assunzione (errata) che il 1900 fosse anno bisestile. Siccome il 1°gen 1900 capitava di Lunedì, l'ipotesi "bisestile" porta il risultato a Domenica
Per ottenere il risultato che si cerca, la formula che andrebbe usata e'
Codice: Seleziona tutto
=TESTO(E12;"gggg")


In vba, Weekday("05/01/2026") restituisce 2 (per ottenere 1 dovresti aggiungere il parametro 2=vbMonday, come per la formula)
Quindi WeekdayName(Weekday("05/01/2026")) restituisce il giorno della data "2-gen-1900". Ma il VBA non parte dall'assunzione (errata) che il 1900 fosse anno bisestile, quindi restituisce correttamente "Martedì"

Cosa volesse Cedamido io non l'ho capito; se rispondesse alla domanda che ho posto sulla natura dei suoi dati, e assumendo che siano DATE, probabilmente la domanda successiva sarebbe "e come vorresti identificare i giorni che cerchi? Ti basta evidenziarli ad esempio con un colore, vorresti in un'altra parte creare l'elenco delle date corrispondenti, o vuoi solo contarli?" (l'ultima ipotesi deriva dall'interpretazione fatta da Raffaele)

Un saluto a tutti (e perdonate il tono da maestrina)
Avatar utente
Anthony47
Moderatore
 
Post: 19697
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Trovare le date dei giorni

Postdi Raffaele53 » 13/05/26 23:27

Solo un mio desiderio per capire bene e poco mi importa se all'utente non serva (dal post "Data e mese". dice che usa excel 2003)

Ora che TESTO(data;"gggg") mi funziona, per creare un elenco (da trascinare giù)
=SE.ERRORE(INDICE($D$100:$D$130;PICCOLO(SE(TESTO($D$100:$D$130;"gggg")=E$8;RIF.RIGA($D$100:$D$130)-RIF.RIGA($A$100)+1);RIGHE(B$1:B1)));"")

Per contarli
=SOMMA(SE(TESTO($D$100:$D$130;"gggg")=E8;1;0))

Per colorare in FC
=E(TESTO($D100;"gggg")=E$8) applicato a =$D$100:$D$130

@Marius44 (ciao)
Presumo sia =TESTO(GIORNO.SETTIMANA(DATA($C$5;$C$6;D100);1);"gggg") 'anche il ";1" si puo togliere

@Anthony47 (grazie)
MsgBox WeekdayName(Weekday("05/01/2026", vbMonday))
Raffaele53
Utente Senior
 
Post: 113
Iscritto il: 03/10/24 13:06

Re: Trovare le date dei giorni

Postdi Dylan666 » 14/05/26 14:29

Raffaele53 ha scritto:Solo un mio desiderio per capire bene e poco mi importa se all'utente non serva

Sì ma questo è il topic dell'utente... non sarebbe carino aspettare che chiarisca le sue esigenze?
Per disquisizioni di più ampio respiro e non attinenti alla domanda iniziale non sarebbe meglio aprire un altro topic?
Avatar utente
Dylan666
Moderatore
 
Post: 40366
Iscritto il: 18/11/03 16:46

Re: Trovare le date dei giorni

Postdi Anthony47 » 14/05/26 15:48

@Dylan: Raffaele "si portava avanti" postando la soluzione alle varie possibili interpretazioni della richiesta dell'Utente...

@Raffaele:
1) In Office 2003 la funzione SE.ERRORE non esisteva; bisogna quindi andare su una piu' articolata SE(Val.Errore(LaFormula);"";LaFormula)
2) MsgBox WeekdayName(Weekday("05/01/2026", vbMonday)), per quello che abbiamo detto, restituisce il nome del giorno della settimana (corretto) della data 1-gen-1900
Avatar utente
Anthony47
Moderatore
 
Post: 19697
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Trovare le date dei giorni":


Chi c’è in linea

Visitano il forum: Marius44 e 16 ospiti