- ベストアンサー
セル範囲の中で、データの入っている左端のセルを選ぶ
エクセル2003を使用しています。 セル範囲の中でデータが入っている一番左のセルを取得する関数はありますか? A B C D 1 1020 2 23 25 3 21 30 上記のように、空白のセルもあり、データが入っているセルのうち、一番左のセルの数値を使用したいと考えています。(例:1行目なら10、2行目なら23というように) その数値を計算に使用するつもりです。 何か、いい方法がありましたらご教授願います。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 =INDEX(A1:D1,,MATCH(TRUE,INDEX(ISNUMBER(A1:D1),,),0)) 余計なことかもしれませんが、私の数式に解説が必要なのかな? なんとなく、そんな気がしました。 #1 さんのも私のも、引数の中身に、INDEX を使用するのは、配列を、ワークシート上にデータ化させるために使用しています。そうすることによって、配列確定(Ctrl + Shift + Enter)をせずに済むのです。 INDEX 関数は、他の関数と違っていて、解にセルのオブジェクトを返します。 だから、SUM(INDEX(***) : INDEX(+++))とすれば、その見つけた間の合計が出すことも出来ます。 ただし、引数の中に、条件式が入っていたりすれば、それは、データ化されません。それから、INDEX の列や行の数を、0か、省略すると、その列や行、全体を指します。省略形を使ったから、どうなるということでもありませんが、一応、数式になれている人たちは、略することの出来る引数は、書かないというようにするという、習慣があります。
その他の回答 (4)
{=INDEX(A1:D1,1,MATCH(TRUE,ISNUMBER(A1:D1),0))} (配列数式)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 #1さんと、数式は、似ていますが、若干、引数のデータの扱い方に、違いがあります。 =INDEX(A1:D1,,MATCH(TRUE,INDEX(ISNUMBER(A1:D1),,),0))
お示しのデータなら、単に =MIN(A1:C1) で行けますが…
補足
必ずしも、小さい順に並んでいるわけではありません。また、同じデータが出てくることもあるのです。
- EL-SUR
- ベストアンサー率76% (83/108)
=INDEX(A1:D1,MATCH(1,INDEX((A1:D1<>"")*1,0),0)) または =IF(COUNT(A1:D1),INDEX(A1:D1,MATCH(1,INDEX((A1:D1<>"")*1,0),0)),"")
お礼
皆さん、詳しい回答ありがとうございました。 うまく、いきました。 感謝します。