SIG DCG (UE8) : Tableur, audit de feuille et programmation

Tout le programme DCG, déjà prêt à réviser

Fiches, quiz, flashcards et infographies déjà créés, avec un tuteur IA. Paiement unique, dès 29 €.

Voir les packs DCG

Fonctions de dates et de texte du tableur : échéances, ancienneté et nettoyage de données

À retenir

Cadre programme : DCG, programme 2025 (arrêté du 4 août 2025, première session 2027), UE 8 « Systèmes d'information de gestion », partie 2 « Gérer des données du système d'information », sous-partie 2.2.1 « Automatiser la résolution des problèmes de gestion » (formules utilisant des fonctions de calcul appliquées aux dates et de manipulation de texte).

Pourquoi c'est central à l'examen : les énoncés de gestion regorgent de dates (échéances de paiement, retards, ancienneté, trimestres) et de données textuelles mal formées issues d'un import (espaces superflus, majuscules, références à découper). Savoir calculer sur les dates et nettoyer du texte relève des compétences de base d'un gestionnaire de données.

01Les dates dans le tableur

1.1 Une date est un nombre

Le tableur stocke une date comme un numéro de série : le nombre de jours écoulés depuis une date d'origine. Conséquences :

OpérationRésultatExemple
Date + nombreUne date plus tardive01/10/2026 + 30 donne 31/10/2026
Date - dateUn nombre de jours15/10/2026 - 12/03/2026 donne 217
Comparaison de datesVRAI ou FAUXB5>C5

Le format détermine l'affichage : une même cellule peut montrer 01/10/2026 ou un nombre à cinq chiffres selon qu'on lui applique un format date ou un format nombre. Une cellule saisie sous la forme 12.03.2026, que le tableur ne reconnaît pas comme une date, reste du texte : elle est alignée à gauche et ne se calcule pas.

1.2 Les fonctions de dates

FonctionSyntaxeRôleExemple
AUJOURDHUIAUJOURDHUI()Date du jour, recalculée à chaque ouverture ou recalculrésultat variable
DATEDATE(année;mois;jour)Construit une dateDATE(2026;10;1) donne 01/10/2026
ANNEEANNEE(date)Extrait l'annéeANNEE(12/03/2026) donne 2026
MOISMOIS(date)Extrait le mois (1 à 12)MOIS(12/03/2026) donne 3
JOURJOUR(date)Extrait le jour du moisJOUR(12/03/2026) donne 12
JOURSEMJOURSEM(date;type)Jour de la semaine ; avec type égal à 2, lundi = 1 et dimanche = 7JOURSEM(01/10/2026;2) donne 4 (jeudi)
FIN.MOISFIN.MOIS(date;décalage)Dernier jour du mois situé décalage mois après (ou avant) la dateFIN.MOIS(10/02/2026;0) donne 28/02/2026
MOIS.DECALERMOIS.DECALER(date;décalage)Même jour du mois, décalage mois plus tard ; si ce jour n'existe pas, le dernier jour du moisMOIS.DECALER(31/01/2026;1) donne 28/02/2026

Attention : AUJOURDHUI() rend un modèle non reproductible (un résultat différent chaque jour, une impression ancienne qui ne se retrouve plus). Pour figer un calcul d'arrêté, on place une date de référence dans une cellule de paramètre (cours 25) et on ne recourt à AUJOURDHUI() que pour un suivi « en temps réel ».

1.3 Reconstruire une date, extraire une composante

  • Pour changer d'année : =DATE(ANNEE(B2)+1;MOIS(B2);JOUR(B2)) ajoute un an.
  • Pour obtenir le trimestre : =ENT((MOIS(B2)+2)/3) donne 1 pour janvier à mars, 2 pour avril à juin, 3 pour juillet à septembre, 4 pour octobre à décembre.
  • Pour savoir si une date tombe un week-end : =JOURSEM(B2;2)>=6.

1.4 Mesurer un écart entre deux dates

