Fonction Excel pour faire des requêtes de type SQL sur des données de feuille de calcul ?

J’ai une table assez grande dans une feuille de calcul Excel :

Column_1 | Column_2 | Column_3

ValueA       ValueB     ValueC
....

Ce dont j’ai besoin, c’est une fonction qui prendra en entrée la plage et une chaîne de requête de type SQL et retournera une plage de lignes correspondant à la requête, par exemple :

=SQL_SELECT(A1:C1000, "SELECT * WHERE Column_1 = ValueH AND Column_3 = blah")

Est-ce que quelque chose comme cela existe ? Ou quelle serait la meilleure façon de l’implémenter moi-même ?

Vous pouvez utiliser Données externes (malgré son nom), situé dans l’onglet ‘Données’ d’Excel 2010, pour configurer une connexion dans un classeur afin d’interroger les données de lui-même. Utilisez Depuis d'autres sources puis Depuis Microsoft Query pour vous connecter à Excel.

Une fois configuré, vous pouvez utiliser VBA pour manipuler la connexion pour, entre autres choses, visualiser et modifier la commande SQL qui pilote la requête. Cette requête référence le classeur en mémoire, donc ne nécessite pas de sauvegarde pour actualiser les dernières données.

Voici un rapide Sub pour démontrer l’accès aux objets de connexion :
`Sub DemoConnection()
Dim c As Connections
Dim wb As Workbook
Dim i As Long
Dim strSQL As String

Set wb = ActiveWorkbook
Set c = wb.Connections
For i = 1 To c.Count
    ' Reresh the data
    c(i).Refresh
    ' view the SQL query
    strSQL = c(i).ODBCConnection.CommandText
    MsgBox strSQL
Next

End Sub