Concaténer une formule dans un tableau

Bonjour à tous,

J'ai un TableauDevis dans lequel je voudrais calculer le total des devis en faisant la somme des quantité individuelle par leur prix.
Comme j'ai 22 articles et que les colonnes ne sont pas contiguës, je voulais savoir s'il y a un moyen de simplifier la formule sinon elle va avoir une longueur pas possible.

Voici le tableau à quoi il ressemble :

2026 07 24 082008

Le début de la formule est celle-ci :

=([@Qu01]*[@Prix01])+([@Qu02]*[@Prix02])

peut-on simplifier cela ?
Merci d'avance.

Bonjour,

Si vous faites la somme de produits, vous pouvez utiliser Fonction Excel : SOMMEPROD

Bonjour,

J'ai chipoté pas mal sur votre formule ...

Vu que votre tableau est au format structuré, mettez cette formule en F7 -->
=SOMMEPROD((MOD(COLONNE(TableauDevis[@[Qu01]:[Qu22]])-COLONNE([@Qu01]);6)=0)*SI(ESTNUM(TableauDevis[@[Qu01]:[Qu22]]);TableauDevis[@[Qu01]:[Qu22]];0)*SI(ESTNUM(TableauDevis[@[Prix01]:[Prix22]]);TableauDevis[@[Prix01]:[Prix22]];0))

Cela correspond à ceci dans votre tableau si on tient compte des ref colonnes et lignes -->

=SOMMEPROD((MOD(COLONNE(L7:EI7)-COLONNE(L7);6)=0)*SI(ESTNUM(L7:EI7);L7:EI7;0)*SI(ESTNUM(M7:EJ7);M7:EJ7;0))

A recopier vers le bas

NB : attention à ne pas avoir des cellules au format texte dans les colonnes prix et Quantité. Il y a en a dans votre tableau.... sans quoi la formule considèrera que la cellule est à 0. Exemple en AJ10 à AK12 qui contient 6 cellules a format texte

Cela eut été plus simple de faire un colonne total pour chaque prix et quantité.

Cordialement

Bonjour,

J'ai regardé aussi avec cette formule mais je suis resté planté sur un faux résultat... qui multipliait de trop

=SOMMEPROD((MOD(COLONNE(L7:EI7);6)=1)*1;L7:EI7)*SOMMEPROD((MOD(COLONNE(L7:EI7);6)=0)*1;L7:EI7)

Je ne voyais pas ce que @Dan a bien vu lui

"Caramba encore raté" comme dans Tintin :)

P.

Bonjour,

J'ai chipoté pas mal sur votre formule ...

Vu que votre tableau est au format structuré, mettez cette formule en F7 -->
=SOMMEPROD((MOD(COLONNE(TableauDevis[@[Qu01]:[Qu22]])-COLONNE([@Qu01]);6)=0)*SI(ESTNUM(TableauDevis[@[Qu01]:[Qu22]]);TableauDevis[@[Qu01]:[Qu22]];0)*SI(ESTNUM(TableauDevis[@[Prix01]:[Prix22]]);TableauDevis[@[Prix01]:[Prix22]];0))

Cela correspond à ceci dans votre tableau si on tient compte des ref colonnes et lignes -->

=SOMMEPROD((MOD(COLONNE(L7:EI7)-COLONNE(L7);6)=0)*SI(ESTNUM(L7:EI7);L7:EI7;0)*SI(ESTNUM(M7:EJ7);M7:EJ7;0))

A recopier vers le bas

NB : attention à ne pas avoir des cellules au format texte dans les colonnes prix et Quantité. Il y a en a dans votre tableau.... sans quoi la formule considèrera que la cellule est à 0

Cela eut été plus simple de faire un colonne total pour chaque prix et quantité.

Cordialement

Re,

une suggestion : remplacer les blocs du type

SI(ESTNUM(TableauDevis[@[Prix01]:[Prix22]]);TableauDevis[@[Prix01]:[Prix22]];0)

par

SIERREUR(1*TableauDevis[@[Prix01]:[Prix22]]; 0)

Plus court, et conversion des textes en nombre si possible (même s'il vaut mieux éviter le texte directement).

Cela eut été plus simple de faire un colonne total pour chaque prix et quantité.

Il y a probablement une bonne raison pour cette présentation...

P.

Bonjour à tous !

Une approche possible en F7 :

=LET(
    fn; GAUCHE(TableauDevis[[#En-têtes];[Qu01]:[Prix22]]; 2);
    de; M7:EJ7;
    SOMME(FILTRE(de; fn = "Qu") * FILTRE(de; fn = "Pr"))
)

Bonjour à tous.

Merci de vous être penché sur ma question.

Je vais commencer par mettre les cellules au format nombre. Il n'y a pas de raison à ce qu'elles soient au format texte.

Et je vais tester vos propositions.

La dernière me semble correspondre à mon attente.

Je n'ai pas mis les totaux individuels pour

1°) ne pas augmenter significativement le nombre de colonnes.

2°) me laisser la possibilité de modifier une quantité et/ou de supprimer un article via le formulaire. (Ce qui fera l'objet dune autre demande ultérieure).

Je vous tiendrai informé des actions faites et de la solution retenue.

A+ encore merci. ;)

@Sabo12417

Si je comprends bien, ce code modifierai les chiffres "texte" en nombre ?

SIERREUR(1*TableauDevis[@[Prix01]:[Prix22]]; 0)

C'est bien ça ?

Ce qui ne va pas me conforter à ne pas convertir mes colonnes en nombre. c'est juste pour comprendre.

Rechercher des sujets similaires à "concatener formule tableau"