アプリ版:「スタンプのみでお礼する」機能のリリースについて

EXCELで可変長の列の両端の値を取得したいのですが、どのような関数を使えばよいか教えていただけないでしょうか。(offset,vlookupなどのようですが)



2
5
3
4

とあった場合、2と4を参照したい。
ただし、上下とも可変長で、


5
3
4
1


のように変化する。
列の先頭のセル、最後尾のセルを参照したい。

よろしくお願いします。

A 回答 (2件)

こんにちは


ちょっと変な形ですが考えてみました。

B列に対象のデータ列があるとして、少なくともB1にはデータがない前提です(あればあったで何とかなるけど)。

1.A列が空白列だとします(でなければ空白列を挿入)。
2.A2に「=if(isblank(B2),a1,a1+1)」と入力し、最下行(データの入りうる範囲)までコピー。
3.この状態で、A列には、B列でデータの始まる行の値が1、最下行(たとえばB65536)に、最大値が入る。
4.先頭のセルはVlookup(1,A2:B65536,2,false)
  最後尾のセルはVlookup(A65536,a2:B65536,2,false)

 で拾えると思います(未検証)。データの形式でこのままでは使えないかもしれませんが、あとは工夫ですよ。
    • good
    • 0
この回答へのお礼

お二方ともありがとうございました。

ちょっと時間がなかったので、マクロを使うことにしました。
関数を使用する場合はかなり複雑になるようですね。
後学のために関数でもできるように考えてみます。

お礼日時:2005/11/01 19:22

仕事がら、EXCELでデータをよく管理してました。



offsetやvlookupは探す値や場所がわかっていないと使えないと思います。

関数でなくてマクロを駆使しないと難しいかと…
セルのデータは1桁であるという条件つきで考えてみましたが…

質問者さんのデータを例として

(1)すべてのセルをconcatenate関数で合体する。
『2534』,『△5341』

(2)trim関数でスペースを削除
『2534』,『5341』

(3)left関数、right関数で1文字づつ取る

という方法でまとめますと
『=left (trim(concatenate(a1,a2,a3,a4,…)))』
『=right(trim(concatenate(a1,a2,a3,a4,…)))』
    • good
    • 0

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