Numbers for Macで複数語の在庫ラベルを頭文字にするには、TRIM、REGEX、SUBSTITUTE、UPPERを使った補助列を使用します。以下の数式は、Blue Storage BoxをBSBに変換します。通常のスペースで区切られた各単語の最初の文字を取り出します。

この手順は、説明全文を残しつつラベルを短くしたい在庫表を管理するMacユーザー向けです。Numbers for Macの現行ガイドに沿っており、ガイドにはNumbers 15.4と記載されています。インストールされているバージョンはNumbers > About Numbersで確認してください。Numbers for Macユーザガイド

補助列に略称の数式を入力する

見出し行を含む1つの表に、A列にLabel、B列にAbbreviation、C列にCount、D列にAbbreviation occurrencesの4列を作成します。2~6行目に、以下の架空のラベルと個数を入力します。B列とD列は最初は空欄にし、比較用に期待される結果をここに示します。

行 A: ラベル B: 期待される略称 C: 個数 D: 期待される出現回数
2 Blue Storage Box BSB 12 1
3 green round tray GRT 8 1
4 Large Square Tile LST 24 2
5 Long Slim Tube LST 6 2
6 Small Round Tray SRT 10 1

セルB2を選択し、次の数式全体を入力します。

=UPPER(SUBSTITUTE(SUBSTITUTE(TRIM(A2),REGEX("([^ ])[^ ]*"),"$1")," ",""))

=と入力すると、Formula Editorが開きます。数式の残りを入力し、Returnを押して確定します。B2の結果はBSBになるはずです。Appleは、数式の入力方法と、参照セルを入力として使う方法の両方を説明しています。Numbers for Macで表のセル内のデータを使って値を計算する

この数式は、Appleが説明している関数を組み合わせています。特にAppleは、SUBSTITUTEの置換文字列に正規表現のキャプチャグループを使う方法を明示しており、ここで使っている$1表記にも対応しています。SUBSTITUTE

例では、引数の区切りにカンマを使っています。小数点としてカンマを使う設定の場合は、数式の引数をセミコロンで区切るようAppleは案内しています。引用符で囲んだスペースと正規表現の文字列は変更しないでください。関数の概要

数式で残る文字と取り除かれる文字を理解する

数式を内側の関数から順に見ていきます。各段階で小さな変換を1つずつ行うため、予期しない結果の原因を特定しやすくなります。

まず、TRIM(A2)は先頭と末尾のスペースを削除し、単語間で繰り返されるスペースを1つにまとめます。そのため、 Small Round Tray と入力したラベルは、略称の処理を始める前にSmall Round Trayになります。TRIM

次に、REGEX("([^ ])[^ ]*")は、通常のスペース以外の文字が途切れずに続く部分をそれぞれ表します。括弧で囲まれた部分が最初の文字をキャプチャし、残りの部分がその文字列の残りに一致します。Appleによると、正規表現はICU標準に準拠しています。このパターンの解釈が、この略称作成方法の基礎です。REGEX

内側のSUBSTITUTEは、$1を使い、一致した各単語をキャプチャした最初の文字に置き換えます。出現回数を指定する引数を省略しているため、一致するすべての箇所が置き換えられます。つまり、Blue Storage BoxはB S Bになります。外側のSUBSTITUTEが通常のスペースを削除し、BSBを生成します。SUBSTITUTE

最後に、UPPERが結果を大文字に変換します。元の説明が小文字や大文字・小文字の混在で入力されていても、ラベルを統一できます。たとえば、green round trayはGRTになります。UPPER

このルールでは、短い接続語も含め、スペースで区切られた各単語から1文字を取り出します。どの単語を重視するかは判断しません。たとえば、Box of Round TilesはBORTになります。一部の単語を省いた略称にしたい場合は、数式を拡張する前に命名ルールを決めてください。

数式を下方向にコピーして結果を確認する

B2に期待どおりの結果が表示されたら、そのセルを選択します。選択範囲の境界にポインタを合わせ、黄色いオートフィルハンドルが表示されたら、B6まで下にドラッグします。オートフィルは数式と関連する書式をコピーし、コピー先に既存の内容がある場合は上書きするため、空の補助セルを使ってください。Numbers for Macでセルをオートフィルする

B3の数式を確認し、参照元がA3であることを確かめます。この参照は相対参照のままにし、各略称が同じ行のラベルを使うようにします。Appleの説明では、行または列の参照を固定すると絶対参照になります。固定範囲には便利ですが、参照元セルが行ごとに変わる今回のケースでは不要です。Numbers for Macで表のセル内のデータを使って値を計算する

