XL 2016 Dans la colonne qui porte le même titre, NB.SI...

charlesperret

XLDnaute Nouveau
Bonjour à tous,

J'espère que vous allez bien.

Savez-vous s'il existe une formule qui répond à :
  • Depuis la colonne de l'onglet 1 qui porte le même nom que la colonne dans laquelle je me trouve dans l'onglet 2, NB.SI les bleus qui ont voté 1.
Merci d'avance de votre temps & réponse,
Salutations,
Charles
 

Pièces jointes

  • Explication1.xlsx
    9.3 KB · Affichages: 26

charlesperret

XLDnaute Nouveau
=SOMMEPROD(('1'!$B$2:$F$12='2'!$A3)*('1'!$B$1:$F$1=C$1)*('1'!$A$2:$A$12="bleu"))
Je vous remercie pour votre réponse.

Cependant, vous me demandez de copier/coller cette formule dans la colonne C alors qu'elle a été préparer par vos soins pour la colonne C. Je souhaiterai obtenir un formule qui détecte dans quelle colonne je suis, et qui rapporte les données de la colonne de l'onglet 1 qui a le même titre.
 

charlesperret

XLDnaute Nouveau
Re,
Avez-vous testez et changer de titre ?
Sinon, il faudrait développer un peu plus la question avec un exemple sur classeur de ce que vous demander

Dans mon premier message, j'ai joint un classeur qui explique la situation.

Votre réponse est bien, mais il est nécessaire de rentrer manuellement la colonne pour laquelle on souhaite procéder au calcul.

Dans mon cas, j'ai 15 colonnes, par conséquent, je souhaite découvrir une formule où dans le "plage" de NB.SI(plage; critères), cela va chercher le nom de notre colonne dans l'onglet 2, et puis rapporter le calcul aux données de la colonne qui porte le même nom dans l'onglet 1.
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

A essayer
Code:
=SOMMEPROD(('1'!$A$2:$A$12="bleu")*(DECALER('1'!$A$1;1;EQUIV('2'!C$1;'1'!$B$1:$F$1;0);11)=$A3))

JHA
 

Pièces jointes

  • Explication1.xlsx
    9.7 KB · Affichages: 19
  • Explication 2.xlsx
    14.6 KB · Affichages: 19

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir le fil, bonsoir le forum,

Bien incapable de trouver une solution par formule je te propose le code VBA ci-dessous. Au cas où...


Code:
Sub Macro1()
Dim O1 As Worksheet 'déclare la variable O1 (Onglet 1)
Dim O2 As Worksheet 'déclare la variable O2 (Onglet 2)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim J As Byte 'déclare la variable J (incrément)
Dim I As Integer 'déclare la variable I (Incrément)
Dim T(1 To 4) As Integer 'déclare le tableau de 4 variables T (Total)
Dim R As Range 'déclare la variable R (Recherche)
Dim K As Byte 'déclare la variable K (incrément)

Set O1 = Worksheets("1") 'définit l'onglet O1
Set O2 = Worksheets("2") 'définit l'onglet O2
TV = O1.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
For J = 1 To 5 'boucle 1 : sur les 5 colonnes J ( colonnes A, B, C, D et E)
    For I = 2 To UBound(TV, 1) 'boucle 2 : sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
        If TV(I, 1) = "bleu" Then 'condition : si la donnée ligne I colonne 1 de TV est égale à "bleu"
            T(1) = T(1) + IIf(TV(I, J + 1) = 1, 1, 0) 'définit le total T1 (des 1)
            T(2) = T(2) + IIf(TV(I, J + 1) = 2, 1, 0) 'définit le total T2 (des 2)
            T(3) = T(3) + IIf(TV(I, J + 1) = 3, 1, 0) 'définit le total T3 (des 3)
            T(4) = T(4) + IIf(TV(I, J + 1) = 4, 1, 0) 'définit le total T4 (des 4)
        End If 'fin de la condition
    Next I 'prochaine ligne de la boucle 2
    'définit la recherche R (recherche dans la ligne 1 de l'onglet O2 la valeur de la cellule ligne 1 colonne J+1 de l'onglet O1)
    Set R = O2.Rows(1).Find(O1.Cells(1, J + 1), , xlValues, xlWhole)
    For K = 1 To 4 'boucle 3 : sur les 4 totaux du tableau T
        R.Offset(K, 0) = T(K) 'renvoie le total T(K) dans la cellule  R décalée de K lignes vers le bas
    Next K 'prochain total de la boucle 3
    Erase T 'vide le tableau T
Next J 'prchaine colonne de la boucle 1
End Sub

 

Discussions similaires

Réponses
18
Affichages
547

Statistiques des forums

Discussions
312 196
Messages
2 086 092
Membres
103 116
dernier inscrit
kutobi87