BesoinFormuleRemarque
Nombre de jours=B2-A2Simple soustraction ; format de la cellule en nombre
Nombre de mois (écart de calendrier)=(ANNEE(B2)-ANNEE(A2))*12+MOIS(B2)-MOIS(A2)Compte les changements de mois, pas les mois entiers
Nombre d'années complètes=ANNEE(B2)-ANNEE(A2)-SI(DATE(ANNEE(B2);MOIS(A2);JOUR(A2))>B2;1;0)On retire 1 si l'anniversaire n'est pas encore passé

La dernière formule est celle d'une ancienneté : l'écart d'années brut (ANNEE(B2)-ANNEE(A2)) est corrigé quand la date anniversaire de l'année de B2 est postérieure à B2.

1.5 Calculer des échéances de paiement

Les conditions de règlement se traduisent en formules. Avec une facture datée en B5, un délai de 30 jours en C5 :

ConditionFormulePrincipe
« 30 jours »=B5+C5Date de facture + délai
« 30 jours fin de mois »=FIN.MOIS(B5+C5;0)On ajoute le délai, puis on se place à la fin du mois obtenu
« Fin de mois, puis 15 jours »=FIN.MOIS(B5;0)+15On se place d'abord en fin de mois, puis on ajoute le délai

Les deux dernières conditions ne donnent pas la même date : l'ordre des opérations compte, et c'est l'énoncé (ou le contrat) qui le précise. Pour une facture du 12/03/2026 à « 45 jours fin de mois », on obtient 26/04/2026 puis, en fin de mois, 30/04/2026 ; avec l'autre lecture (fin de mois puis 45 jours), on obtiendrait 31/03/2026 + 45 jours = 15/05/2026. Écrire la convention retenue dans la zone de paramètres du modèle évite toute ambiguïté.

Le retard se calcule avec MAX(0;date_de_règlement-échéance), pour ne pas obtenir de retard négatif quand le client paie en avance (cours 26).

02Les fonctions de texte

2.1 Mesurer et extraire

FonctionSyntaxeRôleExemple (cellule A2 = FA2026-00347)
NBCARNBCAR(texte)Nombre de caractères (espaces compris)NBCAR(A2) donne 12
GAUCHEGAUCHE(texte;n)Les n premiers caractèresGAUCHE(A2;2) donne FA
DROITEDROITE(texte;n)Les n derniers caractèresDROITE(A2;5) donne 00347
STXTSTXT(texte;début;n)n caractères à partir de la position débutSTXT(A2;3;4) donne 2026
CHERCHECHERCHE(texte_cherché;dans_texte)Position d'un texte dans un autre (sans tenir compte de la casse, jokers admis)CHERCHE("-";A2) donne 7

TROUVE fonctionne comme CHERCHE mais distingue majuscules et minuscules et n'accepte pas les jokers.

Chaque caractère compte, espaces compris. Le résultat de GAUCHE, DROITE ou STXT est toujours du texte, même s'il ressemble à un nombre.

2.2 Nettoyer et mettre en forme

FonctionRôleExempleRésultat
SUPPRESPACE(texte)Supprime les espaces en début et en fin, et ramène les espaces multiples à un seulSUPPRESPACE(" DUPONT jean ")DUPONT jean
MAJUSCULE(texte)Tout en majusculesMAJUSCULE("jean")JEAN
MINUSCULE(texte)Tout en minusculesMINUSCULE("DUPONT")dupont
NOMPROPRE(texte)Première lettre de chaque mot en majusculeNOMPROPRE("DUPONT jean")Dupont Jean

2.3 Assembler : la concaténation

L'opérateur & colle des textes, des nombres ou des références : =A2&" "&B2 donne le contenu de A2, un espace, le contenu de B2. Les textes littéraux s'écrivent entre guillemets.

Piège : concaténer une date ou un nombre formaté donne son numéro de série ou sa valeur brute, pas l'affichage. ="Facture du "&B2 affiche un nombre à cinq chiffres à la place de la date.

2.4 Convertir : TEXTE et CNUM

