Détermination du « plus haut depuis » ou du « plus bas depuis » (Microsoft Excel)
Alex analyse régulièrement les dernières données de l’industrie du bâtiment et doit rédiger des articles sur ces données. Souvent, il a besoin de mettre en évidence de nouvelles données, telles que «la construction de bâtiments industriels était la plus faible depuis août 2019». Alex s’est demandé s’il y avait un moyen d’automatiser ce type de mise en évidence; si la colonne A contient le mois et l’année et la colonne B contient les valeurs pour ces périodes, Alex aimerait une formule dans la colonne C qui indique «cette valeur est la plus élevée depuis avril 2019» ou «cette valeur est la plus basse depuis novembre 2016».
En supposant que le mois et l’année répertoriés dans la colonne A sont vraiment une valeur de date Excel (et non du texte), vous pouvez facilement créer une formule pour renvoyer les informations souhaitées. Si la ligne 1 est occupée par des en-têtes pour vos colonnes, entrez ce qui suit dans la cellule C2:
=IF(ROW(B2)=2,"",IF(B2>MAX($B$1:B1), "this value is the highest since " & TEXT(INDEX($A$1:A1,MATCH(MAX( $B$1:B1),$B$1:B1,0)), "mmmm yyyy"), IF(B2<MIN($B$1:B1), "this value is the lowest since " & TEXT(INDEX($A$1:A1, MATCH(MIN($B$1:B1),$B$1:B1,0)), "mmmm yyyy"),"")))
N’oubliez pas qu’il s’agit d’une formule unique et qu’elle doit être saisie sur une seule ligne. Vous pouvez copier la formule autant de lignes que nécessaire dans la colonne C et elle doit fournir les informations souhaitées. Il n’effectue une notation dans la colonne C que si la valeur de la colonne B est supérieure au maximum ou inférieure au minimum de toutes les valeurs précédentes de la colonne B.
Si vous avez pas mal de données dans votre feuille de calcul, vous pouvez remarquer que la formule entraîne de longs temps de recalcul. Si tel est le cas, vous pouvez envisager d’utiliser une macro qui effectuera l’analyse souhaitée et fournira les informations appropriées. La macro suivante regarde en arrière les informations de la colonne B et fournit à la fois un résultat « le plus bas depuis » et « le plus élevé depuis » dans les colonnes C et D.
Sub FindHiLow() Dim orig_cell As Range Dim orig_val As Integer Dim orig_row As Integer Dim rownum As Integer Dim newcell As Range Dim new_val As Integer Dim lowrow As Integer Dim hirow As Integer Set orig_cell = ActiveCell orig_row = ActiveCell.Row orig_val = orig_cell.Value ' find lowest lowrow = 0 For rownum = orig_cell.Row - 1 To 1 Step -1 Set newcell = Cells(rownum, 2) new_val = newcell.Value If orig_val >= new_val Then lowrow = rownum Exit For End If Next If lowrow = 0 Then lowrow = 1 Cells(orig_row, 3).Value = "Lowest since " & Cells(lowrow, 1) ' find highest hirow = 0 For rownum = orig_cell.Row - 1 To 1 Step -1 Set newcell = Cells(rownum, 2) new_val = newcell.Value If orig_val <= new_val Then hirow = rownum Exit For End If Next If hirow = 0 Then hirow = 1 Cells(orig_row, 4).Value = "Highest since " & Cells(hirow, 1) End Sub
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (10183) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:
link: / excel-Determining_Highest_Since_or_Lowest_Since [Détermination du" plus haut depuis "ou" le plus bas depuis "]
.