Somme de colonne à l'aide de l'en-tête

Y compris Power BI, Power Query et toute autre question en lien avec Excel
p
piwai
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 16 mai 2017
Version d'Excel : 2013

Message par piwai » 16 mai 2017, 10:02

Bonjour à tous,

A partir d'une base de donnée où l'ordre des colonnes changent constamment, je souhaite faire l'équivalent de somme.si ou de somme.si.ens sans préciser quelle colonne sommée mais en lui donnant le nom de l'en-tête.
Impossible malgré mes essais.

Voici un exemple en fichier joint

Je souhaite qu'en H2, il y ait la somme des poids des fruits bleus provenant d’Espagne (sans indiqué que la colonne poids est la colonne C, ce que j'ai actuellement fait).

Merci d'avance
exemple fruit.xlsx
(8.61 Kio) Téléchargé 12 fois
Avatar du membre
M12
Passionné d'Excel
Passionné d'Excel
Messages : 3'123
Appréciations reçues : 120
Inscrit le : 3 juillet 2015
Version d'Excel : 2013

Message par M12 » 16 mai 2017, 10:17

Bonjour,

Il te suffit de nommer tes colonnes comme dans mon exemple.

Le fait de rajouter ou déplacer les colonnes te donnera toujours le bon résultat
exemple fruit.xlsx
(14.6 Kio) Téléchargé 15 fois
Merci de clôturer le fil en cliquant sur le bouton V vert du post à coté du bouton EDITER si problème résolu

Je ne répond pas au message privé
p
piwai
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 16 mai 2017
Version d'Excel : 2013

Message par piwai » 16 mai 2017, 10:22

Merci de ta réponse rapide, mais, comment nommer une colonne ?

et si je souhaite que mon tableau soit dans un autre onglet ? Je n'arrive pas à reproduire ta formule sur mon fichier
Avatar du membre
M12
Passionné d'Excel
Passionné d'Excel
Messages : 3'123
Appréciations reçues : 120
Inscrit le : 3 juillet 2015
Version d'Excel : 2013

Message par M12 » 16 mai 2017, 10:24

Re,

Place un classeur exemple concret :wink:
Merci de clôturer le fil en cliquant sur le bouton V vert du post à coté du bouton EDITER si problème résolu

Je ne répond pas au message privé
p
piwai
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 16 mai 2017
Version d'Excel : 2013

Message par piwai » 16 mai 2017, 10:34

J'ai mis un autre onglet dans le nouvel exemple.

De plus, je reçois ma base en csv assez souvent, dans ton exemple, je dois renommer les colonne une par une ? Car j'en ai 170... Si je peux me l'éviter, ça serait super
Exemple 2 - concret multionglet.xlsx
(292.47 Kio) Téléchargé 9 fois
Avatar du membre
M12
Passionné d'Excel
Passionné d'Excel
Messages : 3'123
Appréciations reçues : 120
Inscrit le : 3 juillet 2015
Version d'Excel : 2013

Message par M12 » 16 mai 2017, 11:21

Re,

OK, je vais te regarder cela.
Merci de clôturer le fil en cliquant sur le bouton V vert du post à coté du bouton EDITER si problème résolu

Je ne répond pas au message privé
Avatar du membre
M12
Passionné d'Excel
Passionné d'Excel
Messages : 3'123
Appréciations reçues : 120
Inscrit le : 3 juillet 2015
Version d'Excel : 2013

Message par M12 » 16 mai 2017, 11:51

Re,

Je pense que le fait d'utiliser un TCD est bien plus pratique et rapide
concret multionglet.xlsx
(316.85 Kio) Téléchargé 10 fois
Merci de clôturer le fil en cliquant sur le bouton V vert du post à coté du bouton EDITER si problème résolu

Je ne répond pas au message privé
p
piwai
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 16 mai 2017
Version d'Excel : 2013

Message par piwai » 16 mai 2017, 14:33

Merci mais cela signifie que je dois refaire les TCD à chaque mise à jour de la base ?
Avatar du membre
M12
Passionné d'Excel
Passionné d'Excel
Messages : 3'123
Appréciations reçues : 120
Inscrit le : 3 juillet 2015
Version d'Excel : 2013

Message par M12 » 17 mai 2017, 08:24

Re,

A tester
concret multionglet.xlsm
(310.4 Kio) Téléchargé 9 fois
Merci de clôturer le fil en cliquant sur le bouton V vert du post à coté du bouton EDITER si problème résolu

Je ne répond pas au message privé
B
Bijotrolol
Jeune membre
Jeune membre
Messages : 27
Inscrit le : 10 mai 2017
Version d'Excel : 2007

Message par Bijotrolol » 17 mai 2017, 10:07

Bonjour,

J'avais fais une macro qui copie colle la colonne en fonction de l'en-tête de la colonne si jamais cela peut t'aider.
Sub Copier_TPS()
Dim nbcol_CalcTPS As Long
Dim nbcol_Erp As Long
Dim nb_lignes As Long
Dim nom As String
Dim i As Long
Dim j As Long
Dim col As String
Sheets("CalcTPS").Cells.Clear
Sheets("Ordre_data").Activate
Sheets("Ordre_data").Rows("7:7").Copy
Sheets("CalcTPS").Activate
Sheets("CalcTPS").Rows("1:1").PasteSpecial Paste:=xlPasteValues
Sheets("ErpTPS").Activate
nbcol_Erp = ActiveSheet.UsedRange.Columns.Count
Sheets("CalcTPS").Activate
nbcol_CalcTPS = ActiveSheet.UsedRange.Columns.Count

Sheets("CalcTPS").Activate
For i = 1 To nbcol_CalcTPS
        nom = Sheets("CalcTPS").Cells(1, i)
        For j = 1 To nbcol_Erp
        Sheets("ErpTPS").Activate
            If Sheets("ErpTPS").Cells(1, j) = nom Then
            Sheets("ErpTPS").Columns(j).Copy
            Sheets("CalcTPS").Activate
            Sheets("CalcTPS").Columns(i).PasteSpecial Paste:=xlPasteValues
            Exit For
            Else
            End If
        Next j
        Next i
End Sub

En gros je fais une boucle sur la ligne qui contient les bons en-têtes et dans le bon ordre et je colle la colonne des que je le retrouve sur mon autre feuille. (Il y a beaucoup de "Activate" tu peux les supprimer c'était mes débuts en VBA)

Cdt :D
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message