FonctionSyntaxeRôleExemple
TEXTETEXTE(valeur;format)Convertit en texte mis en formeTEXTE(B2;"jj/mm/aaaa") donne 12/03/2026 ; TEXTE(1250,5;"0,00") donne 1250,50 ; TEXTE(B2;"jjjj") donne le nom du jour
CNUMCNUM(texte)Convertit un texte qui représente un nombre en nombreCNUM("00347") donne 347

Les codes de format de TEXTE dépendent de la langue du tableur (jj, mm, aaaa en français) ; ils sont à reprendre tels que l'énoncé les fournit. Les nombres importés comme du texte se convertissent avec CNUM, en tenant compte du séparateur décimal de la configuration (la virgule en français).

Exemples corrigés

Cas 1 : échéancier clients avec report au premier jour ouvré

La feuille Echeancier contient quatre factures. La cellule nommée Date_ref contient la date d'arrêté du suivi : 01/10/2026. L'énoncé précise : le délai s'ajoute à la date de facture, puis, si la condition comporte « fin de mois », on se place en fin de mois ; une échéance qui tombe un samedi ou un dimanche est reportée au lundi.

ABCDG
4N° factureDate factureDélai (jours)Fin de moisDate de règlement
5F-10112/03/202630Non20/04/2026
6F-10212/03/202645Oui12/05/2026
7F-10328/02/202630Oui31/03/2026
8F-10405/09/202660Non(vide)

Formules de la ligne 5, à recopier :

ColonneFormule
E (échéance brute)=SI(D5="Oui";FIN.MOIS(B5+C5;0);B5+C5)
F (échéance retenue)=SI(JOURSEM(E5;2)=6;E5+2;SI(JOURSEM(E5;2)=7;E5+1;E5))
H (jours de retard)=MAX(0;SI(G5="";Date_ref;G5)-F5)
I (statut)=SI(G5="";SI(Date_ref>F5;"En retard";"À échoir");SI(H5>0;"Réglée en retard";"Réglée à temps"))

Résultats attendus (recalculés hors tableur) :

N°Échéance bruteJourÉchéance retenueRèglementRetard (jours)Statut
F-10111/04/2026samedi13/04/202620/04/20267Réglée en retard
F-10230/04/2026jeudi30/04/202612/05/202612Réglée en retard
F-10331/03/2026mardi31/03/202631/03/20260Réglée à temps
F-10404/11/2026mercredi04/11/2026(vide)0À échoir

Détail pour F-102 : 12/03/2026 + 45 jours = 26/04/2026 ; FIN.MOIS(26/04/2026;0) = 30/04/2026 ; JOURSEM(30/04/2026;2) = 4 (jeudi), donc pas de report ; retard : 12/05/2026 - 30/04/2026 = 12 jours. Pour F-101 : 12/03/2026 + 30 = 11/04/2026, JOURSEM(...;2) = 6 (samedi) donc +2 = 13/04/2026.

Pour F-104 : l'échéance (04/11/2026) est postérieure à Date_ref (01/10/2026) : MAX(0;01/10/2026-04/11/2026) donne 0 et le statut est « À échoir ».

À retenir

Conclusion à destination du responsable du recouvrement : sur les trois factures déjà réglées, deux l'ont été en retard (7 et 12 jours), soit un retard moyen de 6,3 jours sur les trois. La facture F-104 n'est pas échue. Le modèle étant alimenté par la date de référence, il se met à jour dès qu'on change cette date ; en cas de remplacement de Date_ref par AUJOURDHUI(), le suivi devient dynamique mais les états imprimés ne sont plus reproductibles.

Cas 2 : nettoyer une liste de clients importée

Trois noms arrivent d'un import avec des espaces superflus et des majuscules disparates :

A (brut)
2 DUPONT jean
3martin CLAIRE
4Leroy Paul

Formules de la ligne 2, à recopier :

