エクセルで左から始めて、最初にゼロ以上の値になるセルの位置の値を表示したいです


エクセルで左から始めて、最初にゼロ以上の値になるセルの位置を出すには、どんな関数がありますでしょうか?ご教授願えませんでしょうか

a,b,c,d,e,f ,g,h,i, j
---------------
0,0,0,1,0,0,5,2,1,0 - この場合、D1の"1"を表示させたい
0,1,2,1,3,4,1,0,0,1 - この場合、B2の"1"を表示させたい
0,0,0,0,1,2,4,5,1,2 - この場合、E3の"1"を表示させたい

急ぎでよろしくお願いいたします。

エクセル2010
です。

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2013/03/22 20:35:07
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149

ポイント67pt

結果を格納したい列に以下の式を入れて下方向にコピー。

=INDIRECT(CHAR(SUMPRODUCT(LARGE((A1:J1>0)*COLUMN(A1:J1),COUNTIF(A1:J1,">0")))+64)&ROW())

元ネタは下記で、私がINDIRECT関数を付け加えました。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1114542331

他6件のコメントを見る
id:windofjuly

一日置いてみたのですが、申し訳ない。ギブアップです。

2013/03/20 21:53:00
id:megamax1010

お忙しいところ、ご検討いただき誠にありがとうございました。

機会がありましたら、今後ともよろしくお願いいたします。

2013/03/25 16:51:23

その他の回答2件)

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149ここでベストアンサー

ポイント67pt

結果を格納したい列に以下の式を入れて下方向にコピー。

=INDIRECT(CHAR(SUMPRODUCT(LARGE((A1:J1>0)*COLUMN(A1:J1),COUNTIF(A1:J1,">0")))+64)&ROW())

元ネタは下記で、私がINDIRECT関数を付け加えました。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1114542331

他6件のコメントを見る
id:windofjuly

一日置いてみたのですが、申し訳ない。ギブアップです。

2013/03/20 21:53:00
id:megamax1010

お忙しいところ、ご検討いただき誠にありがとうございました。

機会がありましたら、今後ともよろしくお願いいたします。

2013/03/25 16:51:23
id:mon634 No.2

回答回数1ベストアンサー獲得回数0

ポイント67pt

回答になっていないので書くのが憚られたのですが何か解決の役に立てばと書き込みをさせて頂きます。
=IF(A1=0,IF(B1=0,IF(C1=0,IF(D1=0,IF(E1=0,IF(F1=0,IF(G1=0,H1,G1),F1),E1),D1),C1),B1),A1)
例えば1列目なら表示させたいセルに上記のようにA1が0ならB1が0ならというようにIF関数を重ねて組み合わせてみてはいかがでしょうか?
上記ではH1までしかやっていませんが上手くいじくれば応用できるような気がします。

id:megamax1010

誠にありがとうございます。参考にさせていただきます。

2013/03/25 16:51:55
id:taknt No.3

回答回数13539ベストアンサー獲得回数1198

ポイント66pt
Function GetPoint(a As Range)
    Dim c As Range
    
    For Each c In a
        If c.Row = a.Row Then
            If Cells(c.Row, c.Column) <> "" Then
                If Cells(c.Row, c.Column) > 0 Then
                    GetPoint = Cells(c.Row, c.Column)
                    Exit Function
                End If
            End If
        End If
    Next c
    
End Function


ユーザー関数を作ってみました。
標準モジュールに ソースを入れてください。

使い方は セルに
=GetPoint(A1:E1)
というように 入れてください。

なお Rangeで範囲指定しますが、最初の行のみチェックします。

つまり
A1:E2と入れても A1:E1と同様のチェックのみしか 行わないということです。

id:megamax1010

誠にありがとうございます。参考にさせていただきます。

2013/03/25 16:51:48

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません