Tri date dans un fichier de corpus

Bonjour,

Dans ce fichier d'auteurs classés à la même cote ou indice (ex "840 19" ABEI pour Jacques Abeille par exemple) je recherche les corpus n'ayant pas eu de publications depuis l'année 2000. Ce fichier est un extrait en réalité j'en ai plus de 15 000. J'aimerai faire ressortir les auteurs ou corpus qui n'ont plus d'ouvrages depuis 2000. peut être un tableau croisé dynamique ?

Merci et bonne journée

L72

15corpus-a-b.xlsx (94.24 Ko)

Bonjour

Si j'ai bien compris formule MFC

12corpus-a-b.xlsx (94.85 Ko)

Merci pour ta réponse rapide mais je cherche à identifier par tri les corpus n'ayant plus de publications depuis 2000

Par exemple Arthur Adamov contient deux publications > 2000 Je doisobtenir une liste des auteurs ne comportant plus de publications après 2000.

Merci

Bonjour à tous !

----- > Pour une aide adaptée de la communauté, merci de préciser, dans votre profil, la nature de votre Excel ( 2019 ? 2021 ? 365 ? ...)

Excel 2017 merci

Re bonjour

J'ai un doute sur le fait que ce que tu demandes soit vraiment réalisable,étant donné que le nom des auteurs

se trouve dans la même colonne que les titres

Bonsoir à tous,

Si j'ai bien compris.

Sub test()
    Dim a, e, i As Long, dico As Object
    Set dico = CreateObject("Scripting.Dictionary")
    dico.CompareMode = 1
    With Sheets("Feuil1").Cells(1).CurrentRegion
        a = .Value
        For i = 2 To UBound(a, 1)
            If Not dico.exists(a(i, 4)) Then
                dico(a(i, 4)) = a(i, 6)
            Else
                dico(a(i, 4)) = Application.Max(dico(a(i, 4)), a(i, 6))
            End If
        Next
        For Each e In dico.keys
            If dico(e) > 2000 Then
                dico.Remove e
            End If
        Next
    End With
    If Not Evaluate("isref('Resultat'!a1)") Then
        Sheets.Add(, Sheets(Sheets.Count)).Name = "Resultat"
    End If
    If dico.Count > 0 Then
        With Sheets("Resultat")
            .Columns(1).Clear
            .Range("A1").Resize(dico.Count).Value = Application.Transpose(dico.keys)
        End With
    End If
    Set dico = Nothing
End Sub

klin89

Je peux afficher une colonne auteur de mes rapports si cela peut apporter une solution.

Malheureusement je ne maîtrise pas le sql.

B soirée

L

Bonjour,

Je vous remercie pour vos réponses. Je vous joins le fichier avec la colonne "auteurs" si toutefois il y a une solution sous excel. Je pense qu'il faut croiser l'auteur avec la date. Merci pour votre aide.

Je suis sous Microsoft office 365.

Bonne journée

L.

12corpus-test.xlsx (35.40 Ko)

Re laure72,

Pour bien comprendre, vous voulez ressortir la liste des auteurs n'ayant pas publié d'ouvrages depuis 2000, c'est bien ça ?

klin89

Bonjour à tous !

Excel 2017 ou Microsoft 365 ?

Merci de vérifier et de mettre à jour votre profil !

Pour Microsoft 365 (avec adhésion au programme Insider) :

=TRIER(UNIQUE(REGEXEXTRACT(FILTRE(tSource[[Auteurs ]];(tSource[Date]<=L1)*(tSource[[Auteurs ]]<>""));"[^0-9]+")))

tSource : Tableau structuré (plage A1:I210)

L1 : Seuil année (ici 2000)

Remarque : Il existe des enregistrements sans auteur.

Re à tous,

Avec le pattern de JFL :

Option Explicit
Sub test()
    Dim a, e, s, i As Long, dico As Object, m As Object
    Set dico = CreateObject("Scripting.Dictionary")
    dico.CompareMode = 1
    With Sheets("Feuil1").Cells(1).CurrentRegion
        a = .Value
        With CreateObject("VBScript.RegExp")
            .Global = True
            .Pattern = "[^0-9]+"
            For i = 2 To UBound(a, 1)
                If a(i, 8) <> "" Then
                    If .test(a(i, 8)) Then
                        Set m = .Execute(a(i, 8))
                        s = Trim$(m(0))
                        If Not dico.exists(s) Then
                            dico(s) = a(i, 6)
                        Else
                            dico(s) = Application.Max(dico(s), a(i, 6))
                        End If
                    End If
                End If
            Next
        End With
        For Each e In dico.keys
            If dico(e) > 2000 Then
                dico.Remove e
            End If
        Next
    End With
    If Not Evaluate("isref('Resultat'!a1)") Then
        Sheets.Add(, Sheets(Sheets.Count)).Name = "Resultat"
    End If
    If dico.Count > 0 Then
        With Sheets("Resultat")
            .Columns(1).Clear
            .Range("A1").Resize(dico.Count).Value = Application.Transpose(dico.keys)
        End With
    End If
    Set dico = Nothing
End Sub

klin89

Bonjour et merci

C'est bien cela je souhaite faire ressortir les auteurs n'ayant pas publié depuis 2000.

Merci pour votre aide.

L72

Bonjour à tous !

Bien....

Je vous remercie de ce retour.

Re,

En I2, tu peux appeler cette fonction pour ressortir le nom de l'auteur, à recopier vers le bas.

=extract_Auteur(H2)

Function extract_Auteur(s As String) As String
    With CreateObject("VBScript.RegExp")
        .Pattern = "[^0-9]+"
        .Global = True
        .IgnoreCase = True
        If .test(s) Then
            extract_Auteur = Trim$(.Execute(s)(0))
        End If
    End With
End Function

klin89

Rechercher des sujets similaires à "tri date fichier corpus"