重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

お世話になります。宜しくお願いします。

表組が3段積みになっています。
A表の開始位置固定で、参加人数によって下へ延びる表です。
B表はA表の末行より3行下から始まります。
C表もB表の末行より3行下から始まります。

A表の参加番号をROW関数によって求めます。
例としてA5から数え始めた場合、ROW()-4で「A表のNo.1」が求められます。
その後もオートフィルにて任意の人数まで番号が自動で振られます。
因みに、表自体はテーブルを使っているので、タブ付テキストをコピペすれば自動で下に延びます。

この場合、A表の終わりは毎回違うためA表の全体行は可変数となってしまいます。
B表の開始位置が毎回A表の行数によって変わるので、どのように指定したらいいのかわかりません。

B表の始まりをROWで指定すると、前表が11人だったら
11行(A5からスタートしているのでA15までがA表)+3行(AとBの空行)=A18がB表のスタート位置
ROW()-17でB表の1番が表示される。
ですが、A表の行数が毎回違うので、固定して最初のA15を指定できない。
OFFSET関数を利用しようと思いましたが、使い方がわからずです。

何とぞ宜しくお願いします。

office 365 for mac
ver.16.53

A 回答 (2件)

こんにちは



ご質問の内容を正しく理解できているのかわかりませんけれど・・・
「開始位置が可変の表の検索の方法がわからない」ということでしょうか?

ひとつの方法として、
「各表の開始位置に目印を設定しておいて、その位置を検索する」という方法が考えられます。

ご説明文にある、
>3行下から始まります。
を目印(2行連続の空白)にしても良いのですが、少々ユニーク性に欠けるので・・・

例えば、各表の開始位置(A列)に、【A表】、【B表】、【C表】などのユニークなタイトルを入力しておくルールにします。
各表の開始位置を知りたければ、A列からそれぞれの目印を検索すれば、開始位置がわかりますよね?
上の例で、【B表】の開始位置を知りたければ、
 MATCH("【B表】",A:A,0)
で、その行番号(=位置)がわかりますので、後の計算はこれを利用すれば良いことになります。

仮に、次の行からB表の内容があるとするなら、B表の実質的な1行目は
 MATCH("【B表】",A:A,0) + Row(A1)
で、指定できることになります。(↑は下方にフィルコピー可能な式です)


※ 「2行連続の空白」が他で生じることがないという保証があるのなら、タイトルなどを付けなくても、現状のまま「2行連続の空白」を利用して目印にすることも可能でしょう。
(こちらの場合であれば、そのままのロジックを終了行の目印検索にも利用できると考えられます)

※ Office365をご利用なら「スピル機能」が使えるはずなので、開始位置と表の行数がわかれば、フィルコピーなどを考慮しなくてもスピルで対応することも考えられますが、処理内容が不明なので、そちらに関しては何とも申し上げられません。
    • good
    • 1
この回答へのお礼

非常にわかりやすかったです。
目印を付けるというのは盲点でした。
目印があれば移動してもそこからの相対値で計算できますね。
また、スピル機能というものを知りませんでした。
こちらも確認してみます。

ありがとうございました♥♥♥

お礼日時:2021/10/17 15:54

表になっているんだから、B列にはデータが入っているということですよね。


単純にBセルにデータがなければ空欄、上のセルが空欄でBセルにデータが入っていたら1、それ以外は上に1を足すという式を入れてはどうでしょうか?

A5=IF(B5="","",IF(AND(B5<>"",A4=""),1,A4+1))
    • good
    • 1
この回答へのお礼

ありがとうございます。
確認してみます。

お礼日時:2021/10/17 15:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!