2 votes

Excel effectue un "fusion et centrage" dynamique en fonction des valeurs ou via une "Mise en forme conditionnelle"

Est-il possible d'appliquer dynamiquement "fusionner et centrer" en fonction des valeurs ou à travers une "mise en forme conditionnelle" ?

J'ai réussi à ajouter des couleurs mais je veux faire quelque chose de plus avancé avec Excel pour rendre la "fusion et centrage" dynamique, quelque chose comme l'image ci-dessous entrer la description de l'image ici

toutes les valeurs sont dynamiques !

6voto

AdamV Points 5934

Ne pas utiliser de cellules fusionnées (qui sont de toute façon horribles), mais pour votre cas, vous pouvez faire beaucoup mieux de toute façon. Cela nécessitera un peu de configuration mais donne exactement l'effet que vous voulez.

Avoir une colonne (A) pour le mois mais simplement répéter la date dedans (A2: =C2). Ne calculez pas le mois ici, nous voulons conserver la date afin que vous puissiez simplement formater pour afficher uniquement le mois plus tard.

Pour la colonne B des semaines, utilisez WEEKNUM(C2,21) pour calculer les semaines ISO (lundi = jour 1, dimanche = jour 7, la semaine 1 contient le premier jeudi de l'année). Copiez ces formules sur les colonnes A et B autant que nécessaire.

Formatez ces deux colonnes pour utiliser un format de nombre personnalisé de ;;; cela signifie que toutes ces valeurs disparaissent complètement, et nous les ramènerons sélectivement en utilisant la mise en forme conditionnelle.

Pour la colonne A, vous devez voir le nom du mois si :

  1. il s'agit de la première ligne, et après le 15 du mois
  2. il s'agit de la dernière ligne, et avant le 15 du mois
  3. sinon (normalement) afficher le nom du mois contre le 15 comme étant plus ou moins le milieu du mois. Donc, vous devez appliquer une condition aux cellules A2:A999 (ou la longueur de votre colonne) comme suit:

    =OU(ET($C1=$C$1,JOUR($C2)>15),ET($C3="",JOUR($C2)<15),JOUR($C2)=15)

Notez que la première condition vérifie si la date de la ligne actuelle = "quel que soit le libellé de votre colonne de date" plutôt que de coder en dur comme ="Date" ou autre chose.

Définissez le format de celles-ci pour utiliser un format de nombre personnalisé de "MMM" (mois en trois lettres), ou ce que vous préférez.

Pour les numéros de semaine, ceux-ci devraient s'afficher de manière similaire les jours en haut ou en bas de la liste, ou normalement les jeudis (visuellement cela représente le milieu de la semaine si vous avez Lun=1, mais si vous voulez les mettre contre les mercredis comme jour "milieu de semaine", utilisez 3 au lieu de 4 dans la formule ci-dessous). Appliquez un format conditionnel par formule :

=OU(ET($C1=$C$1,WEEKDAY($C2,2)>4),ET($C3="",WEEKDAY($C2,2)<4),WEEKDAY($C2,2)=4)

Et utilisez un format de nombre approprié (0 ou 00 probablement le meilleur)

Pour alterner les couleurs de fond, utilisez le même type d'approche - coloriez-les tous puis coloriez conditionnellement certains en plus sombre (ou vice versa) en fonction de la valeur de ces colonnes est "pair" c'est-à-dire que la formule pour les semaines est quelque chose comme :

=MOD(B2,2)=0

ou dans le cas des mois inclure le calcul du MOIS ie la condition utilise

=MOD(MONTH(A2),2)=0

Faites ceci séparément pour les mois et les semaines. Cela devrait maintenant ressembler à l'image ci-dessous.

J'espère que cela vous aidera !

Utilisation de la mise en forme conditionnelle pour afficher les semaines et les mois centrés

1voto

Vous ne pouvez pas fusionner et centrer avec la mise en forme conditionnelle. Les tableaux croisés dynamiques permettront d'obtenir cet effet. Vous pouvez utiliser les champs calculés pour générer les champs d'année et de semaine sur vos données dynamiques.

1voto

chris neilsen Points 4226

Réponse courte à la question directe est ... "Non"

La mise en forme conditionnelle peut appliquer une mise en forme aux cellules individuelles ou déjà fusionnées, mais elle ne peut pas provoquer la fusion des cellules.

La seule façon d'obtenir ce que vous demandez sur les données brutes serait à travers un macro VBA, basé soit sur un événement de feuille ou de classeur (complexe et probablement pas la peine) ou déclenché par l'utilisateur.

0voto

Ivo Points 1

Les semaines ISO ne peuvent pas être directement calculées dans Excel (ce n'est pas la même chose que 'la semaine commence le lundi').

Utilisez la formule suivante:

=INT((B4-DATE(YEAR(B4-WEEKDAY(B4-1)+4),1,3)+WEEKDAY(DATE(YEAR(B4-WEEKDAY(B4-1)+4),1,3))+5)/7)

Source: Nombres de semaine dans Excel

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X