SEARCHを使うと、Numbersで大文字と小文字を区別せずにテキスト内のキーワードを検索できます。補助列を追加して各検索結果をTRUEまたはFALSEに変換し、必要な行をフィルタリングします。AppleのSEARCHのドキュメントでも、この動作が確認されています。
この手順では、選択したキーワードを含む説明を探すために、架空の図形プロジェクト一覧を使います。Appleの最新のMac用ガイドではNumbers 15.4が案内されています。インターフェイスが異なる場合は、インストールされているバージョンをNumbers → Numbersについてで確認してください。Mac用Numbersユーザガイド
大文字と小文字を区別しないキーワード検索を設定する
次の見出しを1つの表の1行目に入力します。説明をA列、オブジェクト数をB列に入力し、数式用にC列を空けておきます。以下の結果は、実行中のNumbersセッションで測定した値ではなく、ドキュメントに記載された関数から導かれる予想結果です。
| 行 | A: 説明 | B: オブジェクト数 | C: 一致 |
|---|---|---|---|
| 2 | TRIANGLEのレイアウト | 6 | TRUE |
| 3 | 小さなtriangleモデル | 4 | TRUE |
| 4 | Rectangleのレイアウト | 8 | FALSE |
| 5 | Triangleとcircleの研究 | 5 | TRUE |
| 6 | Circleのレイアウト | 3 | FALSE |
セルC2をクリックし、次の数式を入力してReturnを押します。最初に等号を入力すると、数式エディタが開きます。Appleはこの入力方法をMacのNumbersで表のセル内のデータを使って値を計算するで説明しています。
=IFERROR(SEARCH("triangle",A2)>0,FALSE)
SEARCHは、大文字と小文字を区別せずに、一致するテキストの開始位置を返します。その位置をゼロと比較すると、TRUEが得られます。キーワードがない場合、検索はエラーになります。IFERRORは、その値をFALSEに置き換えます。この組み合わせにより、再利用できる一致フラグを作れます。SEARCH、IFERROR
C2を選択し、黄色のオートフィルハンドルが表示されるまでポインタをセルの枠線に合わせます。C6まで下にドラッグします。オートフィルは既存の内容を上書きするため、空の範囲を指定してください。Appleはこの操作をMacのNumbersでセルを自動入力するで説明しています。
C3の数式がA3を参照し、C6の数式がA6を参照していることを確認します。これらは個別の行の数式で、それぞれ1つの説明を評価して1つの結果を返します。この方法では、単一セルへの参照を使ってください。範囲に変更すると、別の設計の数式になります。
キーワードの一致条件を決める
大文字と小文字を無視するだけでは、一致条件の一部しか決まりません。キーワードが長いテキストの一部に含まれていればよいのか、セル全体と一致する必要があるのか、それともパターンとして解釈するのかも決める必要があります。表をフィルタリングする前に、条件を選んでください。
| 要件 | 適した方法 | 結果の例 |
|---|---|---|
| 説明文のどこにあるテキストでも検索する | SEARCHとIFERROR |
triangleはTRIANGLEのレイアウトに一致する |
| 大文字と小文字を無視してセル全体を照合する | 小文字に変換した値を比較する | triangleはTRIANGLEに一致するが、Triangleのレイアウトには一致しない |
| 句読点を含む文字列をそのまま検索する | 小文字にしたテキストにFINDを適用する |
アスタリスクを通常の文字として扱える |
| 構造化されたパターンを認識する | 大文字と小文字の設定を指定してREGEXを使う |
許可するパターンを明示する |
セル全体を照合する
セル全体を比較するには、C2の数式を次のものに置き換えて、下方向にオートフィルします。
=LOWER(A2)=LOWER("triangle")
LOWERはテキストを小文字に変換し、等価比較で変換後の値を照合します。この数式では、セルの内容がTRIANGLEまたはTriangleだけであれば一致します。Triangleのレイアウトは一致しません。スペースや句読点もそのまま残るため、こうした違いを考慮する必要があるか決めてください。LOWER、数式を使って値を比較する
句読点とパターンを意図的に扱う
ワイルドカード構文では、*と?に特別な意味があり、それぞれ任意の長さの文字列と1文字を表します。ワイルドカード文字の前にチルダを付けると、その文字をそのまま検索できます。たとえば、~?は疑問符を検索します。文字列演算子とワイルドカードを使う
文字列をそのまま検索する場合は、両方の引数を小文字にして、ワイルドカードを使わない通常のテキスト検索を行うFINDを使う方法もあります。次の数式は、A2の説明にアスタリスクがそのまま含まれているかを検索します。
=IFERROR(FIND(LOWER("*"),LOWER(A2))>0,FALSE)
ここでは、LOWERが大文字と小文字の違いをなくしてから、FINDが実行されます。引用符で囲まれたアスタリスクを、必要な文字列に置き換えてください。FIND、LOWER
正規表現を使う場合は、大文字と小文字の扱いを明示してください。Appleの説明によると、REGEX(pattern,FALSE)は大文字と小文字を区別しません。2番目の引数を省略すると、正規表現は大文字と小文字を区別します。また、単語の境界や使用可能な文字を独自に定義する必要があります。REGEX
どちらかのキーワード、または両方のキーワードを検索する
少数の固定キーワードを使う場合は、補助列を分けるとロジックを確認しやすくなります。C2のtriangleのテストはそのままにします。D1にCircle matchと入力し、D2に次の数式を入力してD6までオートフィルします。
=IFERROR(FIND(LOWER("circle"),LOWER(A2))>0,FALSE)
これは前述の小文字化とFINDを使う方法です。C列とD列は、同じ説明に対する別々の判定を示します。E1にEither keyword、F1にBoth keywordsと入力します。それぞれE2とF2に次の数式を入力し、両方とも下方向にオートフィルします。
=OR(C2,D2)
=AND(C2,D2)
ORは、引数の少なくとも1つが真の場合にTRUEを返します。ANDは、すべての引数が真であることを求めます。フラグを分けると、どのキーワードが一致したかも確認できます。OR、AND
サンプルの説明では、Rectangleのレイアウトを除くすべての行が、少なくとも1つのキーワードに一致します。両方のキーワードに一致するのはTriangleとcircleの研究だけです。こうした予想結果を使って、大きなプロジェクト表に数式を適用する前に簡単な確認ができます。
表をフィルタリングし、結果を見やすく表示する
一致する行を表示するには、該当する結果列のセルを選択します。triangleならC列、どちらかのキーワードならE列、両方ならF列です。列文字にポインタを合わせ、矢印のメニューを開いてクイックフィルタを選びます。TRUEを選択し、ほかの値の選択を解除します。シート上の別の場所をクリックして終了します。MacのNumbersでデータをフィルタリングする
フィルタリングすると、表示される行が変わります。フィルタリングできない場合、Appleは結合セルがないか確認し、あれば結合を解除するよう案内しています。整理サイドバーのフィルタタブで、フィルタを確認またはオフにできます。MacのNumbersでデータをフィルタリングする
結果を見分けやすくするには、テキスト結果の列を追加します。たとえば、G1にResultと入力し、「どちらかのキーワード」の結果をラベル付けするため、G2に次の数式を入力します。
=IF(E2,"Match","No match")
数式を下方向にオートフィルします。IFは、E2が真なら最初のラベルを、偽なら2番目のラベルを選びます。IF
G2:G6を選択し、フォーマット → セル → 条件付きハイライトを開き、ルールを追加をクリックします。Matchと等しいかを調べるテキストルールを選び、塗りつぶしまたはテキストのスタイルを選択して、完了をクリックします。Appleが案内するハイライトの手順では、選択したセルの値が評価され、セル参照による比較もできます。MacのNumbersでセルの条件を使う
この方法で色が付くのは結果セルです。行全体の自動書式設定や、説明文内のキーワードだけの色付けは設定できません。一致の計算は表のセルで行い、結果にはドキュメントに記載されたハイライトルールを適用します。複数のハイライトルールがセルに一致する場合、Appleによると、リストの最初のルールで表示が決まります。MacのNumbersでセルの条件を使う
フィルタ表示を使う前に、予想外の結果を確認する
説明が広く一致しすぎる場合は、まず一致条件を確認してください。部分文字列検索では、長い単語の中にあるキーワードにも一致することがあります。説明が単一カテゴリのラベルであるべきならセル全体の一致を使い、境界が重要ならパターンを意図的に定義してください。
結果が正しくないように見える場合は、IFERRORを付けずに内側の検索式を一時的に確認します。このラッパーはエラーを代替値に置き換えるため、上流で発生したエラーが通常の不一致に見えることがあります。Numbersでは数式エラーをクリックすると、メッセージを確認できます。IFERROR、表のセル内のデータを使って値を計算する
フィルタした表のオブジェクト数をグラフにする場合は、グラフで非表示データがどう扱われるかを確認してください。Appleによると、デフォルトでは非表示またはフィルタリングされたデータは除外されます。含めるには、グラフを選択し、フォーマット → グラフ → グラフオプションの非表示のデータを有効にします。MacのNumbersでグラフデータを変更する
まず5行のサンプルを使って、予想されるフラグを確認します。次に説明に合った一致条件を選び、補助列の数式をデータ全体に適用し、該当する結果列をフィルタリングします。一致フラグを表示しておけば、各プロジェクト行が含まれた理由を簡単に確認できます。
出典
- Mac用Numbersユーザガイド — Apple。
- SEARCH — Apple。
- IFERROR — Apple。
- MacのNumbersで表のセル内のデータを使って値を計算する — Apple。
- MacのNumbersでセルを自動入力する — Apple。
- LOWER — Apple。
- 文字列演算子とワイルドカードを使う — Apple。
- FIND — Apple。
- REGEX — Apple。
- OR — Apple。
- AND — Apple。
- IF — Apple。
- MacのNumbersでデータをフィルタリングする — Apple。
- MacのNumbersでセルの条件を使う — Apple。
- MacのNumbersでグラフデータを変更する — Apple。