XL 2019 Indiquer l'écart en mois parmi une plage de lignes (25 000 lignes)

tite schtroumpfette

XLDnaute Junior
Bonjour,
Je traite un fichier de 25 000 lignes.
J'ai besoin de savoir sur combien de sites il y a eu plus de 1 mois de facturation.
Sur le fichier joint, les sites sont colonne H, la date de la facture colonne R.
Y-a-t-il un moyen simple de faire cela dans un TCD ?

Sur l'exemple ci-dessous, site 1 : non compté, sites 2 et 3 comptés. Résultat : 2. Je vous joins le classeur.

Nom du siteIJKLMNOPQDate doc.
1​
06/05/2019
1​
06/05/2019
1​
06/05/2019
1​
06/05/2019
1​
06/05/2019
2​
24/07/2019
2​
30/09/2019
2​
31/10/2019
2​
30/09/2019
2​
31/10/2019
2​
31/07/2019
3​
29/11/2018
3​
19/12/2018
3​
24/12/2018
3​
31/01/2019
3​
25/02/2019
3​
01/03/2019
3​
11/03/2019
3​
14/03/2019
 

Pièces jointes

  • Classeur1.xlsx
    10.8 KB · Affichages: 10

JHA

XLDnaute Barbatruc
Bonjour à tous,

Tu mets les données en mode tableau structuré (ruban: insertion/tableau)
ensuite tu vas dans donnée/A partir de tableau ou d'une plage et power query va s'ouvrir.

Autrement, dans le fichier ci-joint, tu te mets dans le tableau vert de l'onglet "Nbre de mois" puis dans le ruban tu sélectionnes "requête" puis "modifier"
Sur la droite, tu as toutes les requêtes pour aboutir au résultat.

JHA
 

Pièces jointes

  • Classeur1.xlsx
    22 KB · Affichages: 5

tite schtroumpfette

XLDnaute Junior
Bonjour à tous,

Tu mets les données en mode tableau structuré (ruban: insertion/tableau)
ensuite tu vas dans donnée/A partir de tableau ou d'une plage et power query va s'ouvrir.

Autrement, dans le fichier ci-joint, tu te mets dans le tableau vert de l'onglet "Nbre de mois" puis dans le ruban tu sélectionnes "requête" puis "modifier"
Sur la droite, tu as toutes les requêtes pour aboutir au résultat.

JHA
Bonjour,
Je suis désolée, je ne comprend pas ce que je dois faire une fois que j'ai affiché l'éditeur Power Qwery. Je ne sais pas sur quels menus appuyer pour configurer ce que tu as fait.
Saurais-tu me donner un pas à pas ?

J'ai essayé de remplacer les colonnes de ton fichier par celles d'origine du mien (en collant juste le texte) et ça ne marche pas, ça indique qu'il y a un problème de format de date "DataFormat.Error : Désolé... Nous ne pouvons pas procéder à la conversion en un nombre."
 

job75

XLDnaute Barbatruc
Voyez le fichier joint et cette macro dans le code de la 2ème feuille :
VB:
Private Sub Worksheet_Activate()
Dim tablo, d As Object, i&, x$, dat, y$, n&, a, b, c()
With Sheets("Feuil1")
    If .FilterMode Then .ShowAllData
    tablo = .Range("H1:R" & .Range("H" & .Rows.Count).End(xlUp).Row) 'matrice, plus rapide
End With
Set d = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(tablo)
    x = CStr(tablo(i, 1))
    If x <> "" Then
        If Not d.exists(x) Then d(x) = ""
        dat = tablo(i, 11)
        If IsDate(dat) Then
            y = Month(dat) & Year(dat)
            If InStr(d(x), Chr(1) & y) = 0 Then d(x) = d(x) & Chr(1) & y
        End If
    End If
Next
n = d.Count
'---transposition---
If n Then
    a = d.keys
    b = d.items
    ReDim c(UBound(a), 1) 'base 0
    For i = 0 To UBound(a)
        c(i, 0) = a(i)
        c(i, 1) = UBound(Split(b(i), Chr(1)))
        If c(i, 1) < 1 Then c(i, 1) = ""
    Next
End If
'---restitution---
If FilterMode Then ShowAllData 'si la feuille est filtrée
With [A2]
    If n Then .Resize(n, 2) = c
    .Offset(n).Resize(Rows.Count - n - .Row + 1, 2).ClearContents 'RAZ en dessous
End With
End Sub
Elle se déclenche quand on active la feuille.

Salut merinos.
 

Pièces jointes

  • Classeur(1).xlsm
    22.6 KB · Affichages: 3

Discussions similaires

Réponses
2
Affichages
486

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T