CELL(セル)関数は、指定したセルについての要求した情報を返す関数です。
=CELL(検査の種類, 対象範囲)
前回記事:CEILING.PRECISE関数の使い方 - 指定した基準値の最も近い倍数に数値を切り上げる
-
CEILING.PRECISE関数の使い方 - 指定した基準値の最も近い倍数に数値を切り上げる
CEILING.PRECISE(シーリング・プリサイス)関数は、最も近い整数、または指定した基準値の最も近い倍数に数値を ...
続きを見る
CELL関数の使い方. 構文
CELL関数の構文は以下のとおりです。
=CELL(検査の種類, 対象範囲)
CELL関数の構文内訳
CELL(検査の種類、対象範囲) | |
項目 | 説明 |
---|---|
検査の種類(必須) | リクエストした情報の種類。 |
対象範囲(任意) | 情報が必要なセル。 |
検査の種類に割当できる値
CELL関数の構文"検査の種類"には、次のいずれかの値を指定することができます。
値 | 内容 |
---|---|
address | 対象範囲の左上にあるセルの書式なしテキストとして、絶対参照を返します。 |
col | 対象範囲のセルの列番号を返します。 |
contents | 対象範囲の左上にあるセルに含まれる値を返します。 |
prefix | 対象範囲のセルに含まれる横方向のテキスト配置に基づいて、テキスト値を返します。単一引用符(')は左揃えのテキスト、二重引用符(")は右揃えのテキスト、カラット(^)は中央揃えのテキスト、空白はその他のテキストに使用されます。 |
row | 対象範囲の左上にあるセルの行番号を返します。 |
type | 対象範囲のセルに含まれるデータの種類を返します。セルが空白なら "b"(blank:空白)、セルに書式なしのテキストが含まれる場合は "l"(label:ラベル)、セルに他のデータの種類が含まれる場合は "v"(value:値)を返します。 |
width | 対象範囲のセルに収まる文字数の単位で列幅を返します。返される数値は、デフォルトのフォントサイズにおけるゼロ(0)文字の幅に基づいて決定されます。これは、Google スプレッドシートが他の場所で使用しているピクセル単位で定義されるセル幅とは異なるため注意が必要。 |
CELL関数の使い方・実行サンプル
CELL関数にて以下のとおりに設定したときの結果を求めます。
対象セル | 検査の種類 | 種類の概要 | CELL関数 結果 |
---|---|---|---|
A2 | addres | セルのアドレス | =CELL(B2,A2) |
A3 | col | 対象セルの列数 | =CELL(A3,B3) |
A4 | contents | 対象セルの値 | =CELL(A4,B4) |
A5 | row | 対象セルの行数 | =CELL(A5,B5) |
A6 | type | 対象セルのデータ種類 | =CELL(A6,B6) |
CELL関数で算出した結果。
対象セル | 検査の種類 | 種類の概要 | CELL関数 結果 |
---|---|---|---|
A2 | addres | セルのアドレス | $A$2 |
A3 | col | 対象セルの列数 | 1 |
A4 | contents | 対象セルの値 | A4 |
A5 | row | 対象セルの行数 | 5 |
A6 | type | 対象セルのデータ種類 | l |
GIFで↓
A列のセルを参照に、B列の情報の種類がCELL関数で表されるようになりました。
CELL関数のサンプル実行結果
画像でCELLサンプル実行結果を確認↓
CELL関数 × GASの使い方・サンプル
CELL関数をGASで利用する際の、かんたんなサンプルを作成してみました。
実装する表のサンプル。
値 | 基準値 | CELL関数 |
---|---|---|
実装するGAS
function CELL() {
var ss,sht,val01,val02,values,rule,cell
ss = SpreadsheetApp.getActiveSpreadsheet();
sht = ss.getActiveSheet();
//前回値を削除
sht.getRange('A2:C2').activate();
sht.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
sht.getRange(2,1).activate();
//セルの値を入力
val01 = Browser.inputBox('対象セルを入力してください。(例:A1)',Browser.Buttons.OK_CANCEL);
if(val01 == "cancel"){
Browser.msgBox("処理を中止しました");
return;
} else {
//各値を記入
sht.getRange(2,1).setValue(val01);
// CEILL関数をセット
val02 = '=iferror(CELL(B2,A2),"B2の検査の種類を選択して下さい")';
sht.getRange(2,3).setValue(val02);
sht.getRange(1,1).activate();
}
//検査種のプルダウンを設置
values = ['address','col','contents','prefix','row','type','width'];
rule = SpreadsheetApp.newDataValidation().requireValueInList(values).build();
cell = sht.getRange("B2");
cell.setDataValidation(rule);
}
実行結果をGIFで
CELL関数を使うときの注意点
注意1. 検査の種類に指定外の値を入力すると#VALUE!エラーを返す
CELL関数は、検査の種類に指定外の値を入力すると#VALUE!エラーを返します。
以下にサンプルを記載します。
対象セル | 検査の種類 | CELL関数の結果 |
---|---|---|
A2 | text | #VALUE! |
注意2. 検査の種類は引用符("")で囲む
CELL関数では、検査の種類を引用符("")で囲まないと#NAME?エラーを返します。
以下にサンプルを記載します。
対象セル | CELL関数の結果 |
---|---|
A1 | =CELL(address,A2) |
注意3. 検査の種類・対象セルの順に指定する
CELL関数では、=CELL(検査の種類、対象セル)の順が守られないと#VALUE!エラーを返します。
以下にサンプルを記載します。
対象セル | 検査の種類 | CELL関数の結果 |
---|---|---|
A2 | address | =CELL(A2,B2) |
A2 | contents | =CELL(A3,B3) |
A2 | type | =CELL(A4,B4) |
CELL関数の使い方. ExcelとGoogleスプレッドシートとの違い
CELL関数は、ExcelとGoogleスプレッドシートで基本的な使い方に相違はありません。
しかし、ExcelのCELL関数のほうが検査の種類が多く紹介されています。スプレッドシートとExcelでの検査の種類を比較してみました。
対象セル | 検査の種類 | 対応 |
---|---|---|
A2 | address | SpreadSheet・Excel |
A3 | col | SpreadSheet・Excel |
A4 | contents | SpreadSheet・Excel |
A5 | row | SpreadSheet・Excel |
A6 | type | SpreadSheet・Excel |
A7 | prefix | SpreadSheet・Excel |
A8 | row | SpreadSheet・Excel |
A9 | width | SpreadSheet・Excel |
A10 | filename | Excelのみ |
A11 | protect | Excelのみ |
A12 | format | Excelのみ |
A13 | parentheses | Excelのみ |
次の一覧では、次の引数に使用できるテキスト値info_typeします。
CELL関数の使い方 まとめ
CELL関数の使い方でした。 有効に活用するには、
- 検査の種類に指定外の値を入力しない
- 検査の種類を引用符("")で囲む
- 検査の種類・対象セルの順に指定する
といった感じですね。
GASでもセルの番地やwidth幅、入力された列や行数を取得するときに使えそうな関数です。
関連記事: CEILING.MATH関数の使い方|指定した基準値の最も近い倍数に数値を切り上げる
関連記事: CEILING関数の使い方|値を基準値の倍数に切り上げる
関連記事: BITXOR関数の使い方|数値2つの排他的論理和を求める