この数式を在庫全体に適用する前に、以下の診断用の表と代表的なラベルをいくつか比較してください。これらは数式から導かれる例です。同じ文字変換を小さなPythonの例で確認しましたが、Numbersアプリでは数式を実行していません。

入力ラベル 結果 示していること
Single S 1語のラベルからは1文字が取り出されます。
Small Round Tray SRT 余分な通常のスペースは正規化されます。
空のテキスト 空のテキスト 残す文字がありません。
Blue-Green Storage Box BSB このルールではハイフンは単語の区切りになりません。
Box 12 Large B1L 数字の単語からは最初の数字が取り出されます。

区切り文字として認識されるのは、通常のスペース文字だけです。このバージョンを使う前に、タブ、改行、ノーブレークスペースを正規化してください。また、単語が句読点で始まるラベルも確認してください。このパターンでは句読点も最初の文字として残ります。ハイフンでつながれた説明から2つの頭文字を取り出したい場合は、別の作業列で区切り文字を統一してから略称を作成してください。

略称の代わりにNumbersでエラーが表示された場合は、エラーアイコンをクリックしてメッセージを読みます。括弧、引用符で囲んだ文字列、引数の区切り記号、参照元を確認してください。Appleはこのエラー確認方法を説明しています。メッセージに従って数式を修正してから、ほかの行にコピーしてください。Numbers for Macで表のセル内のデータを使って値を計算する

異なるラベルで重複する略称を見つける

この例には、意図的に重複が含まれています。Large Square TileとLong Slim TubeはどちらもLSTになります。頭文字にすると情報が失われるため、数式が正しくても曖昧なラベルが生じることがあります。説明全文を略称の横に残し、短いラベルだけを使う前に重複を確認してください。

例の5行を対象に、次の数式全体をD2に入力し、D6まで下にコピーします。

=COUNTIF(B$2:B$6,B2)

COUNTIFは、条件を満たすセルの数を数えます。ここでは、現在の行の略称と一致する略称の数を数えます。期待される結果は1、1、2、2、1です。文字と数字を含む空でない略称には、この簡単な確認方法を使えます。COUNTIFは条件内のワイルドカード文字も解釈するため、アスタリスクなどの句読点には追加の処理が必要です。COUNTIF

ドル記号は範囲の行端を固定し、最後のB2参照は下にコピーするたびに変わります。コピーした数式が引き続き2~6行目を対象にしていることを確認してください。在庫の行を追加した場合は、確認対象の範囲を広げます。AppleはPreserve RowとPreserve Columnという参照トークンの操作方法も案内しています。Numbers for Macで表のセル内のデータを使って値を計算する

カウントが1を超える場合は、説明全文を確認してください。同じ物体の行が重複している場合と、説明が異なるのに頭文字が同じ場合とでは、対応が異なります。LSTに該当する2つの物体には、別の表示ラベル列を設けて、LST TileやLST Tubeのように意図的にラベルを付ける方法があります。生成された略称の列も残しておけば、命名の判断を簡単に把握できます。

略称の重複を見つけやすくするには、D2:D6を選択し、Formatサイドバーを開いて、Cell > Conditional Highlighting > Add a Ruleを選びます。値が1より大きい数値ルールを追加し、スタイルを選んでDoneをクリックします。条件付きハイライトは値に応じて見た目を変えます。カウントは補助数式が行います。複数のルールが適用される場合、最初に一致したルールが表示を決めるとAppleは説明しています。Numbers for Macでセルの条件を使う

配列の結果とグラフのラベルはこの作業の範囲内に保つ

この略称の数式は、行ごとに1つのテキスト値を返します。結果をスピルさせる配列や、単語ごとの中間結果を入れる空き列は必要ありません。AppleのTEXTSPLIT関数はテキストを列方向または行方向に分割できますが、分割するだけでは複数の断片ができるだけで、完成した1つの略称にはなりません。出力にコンパクトなラベルを1つ求める場合は、上記の単一セル用数式を使ってください。TEXTSPLIT

後で物体の個数をグラフにする場合は、確認済みの表示ラベルと数値の個数を含む表範囲を用意します。Numbersでは表のデータからグラフを作成できます。セルを選択してChartをクリックし、グラフの種類を選びます。作成されたカテゴリラベルを確認し、必要に応じてEdit Data Referencesを使ってください。補助列の値を変更しても、グラフがその値をデータ参照に含めている場合にのみ反映されます。略称の列を作っただけでは、既存のグラフに自動で追加されません。Numbers for Macでグラフを作成するデータを選択する

説明全文を残し、隣の列に頭文字を生成して、別の場所で使う前に重複を確認してください。こうすれば、頭文字が偶然同じになる物体を区別するのに十分な情報を保ちながら、略称作成の手順を繰り返し使えます。

出典