Utilisation de colonnes individuelles pour classr datatables dans un tableau

Supposons que j'ai deux colonnes, C1 et C2, chacune contenant des données à valeur réelle. Je voudrais créer une table bidimensionnelle à partir de ces colonnes où chaque ligne est une gamme spécifique de valeurs dans C1 (par exemple 400-500) et chaque colonne une gamme spécifique de valeurs dans C2 (par ex. 10-14). C'est assez simple en sortingant C1 et C2 et en déterminant des plages raisonnables. Le problème principal, c'est que j'ai une troisième colonne C3 dont j'aimerais compléter la table. En particulier, je voudrais pouvoir sélectionner C3 et faire vérifier les valeurs associées dans C1 et C2 et utiliser cette information pour placer la valeur dans la cellule appropriée à l'intersection de ces deux valeurs de la table. Est-ce quelque chose qui nécessiterait VBA?

Si je comprends bien, votre C3 possède (C1, C2) comme coordonnées. Vos coordonnées d'origine dans C1 sont un nombre, mais dans la masortingce, il s'agit d'une plage sans chevauchement , par exemple, C1 peut être 413, mais cela se situe dans la plage 401-500 dans votre nouvelle masortingce. Il est possible de le faire sans VBA en utilisant VLOOKUP pour le mappage et la transformation des données.

Bien sûr, au fur et à mesure que la méthode devient de plus en plus complexe, afin de faciliter la réutilisation future, les modifications et la lisibilité, il est recommandé d'utiliser VBA, où il est plus simple d'append des commentaires et de voir l'algorithm fonctionnant dans un stream continu.

Si vous souhaitez éviter d'utiliser VBA, ce que vous pourriez faire, c'est dériver la gamme dans laquelle C1 tombe en utilisant la search de la gamme VLOOKUP et combiner cette gamme et la valeur C2 en une seule cellule, séparées par une virgule, puis sortinger datatables en C3 par cette nouvelle colonne dans l'ordre croissant. Notez que lorsque vous utilisez la search de la gamme VLOOKUP, elle donnera toujours une réponse, car elle searchra la valeur maximale égale ou inférieure à votre valeur C1, de sorte qu'elle n'a pas pour résultat # N / A; vous devez vous assurer que vos gammes couvrent toutes les valeurs possibles de C1 .

En supposant que vos plages C1 se trouvent dans la colonne A et que vos valeurs C2 se trouvent toutes dans la ligne 1 , vous pouvez utiliser VLOOKUP pour remplir la masortingce, puis manipuler n'importe quel # N / A par la suite.

Donc nous avons:

Tableau des valeurs C3

  • Valeurs C1 dans la colonne B
  • Valeurs C2 dans la colonne C
  • Coordonnées combinées dans la colonne D dans la feuille
  • Valeurs C3 résultantes dans la colonne E

Tableau des gammes C1

  • Valeur minimale de la gamme dans la colonne A
  • Gamme réelle dans la colonne B

Créer le tableau des gammes C1

Min val Range 0 0 1 1-100 101 101-200 201 201-300 301 301-400 401 401-500 501 501-600 etc. 

Combinez les coordonnées C1 et C2 dans la colonne D. Par exemple, cela traduit C1 = 413, C2 = 21 à "400-500,21",

 =VLOOKUP(B2,TableC1Ranges!$A$2:$B$100,2)&","&C2 

Ensuite, sortinger par colonne D et utiliser VLOOKUP dans la masortingce des valeurs C1 et C2

 =VLOOKUP($A2&","&B$1,TableC3!$D$2:$E$1000,2,FALSE)