ComptaNat.fr
 
  Le site de la comptabilité nationale  
 
 
 

Outils divers

La méthode RAS

Les comptables nationaux sont souvent appelés à travailler sur des tableaux qu'ils doivent équilibrer. La méthode RAS peut les aider dans cet exercice, elle consiste à partir d'un tableau équilibré et à se donner pour objectif de parvenir à un nouveau tableau dont les totaux en lignes et en colonnes sont légèrement différents des totaux du tableau d'origine, et cela en modifiant le moins possible la structure du tableau initial. Par exemple, on part du tableau ci-dessous et on souhaite le modifier de manière que les totaux de ses lignes et de ses colonnes deviennent TC et TL :

L'idée de la méthode est simple, il consiste à calculer un premier tableau dérivé du tableau d'origine en multipliant chacune des cellules du tableau par un coefficient de redressement de manière à parvenir à un tableau dont le total des lignes est calé sur l'objectif, puis de corriger ce premier tableau de manière à obtenir un tableau dont le total des colonnes est calé sur l'objectif. Le total des lignes n'est alors plus calé sur l'objectif initial et il faut procéder à des itérations.

Le programme Visual Basic ci-dessous montre comment procéder :

Sub RAS()
Dim D(4, 4)
Dim DL(4, 4)
Dim TLD(4)
Dim TL(4)
Dim TC(4)
Dim TCDL(4)

Set f = Sheets("PAC")
'Saisie de la matrice D des données initiales
For i = 1 To 3
For j = 1 To 3
D(i, j) = f.Cells(i + 1, j + 1)
Next j
Next i
'Saisie de la matrice TC, matrice cible du total des colonnes
For i = 1 To 3
TC(i) = f.Cells(i + 1, 6)
Next i
'Saisie de la matrice TL, matrice cible du total des lignes
For j = 1 To 3
TL(j) = f.Cells(6, j + 1)
Next j

'Début de la boucle d'itérations
For k = 1 To 10

'Initialisation des totaux de la matrice D
For j = 1 To 3
TLD(j) = 0
Next j
'Calcul des totaux de la matrice D
For i = 1 To 3
For j = 1 To 3
TLD(j) = TLD(j) + D(i, j)
Next j
Next i
'Initialisation de la matrice TCDL du total des colonnes de DL
For i = 1 To 3
TCDL(i) = 0
Next i
'Calcul de la matrice DL dont le total des lignes est calé sur la cible
For i = 1 To 3
For j = 1 To 3
DL(i, j) = D(i, j) * TL(j) / TLD(j)
TCDL(i) = TCDL(i) + DL(i, j)
Next j
Next i
'Calcul de la matrice D dont le total des colonnes est calé sur la cible
For i = 1 To 3
For j = 1 To 3
D(i, j) = DL(i, j) * TC(i) / TCDL(i)
Next j
Next i

Next k
'Fin de la boucle d'itérations

'Affichage du résultat
For i = 1 To 3
For j = 1 To 3
f.Cells(i + 9, j + 1) = D(i, j)
Next j
Next i

End Sub

Le résultat est le suivant :

 

Auteur : Francis Malherbe




 








Informatique
Comptabilité nationale
Économie
Comptabilité privée