ColonneFormuleRôle
B=NOMPROPRE(SUPPRESPACE(A2))Nettoyage et mise en forme
C (nom)=GAUCHE(B2;CHERCHE(" ";B2)-1)Tout ce qui précède le premier espace
D (prénom)=DROITE(B2;NBCAR(B2)-CHERCHE(" ";B2))Tout ce qui suit le premier espace
E (courriel)=MINUSCULE(GAUCHE(D2;1)&"."&C2&"@exemple.test")Initiale du prénom, point, nom

Résultats attendus :

BrutBCDE
DUPONT jeanDupont JeanDupontJeanj.dupont@exemple.test
martin CLAIREMartin ClaireMartinClairec.martin@exemple.test
Leroy Paul Leroy PaulLeroyPaulp.leroy@exemple.test

Détail pour la ligne 2 : SUPPRESPACE donne DUPONT jean ; NOMPROPRE donne Dupont Jean (11 caractères). CHERCHE(" ";B2) vaut 7. Nom : GAUCHE(B2;7-1) = Dupont. Prénom : DROITE(B2;11-7) = les 4 derniers caractères = Jean. Courriel : GAUCHE("Jean";1) = J, puis J.Dupont@exemple.test, que MINUSCULE ramène à j.dupont@exemple.test.

Sans SUPPRESPACE, les espaces de tête et le double espace décalent CHERCHE et font renvoyer des morceaux faux : l'ordre d'application des fonctions compte.

À retenir

Conclusion à destination du responsable de la base clients : la colonne B est la seule à utiliser pour la suite ; les colonnes brutes sont conservées pour l'audit. Les formules étant recopiables, le nettoyage se refait en quelques secondes à chaque nouvel import. Les adresses générées sont une proposition : elles ne remplacent pas une vérification auprès des intéressés.

Cas 3 : découper une référence de facture et contrôler sa cohérence

Les références de factures se composent des lettres FA, de l'année sur quatre chiffres, d'un tiret et d'un numéro d'ordre sur cinq chiffres : FA2026-00347. La date de la facture est en B2.

