
詳しい方教えてください。
前任者のファイルの作成で、どうしてもわからない部分があり、皆さんのお知恵を貸して頂ければと思います。
Excelで例えばA列に、【1,2,3・・・】と連番で番号をふられています。しかし、式が入っており
@offset(indirect(address(row(),column())),-1,0)+1
となっています。
address(row(),column())
はそのセルの行と列の番号を絶対参照(例えば、$D4$ など)を返す
indirect関数で、address関数で参照しているセル(例え、D4セルに100が入力していたら100を返す)
新しいExcelファイルで
@offset(indirect(address(row(),column())),-1,0)+1
を入力するとエラーになってしまいます。前任者のファイルでは【1,2,3・・・】と連番になります。
@offset(indirect(address(row(),column())),-1,0)+1
この意味は、address(row(),column())のセルの一行上の数値に1を足す?
という意味でしょうか。。。。
前任者はおらず、今までこのファイルを使っていた人に聞いてもきっと、前の人が使っていたからそのまま使った、意味はわからない、といわれて終わりです。
こんな仕事の仕方でいいのだろうか、と不安になります。
100%理解出来なくてもある程度理解して使いたいと思っています。
詳しい方、教えていただければと思います。
No.1ベストアンサー
- 回答日時:
row() は、式の書かれている行。
column() は、式の書かれている列。
address(row(),column())
は、式の書かれているセルアドレスを示す文字列。
indirect(address(row(),column()))
は、addressで作られたセルアドレスの文字列を、セル参照にする。
offset(indirect(address(row(),column())),-1,0)
は、indirectで作られたセル参照の、-1行下、0列右のセルに書かれている値を取得。
⇛数式の書かれているセルの1個上のセルの値
で、最後に+1してる。
で、この式を入れてエラーになるとはどういうエラー?
そこが重要なんだけど。
1行目に書いていれば、上のセルが存在しないのでエラーになる。
上のセルが文字であれば、文字に足し算ができないのでエラーになる。
とか、そういうことなんだろうか。
回答ありがとうございます。
もう一度試してみたら、エラーが出ずに、【1,2,3・・・】と表示されました。
普通に【1,2,3】と入力してオートフィルした方が早いような気がするのですが、何故このような難しい式を使っているのかが不明で質問させていただきました。
何か式を使うメリットがあるのでしょうか。。。
No.5
- 回答日時:
[No.2お礼]へのコメント、
》 行の削除や挿入をしても、再度オートフィルで
》 連番を振らなくてもいいと言うことですね。
そりゃ言い過ぎかと。だって、「挿入」された行には自動的に数式が入力されるわけがないので。
1行目あるいは行番 1 の開始セルの直上のセルには、数値 0 を手入力して、添付図に示す書式を設定して知らぬ顔を決め込むのが鯔背(イナセ)かもね。(^_^)

