J'ai créé un exemple de tableau ci-dessous, assez similaire à mon tableau dans Excel pour servir à illustrer la question. Je veux simplement ajouter une ligne après chaque donnée distincte dans la colonne1 (plus simple, en utilisant Excel, merci).
_
column1 | column2 | column3
----------------------------------
A | small | blue
A | small | orange
A | small | yellow
B | med | yellow
B | med | blue
C | large | green
D | large | green
D | small | pink
_
Remarque: la ligne vide après chaque colonne distincte1
column1 | column2 | column3
----------------------------------
A | small | blue
A | small | orange
A | small | yellow
B | med | yellow
B | med | blue
C | large | green
D | large | green
D | small | pink
Cela fait exactement ce que vous demandez, vérifie les lignes et insère une ligne vide vide à chaque changement dans la colonne A:
sub AddBlankRows()
'
dim iRow as integer, iCol as integer
dim oRng as range
set oRng=range("a1")
irow=oRng.row
icol=oRng.column
do
'
if cells(irow+1, iCol)<>cells(irow,iCol) then
cells(irow+1,iCol).entirerow.insert shift:=xldown
irow=irow+2
else
irow=irow+1
end if
'
loop while not cells (irow,iCol).text=""
'
end sub
J'espère que ça vous aide à commencer, faites le nous savoir!
Philippe
Deviner.
Placez une nouvelle colonne à gauche de column1 et copiez-collez la formule suivante
= B2 = B3
= B3 = B4
= B4 = B5
... tout en bas (supposons que la colonne B soit la colonne 1 de la question initiale).
Cette formule détermine si la ligne suivante est une nouvelle valeur dans colonne1 ou non. Désopérant sur le résultat, vous aurez VRAI ou FAUX. Copier et coller ces résultats sous forme de valeurs, puis permutez "FALSE" pour nil et "TRUE" pour 0,5
Ajoutez ensuite cette colonne remplie de 0,5 seulement à la colonne1, ce qui donnera le tableau suivant:
newcolumn0 | column1 ("B") | column2 | column3
-----------------------------------------------------
| 1 | small | blue
| 1 | small | orange
1.5 | 1 | small | yellow
| 2 | med | yellow
2.5 | 2 | med | blue
3.5 | 3 | large | green
| 4 | large | green
4.5 | 4 | small | pink
Enfin, copiez et collez les valeurs de newcolumn0 juste en dessous des valeurs de column1, puis triez le tableau par column1. Une ligne vide apparaît entre chaque nombre entier distinct dans column1. Le tableau ressemble à ceci:
newcolumn0 | column1 ("B") | column2 | column3
---------------------------------------------------------------
| 1 | small | blue
| 1 | small | orange
1.5 | 1.5 | |
| 1 | small | yellow
| 2 | med | yellow
| 2 | med | blue
2.5 | 2.5 | |
| 3 | large | green
3.5 | 3.5 | |
| 4 | large | green
| 4 | small | pink
4.5 | 4.5 | |
=IF(B3=B2,A2,A2+1)
et copiez-collez cette formule pour le reste de la colonne 2Sélectionnez votre tableau, y compris les étiquettes de colonne, DATA> Outline-Total, à chaque changement dans: column1, utilisez la fonction: Count, ajoutez le sous-total à: column3, cochez Remplacer les sous-totaux actuels et Résumé sous les données, OK.
Filtrez et sélectionnez pour Colonne1, Filtres de texte, Contient ..., Nombre, OK. Sélectionnez tous les éléments visibles en dehors des étiquettes et supprimez le contenu. Supprimez le filtre et, si vous le souhaitez, dissociez les lignes.
Cela ne fonctionnera pas si les données ne sont pas séquentielles (1 2 3 4 mais 5 7 3 1 5) car dans ce cas, vous ne pouvez pas les trier.
Voici comment je résous ce problème pour moi:
Colonne Données initiales devant contenir 5 lignes entre chaque numéro - 5 4 6 8 9.
Colonne B- 1 2 3 4 5 (Le dernier chiffre représente le nombre de lignes vides que vous devez placer entre les chiffres de la colonne A) copier-coller 1 -5 dans la colonne B aussi longtemps que vous avez des numéros dans la colonne A.
Passez à la colonne D, dans le type D1 1. Dans D2, tapez cette formule: =IF(B2=1,1+D1,D1)
Retour à la colonne C - dans la cellule C1, tapez cette formule - =IF(B1=1,INDIRECT("a"&(D1)),"")
. Faites-le glisser et nous avons terminé. Maintenant, dans la colonne C, nous avons la même séquence de chiffres que dans la colonne A, distribuée séparément par 4 rangées.
Juste une idée, si vous connaissez les catégories, comme petites, moyennes et grandes mentionnées ci-dessus ...
Au bas de la feuille, créez 3 lignes ne mentionnant que petites, moyennes et grandes, modifiez la police en blanc, puis effectuez le tri de manière alphabétique en plaçant une ligne vide entre chaque section.