A (référence)B (date)
FA2026-0034712/03/2026
FA2025-0120403/01/2026
ColonneFormuleLigne 2Ligne 3
C (année de la référence)=CNUM(STXT(A2;3;4))20262025
D (numéro d'ordre)=CNUM(DROITE(A2;5))3471204
E (contrôle)=SI(C2=ANNEE(B2);"OK";"Incohérent")OKIncohérent
F (libellé)="Facture "&A2&" du "&TEXTE(B2;"jj/mm/aaaa")Facture FA2026-00347 du 12/03/2026Facture FA2025-01204 du 03/01/2026

Vérification : STXT("FA2026-00347";3;4) renvoie les caractères 3 à 6, soit 2026 ; DROITE("FA2026-00347";5) renvoie 00347, que CNUM convertit en 347 (les zéros de tête disparaissent). Dans la ligne 3, l'année de la référence (2025) diffère de l'année de la date (2026) : la facture est signalée.

Sans TEXTE, la formule ="Facture "&A2&" du "&B2 afficherait un nombre à cinq chiffres à la place de la date.

À retenir

Conclusion à destination de la comptabilité clients : une facture sur deux est incohérente. Il faut vérifier si la date ou la référence est fausse avant tout règlement. Le contrôle est automatique et utilise des fonctions de base : pas besoin de saisie manuelle pour le détecter.

Vocabulaire essentiel

TermeDéfinition
Numéro de sérieNombre de jours écoulés depuis la date d'origine, qui représente une date
Date de référenceDate d'arrêté placée dans une cellule de paramètre, pour des résultats reproductibles
Fin de moisDernier jour du mois ; FIN.MOIS le calcule
ÉchéanceDate à laquelle un règlement est exigible
AnciennetéNombre d'années complètes entre une date de début et une date de référence
Chaîne de caractèresTexte, c'est-à-dire une suite de caractères, espaces compris
ConcaténationAssemblage de textes avec &
Code de formatChaîne qui décrit l'affichage d'une date ou d'un nombre dans TEXTE

Points clés à retenir

  1. Une date est un nombre : on peut l'additionner à des jours et soustraire deux dates pour obtenir un écart en jours.
  2. FIN.MOIS(date;0) donne le dernier jour du mois ; MOIS.DECALER(date;n) conserve le jour (ou prend le dernier jour du mois si besoin).
  3. JOURSEM(date;2) numérote de 1 (lundi) à 7 (dimanche) ; 6 et 7 désignent le week-end.
  4. « 45 jours fin de mois » et « fin de mois puis 45 jours » donnent des dates différentes : suivre l'ordre de l'énoncé.
  5. L'ancienneté en années complètes retire 1 quand l'anniversaire de l'année en cours n'est pas encore passé.
  6. AUJOURDHUI() rend le modèle non reproductible : pour un arrêté, on préfère une date de référence en paramètre.
  7. SUPPRESPACE nettoie, NOMPROPRE met en forme, CHERCHE localise, GAUCHE, DROITE et STXT extraient.
  8. Les extractions donnent du texte : CNUM le convertit en nombre ; TEXTE convertit une date ou un nombre en texte mis en forme.

Pièges fréquents

  1. Saisir une date sous une forme non reconnue (12.03.2026) : elle reste un texte et ne se calcule pas.
  2. Inverser l'ordre des opérations dans « fin de mois » : le résultat diffère de plusieurs jours.
  3. Oublier MAX(0;...) : un retard négatif apparaît quand le règlement précède l'échéance.
  4. Concaténer une date sans TEXTE : on obtient son numéro de série.
  5. Comparer un nombre et un texte : "2026" n'est pas égal à 2026 ; il faut CNUM.
  6. Compter les espaces dans NBCAR, CHERCHE ou GAUCHE : un espace en tête décale tout.
  7. Utiliser AUJOURDHUI() dans un état destiné à être archivé : il ne sera plus reproductible.
  8. Confondre CHERCHE et TROUVE : CHERCHE ignore la casse et accepte les jokers, TROUVE les distingue.

Q&R pour le tuteur IA

Q : Comment calculer l'échéance « 45 jours fin de mois » d'une facture datée en B5 ? R : =FIN.MOIS(B5+45;0). On ajoute les 45 jours, puis on se place à la fin du mois obtenu. Pour une facture du 12/03/2026, on obtient 30/04/2026.

Q : Comment obtenir un nombre de jours de retard sans valeur négative ? R : =MAX(0;date_de_règlement-échéance). Si le règlement est antérieur à l'échéance, le résultat est 0.

Q : Comment calculer l'ancienneté en années complètes d'un salarié entré en A2, à la date de référence en B2 ? R : =ANNEE(B2)-ANNEE(A2)-SI(DATE(ANNEE(B2);MOIS(A2);JOUR(A2))>B2;1;0). Pour une entrée le 02/09/2019 et une référence au 01/10/2026, on obtient 7 ; pour une entrée le 15/12/2021, on obtient 4.

Q : Quelle fonction supprime les espaces superflus d'un nom importé ? R : SUPPRESPACE. Elle retire les espaces au début et à la fin et ramène les espaces multiples à un seul. On l'enchaîne ensuite avec NOMPROPRE pour la casse.

Q : Pourquoi ="Du "&B2 affiche-t-il un nombre et non la date ? R : Parce que & colle la valeur stockée, c'est-à-dire le numéro de série. Il faut écrire ="Du "&TEXTE(B2;"jj/mm/aaaa").

Q : Quelle différence entre FIN.MOIS et MOIS.DECALER ? R : FIN.MOIS(date;n) renvoie toujours le dernier jour du mois décalé de n mois. MOIS.DECALER(date;n) conserve le jour du mois (par exemple le 12), sauf s'il n'existe pas dans le mois d'arrivée, auquel cas il renvoie le dernier jour.

Tu as lu le cours. Passe maintenant à la pratique :

SIG DCG (UE8) : Tableur, audit de feuille et programmation

Ajoute gratuitement le Kit à ton espace, puis utilise tes jetons pour générer un quiz, créer des flashcards ou poser tes questions au Tuteur IA.

Quiz, flashcards et fiches déjà prêts

Voir les packs DCG