No.4
- 回答日時:
メリットは幾つかありますが、特に重要なのは開始行から連番へと
設定ができることですね。
連番の開始行より上にある行で、行挿入や行削除をした場合に、
オートフィルでは影響はありませんが、ROW関数を使った連番に
した場合は、開始番号が崩れます。
https://sun0range.com/microsoft-office/excel-tips/
連番のある範囲の行を削除した場合は、オートフィルでは連番に
ならなくなるので、質問にある式のほうが有利です。
開始番号を手入力などで指定しても使えるのもメリットですね。
デメリットは、連番の上のセルに文字列がある場合に#VALUE!の
エラーになることと、1行目から使うと#REF!のエラーになるので、
上のセルを数値にしたり、空白セルなどにすることで、エラー回避
させることができるので対応も簡単ですね。
行の追加や削除が多いシートならば、この式は特に力を発揮する
連番機能です。
No.3
- 回答日時:
なぜこんな面倒くさい式なのか?
という疑問について。
想像ですが、この式が使われているエクセルファイルって
行単位で編集することが多かったりしませんか?
・行単位で削除
・行単位でコピー→挿入
・行単位で切り取り→挿入
とか。
こういう編集をした場合に、確実に「式の書かれたセルの1つ上のセル」を参照させることができる式になってるんですね。
=offset(indirect(address(row(),column())),-1,0)+1
=[上のセル]+1
というセルを並べて書いて、下へコピーしてみて、
行単位での編集を試してみれば、違いがわかると思います。
行単位の編集を行った都度、オートフィルして番号振り直すのも面倒くさいし、し忘れちゃうってこともありえるじゃない?
そういうことを考慮して自動化でこの式を採用したんだと思う。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
Excelで数を数える、どのようにすれば効率的でしょうか
Excel(エクセル)
-
エクセルで値ではなく関数を参照する方法
Excel(エクセル)
-
Excelでシフト表を作成したいです。添付した画像の上の表から下の表のように、各現場…
Excel(エクセル)
-
-
4
Excelにはなぜ関数をいれないとできないのですか
Excel(エクセル)
-
5
Excelについて
Excel(エクセル)
-
6
Excelで漢字人名が勝手に並び変わる(続)
Excel(エクセル)
-
7
市町村の隣に県名
Excel(エクセル)
-
8
Excelの計算について質問です。11月で止まってるんですが、2022の12月と2023の一月からを
Excel(エクセル)
-
9
Excel 一つのセルに2つの関数を入れたい
Excel(エクセル)
-
10
なぜExit Subがあるのかわかりません
Excel(エクセル)
-
11
EXCELの外部データ取得ができない
Excel(エクセル)
-
12
エクセル開いたらウィンドウがでました
Excel(エクセル)
-
13
至急お願いします
Excel(エクセル)
-
14
CSVファイルでVBAを動かす方法
Excel(エクセル)
-
15
「入力した数値」と「その数値プラス2の数値」をセル番地にする方法を教えて下さい。
Excel(エクセル)
-
16
エクセル (空白ではなくゼロに)
Excel(エクセル)
-
17
セルに入力があれば表示させるには?
Excel(エクセル)
-
18
勤務表ですが、思うように出来ません。
Excel(エクセル)
-
19
ExcelのFIND関数について
Excel(エクセル)
-
20
Excelの計算式の意味が知りたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字列から英数字のみを抽出す...
-
SUMIF関数で、「ブランク以外を...
-
【Excel】4つとばしで合計する方法
-
エクセルで年月日から月日のみへ
-
エクセル1行おきのセルを隣の...
-
何時から何時までを○○、何時か...
-
エクセルで、A2のセルにA3...
-
エクセルで、指定の値よりも大...
-
自分の左隣のセル
-
Excelで離れた位置のAVERAGEを...
-
EXCEL-同じ組み合わせになった回数
-
EXCELのcountif関数での大文字...
-
セルを結合した時のエクセル集...
-
Excelで大量のセルに一気に関数...
-
一時間当たりの製造数を調べた...
-
エクセル 平日と土日祝の時間...
-
excelで、空白を除いてデータを...
-
エクセルに入力後、別シートの...
-
条件付き書式の色付きセルのカ...
-
週の労働時間を計算するエクセル
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SUMIF関数で、「ブランク以外を...
-
エクセルで年月日から月日のみへ
-
文字列から英数字のみを抽出す...
-
エクセル1行おきのセルを隣の...
-
エクセルで、指定の値よりも大...
-
自分の左隣のセル
-
エクセルに入力後、別シートの...
-
EXCELでマイナス値の入ったセル...
-
Excelで大量のセルに一気に関数...
-
セルを結合した時のエクセル集...
-
エクセルで、A2のセルにA3...
-
エラー「#REF」の箇所を置き換...
-
excelで、空白を除いてデータを...
-
EXCELのcountif関数での大文字...
-
Excelで離れた位置のAVERAGEを...
-
同一セル内の重複文字を削除し...
-
週の労働時間を計算するエクセル
-
エクセルでエンターを押すと任...
-
何時から何時までを○○、何時か...
-
【Excel】4つとばしで合計する方法
おすすめ情報