Microsoft 365 Créer un onglet pour chaque thème contenant les titres en doublons associés à ce thème

Toucan72

XLDnaute Nouveau
Bonjour,

Je souhaiterais créer des feuilles ou des onglets distincts à partir de la colonne C (Thèmes) des documents en doublons. Chaque onglet serait dédié à un thème spécifique, comme la sociologie, la littérature, etc. Dans ces listes, doivent figurer tous les doublons (même titre en colonne H) qui se recoupent avec le thème en question (par exemple, tous les doublons qui concernent la sociologie doivent être listés dans l'onglet dédié à la sociologie).
Je vous remercie pour votre aide une fois de plus
Bonne après-midi
Toucan
 

Pièces jointes

  • Classeur3.xlsx
    12.2 KB · Affichages: 14
Solution
Bonjour à tous & à toutes, bonjour @Toucan72
Bon pour faire ce que tu demandes la formules est un peu plus compliquée :
Enrichi (BBcode):
=TRIER(FILTRE(ListeLivres;ESTNUM(EQUIV(ListeLivres[Titre];FILTRE(ListeLivres[Titre];(ListeLivres[Thèmes]=$A$1)*(NB.SI(ListeLivres[Titre];ListeLivres[Titre])>1));0)));8)

En décomposant
  • On recherche la liste des livres en doublon (triplet etc) pour le thème courant avec la fonction Filtre (c'est la même formule que dans le post 19 mis à part UNIQUE) Première liste :
    Enrichi (BBcode):
    FILTRE(ListeLivres[Titre];(ListeLivres[Thèmes]=$A$1)*(NB.SI(ListeLivres[Titre];ListeLivres[Titre])>1))
  • Puis on recherche dans la liste complète Tous les livres qui apparaissent dans cette première liste...

AtTheOne

XLDnaute Accro
Supporter XLD
Bonjour à tous & à toutes, bonjour @Toucan72

Je reviens sur le sujet, ça m'ennuyait de te laisser sur un "on ne peut pas sans VBA"
Comme le dit @sylvanu, on ne peut pas créer de feuille par formule.
Mais ... on peut les créer en copiant un modèle.

Comme tu disposes d'EXCEL 365 tu peux utiliser les fonctions matricielles dynamique (FILTRE, UNIQUE, TRIER ...)
Leurs résultats s'ajustent automatiquement lorsque les données auxquelles elles se réfèrent sont modifiées.
Une seule formule génère le nombre de lignes et de colonnes correspondant au résultat (pas besoin de tirer vers le bas ou à droite)

Pour faciliter leur usage, j'ai transformé ta liste complète en un Tableau Structuré que j'ai nommé "ListeLivres".

J'ai ajouté une feuille "Accueil" elle présente
  • la liste des thèmes de ta liste complète
    (formule =TRIER(UNIQUE(ListeLivres[Thèmes]))) en A5
  • la liste des titres
    (formules =TRIER(UNIQUE(ListeLivres[Titre])) en C5
  • Le nombre d'exemplaires
    =NB.SI(ListeLivres[Titre];C5#) en D5 (le # pour toute la plage générée par la formule en C5)
Puis j'ai créer une feuille par thème qui reprend pour chaque thème les titres en plusieurs exemplaires apparaissant dans ce thème. Le thème est écrit en $A$1 la formule qui extrait les titres concernés est
=UNIQUE(FILTRE(ListeLivres;(ListeLivres[Thèmes]=$A$1)*(NB.SI(ListeLivres[Titre];ListeLivres[Titre])>1)))
Les critères
  • (ListeLivres[Thèmes]=$A$1) le thème doit être égal au thème en A1
  • (NB.SI(ListeLivres[Titre];ListeLivres[Titre])>1) le titre doit être en plus d'un exemplaire
  • Multiplication pour signifier "ET"
Si ta liste complète évolue, les listes par thème évolueront automatiquement

Pour t'alerter lorsqu'un nouveau thème n'a pas sa feuille, dans la liste des thèmes de la feuille "Accueil" ce nouveau thème apparaît en blanc sur fond rouge grâce à la Mise en Forme Conditionnelle avec la formule
ET($A5<>"";ESTERREUR(FEUILLE(INDIRECT("'"&A5&"'!$A$1"))))
D'autre MFC gèrent le quadrillage du résultat des formules.

Voilà, voir le fichier joint, si ça peut répondre à ta question ...

À Bientôt
 

Pièces jointes

  • Liste Livres sans VBA AtTheOne.xlsx
    38 KB · Affichages: 1

Toucan72

XLDnaute Nouveau
Bonjour à tous & à toutes, bonjour @Toucan72

Je reviens sur le sujet, ça m'ennuyait de te laisser sur un "on ne peut pas sans VBA"
Comme le dit @sylvanu, on ne peut pas créer de feuille par formule.
Mais ... on peut les créer en copiant un modèle.

Comme tu disposes d'EXCEL 365 tu peux utiliser les fonctions matricielles dynamique (FILTRE, UNIQUE, TRIER ...)
Leurs résultats s'ajustent automatiquement lorsque les données auxquelles elles se réfèrent sont modifiées.
Une seule formule génère le nombre de lignes et de colonnes correspondant au résultat (pas besoin de tirer vers le bas ou à droite)

Pour faciliter leur usage, j'ai transformé ta liste complète en un Tableau Structuré que j'ai nommé "ListeLivres".

J'ai ajouté une feuille "Accueil" elle présente
  • la liste des thèmes de ta liste complète
    (formule =TRIER(UNIQUE(ListeLivres[Thèmes]))) en A5
  • la liste des titres
    (formules =TRIER(UNIQUE(ListeLivres[Titre])) en C5
  • Le nombre d'exemplaires
    =NB.SI(ListeLivres[Titre];C5#) en D5 (le # pour toute la plage générée par la formule en C5)
Puis j'ai créer une feuille par thème qui reprend pour chaque thème les titres en plusieurs exemplaires apparaissant dans ce thème. Le thème est écrit en $A$1 la formule qui extrait les titres concernés est
=UNIQUE(FILTRE(ListeLivres;(ListeLivres[Thèmes]=$A$1)*(NB.SI(ListeLivres[Titre];ListeLivres[Titre])>1)))
Les critères
  • (ListeLivres[Thèmes]=$A$1) le thème doit être égal au thème en A1
  • (NB.SI(ListeLivres[Titre];ListeLivres[Titre])>1) le titre doit être en plus d'un exemplaire
  • Multiplication pour signifier "ET"
Si ta liste complète évolue, les listes par thème évolueront automatiquement

Pour t'alerter lorsqu'un nouveau thème n'a pas sa feuille, dans la liste des thèmes de la feuille "Accueil" ce nouveau thème apparaît en blanc sur fond rouge grâce à la Mise en Forme Conditionnelle avec la formule
ET($A5<>"";ESTERREUR(FEUILLE(INDIRECT("'"&A5&"'!$A$1"))))
D'autre MFC gèrent le quadrillage du résultat des formules.

Voilà, voir le fichier joint, si ça peut répondre à ta question ...

À Bientôt
Bonjour AtTheOne
Je te remercie infiniment. Je vais essayer cette solution.
Je te tiens au courant.
Bon dimanche
Toucan72
 

Toucan72

XLDnaute Nouveau
Bonjour AtTheOne
Penses-tu qu'il serait possible à partir de ta liste d'ôter UNIQUE afin d'afficher les doublons dans chaque onglet ?
Par exemple "lexique de sciences économiques et sociales" est présent en économie et en sociologie, démographie. Ce que je souhaite faire apparaître ce sont les doublons.
Peut-être s'agit-il d'une formule différente ?
Merci pour ton aide
Bonne journée
T.
 

AtTheOne

XLDnaute Accro
Supporter XLD
Bonjour à toutes & à tous, bonjour @Toucan72
En fait ce sont les doublons qui apparaissent et seulement les doublons.
Ce que l'on ne voit pas ce sont les autres thèmes où apparaissent ces doublons :
Dans le thème Art apparaissent tous les titres en doublons dont un exemplaire est classé dans le thème Art. Mais on ne voit pas quels sont ces autres thèmes.
Les titres en unique exemplaire ne sont pas listés.
Donne moi un fichier exemple de ce que tu veux avec 2 thèmes et des doublons comme tu veux les traiter.
À bientôt
 

Toucan72

XLDnaute Nouveau
Re-BonjourAtTheOne Je te joins le fichier tel que je souhaiterais qu'il soit présenté ou affiché. Je n'ai pas inclus toutes les thématiques, seulement quelques-unes pour illustrer.
En espérant que cela puisse t'aider.
Bonne fin de journée
Toucan72
 

Pièces jointes

  • Classeur3 (2).xlsx
    18.1 KB · Affichages: 2

AtTheOne

XLDnaute Accro
Supporter XLD
Bonjour à tous & à toutes, bonjour @Toucan72
Bon pour faire ce que tu demandes la formules est un peu plus compliquée :
Enrichi (BBcode):
=TRIER(FILTRE(ListeLivres;ESTNUM(EQUIV(ListeLivres[Titre];FILTRE(ListeLivres[Titre];(ListeLivres[Thèmes]=$A$1)*(NB.SI(ListeLivres[Titre];ListeLivres[Titre])>1));0)));8)

En décomposant
  • On recherche la liste des livres en doublon (triplet etc) pour le thème courant avec la fonction Filtre (c'est la même formule que dans le post 19 mis à part UNIQUE) Première liste :
    Enrichi (BBcode):
    FILTRE(ListeLivres[Titre];(ListeLivres[Thèmes]=$A$1)*(NB.SI(ListeLivres[Titre];ListeLivres[Titre])>1))
  • Puis on recherche dans la liste complète Tous les livres qui apparaissent dans cette première liste
    Deuxième liste
    Enrichi (BBcode):
    FILTRE(ListeLivres;ESTNUM(EQUIV(ListeLivres[Titre];Première Liste;0)))
  • puis on trie cette Deuxième liste sur la colonne des titres :
    Enrichi (BBcode):
    TRIER(Deuxième liste;8)
Pour l'exemple j'ai ajouté 2 titres à ta liste complète (en blanc sur fond marron) un en exemplaire unique (donc qui n'apparaît pas dans les feuilles par thème) et un en triplet (donc qui apparaît 3 fois dans les feuilles thème concernées)
 

Pièces jointes

  • Liste Livres sans VBA AtTheOne bis.xlsx
    40.4 KB · Affichages: 2

Toucan72

XLDnaute Nouveau
Bonjour à tous & à toutes, bonjour @Toucan72
Bon pour faire ce que tu demandes la formules est un peu plus compliquée :
Enrichi (BBcode):
=TRIER(FILTRE(ListeLivres;ESTNUM(EQUIV(ListeLivres[Titre];FILTRE(ListeLivres[Titre];(ListeLivres[Thèmes]=$A$1)*(NB.SI(ListeLivres[Titre];ListeLivres[Titre])>1));0)));8)

En décomposant
  • On recherche la liste des livres en doublon (triplet etc) pour le thème courant avec la fonction Filtre (c'est la même formule que dans le post 19 mis à part UNIQUE) Première liste :
    Enrichi (BBcode):
    FILTRE(ListeLivres[Titre];(ListeLivres[Thèmes]=$A$1)*(NB.SI(ListeLivres[Titre];ListeLivres[Titre])>1))
  • Puis on recherche dans la liste complète Tous les livres qui apparaissent dans cette première liste
    Deuxième liste
    Enrichi (BBcode):
    FILTRE(ListeLivres;ESTNUM(EQUIV(ListeLivres[Titre];Première Liste;0)))
  • puis on trie cette Deuxième liste sur la colonne des titres :
    Enrichi (BBcode):
    TRIER(Deuxième liste;8)
Pour l'exemple j'ai ajouté 2 titres à ta liste complète (en blanc sur fond marron) un en exemplaire unique (donc qui n'apparaît pas dans les feuilles par thème) et un en triplet (donc qui apparaît 3 fois dans les feuilles thème concernées)
Bonjour AtTheOne
Quel travail ! je te remercie infiniment d'être parvenu à une solution et ce n'était pas simple !
Je vais maintenant travailler ma liste de + de 1000 lignes avec cette méthode.
Du moins je vais tenter de l'appliquer.
Très bonne journée
Toucan72
 

Discussions similaires

Statistiques des forums

Discussions
314 698
Messages
2 112 019
Membres
111 400
dernier inscrit
mandaille