J'ai un problème avec ma requête où j'ai des cellules numériques et des cellules de texte qui, si toutes sont vides, je ne souhaite pas les récupérer. Toutefois, si l'une des cellules n'est pas vide, je souhaite extraire cette ligne.
Je sais que is not Null
est utilisé pour les cellules numériques et <>''
pour les cellules de texte.
Par exemple:
Disons que la table ressemble à ceci dans la table de données d'origine. La feuille s'appelle 'Data'.
Column | A | B | C | D |
Cell Type | Number | Text | Number | Text |
Row1 | 7 | Stuff | 5.33 | Sweet |
Row2 | 8 | World | | Hello |
Row3 | 9 | | | |
Row4 | | | | |
Row5 | | | 9.77 | |
Je veux être capable de saisir toutes les lignes sauf Row4
Si j'utilise cette requête, cela devrait fonctionner correctement avec les types de cellules. Correct?
=Query(Data!A:D, Select D,B,A,C Where A Is Not Null OR B <>'' OR C Is Not Null OR D <>'')
J'ai appliqué cela à mon exemple de feuille de calcul qui utilise les mêmes principes que cette requête. Sauf que cela ne fonctionne que sur deux de mes feuilles. Les feuilles qui n'ont pas beaucoup de données à sélectionner; la requête ne saisit que les en-têtes. Dans mon esprit, pour le deuxième onglet appelé DonSmithPool, il devrait saisir quelques-unes des lignes contenant des commentaires de texte et pour le dernier onglet appelé TeachPool, il devrait saisir une rangée.
la requête ne saisit que les en-têtes.
Non, il saisit également quelques lignes. Faites défiler ... chemin, chemin en bas. Ils sont là. Voici pourquoi vous frappez ceci.
is not null
est toujours vrai pour ceux-ci et vous obtenez la table entière.Malheureusement, il semble n'y avoir aucun moyen de déclarer le type d'une colonne vide. Ceci, combiné au comportement "no nulls in string column", conduit à des personnes étant rendu fou par not null .
Pour garder votre santé mentale, soit
filter
quand elle suffit pour la tâche. Notez que la sortie du filtre peut être introduite dans une requête afin de combiner les meilleures fonctionnalités des deux.