• ベストアンサー

マイナス数値のスタートする位置を取得したい

エクセルの関数について質問させていただきます。 以下のような、マイナスからプラスまでの数字が並んでる表があるとします。 2   5   -1   -3  -2  -5  -4  3   5   6 必ずマイナスの数値があるとして、その数値の位置とマイナスの数値がプラスに転じる位置を取得したいのです。この表の場合だと 3がマイナススタート、8がプラススタート(7がマイナス終わり)として取得したい結果です。 このような状況で便利な関数ありましたら、ご教示いただきたいです。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

3 =MIN(IF(A1:J1<0,COLUMN(A1:J1),999)) の式を入れてSHIFT+CTRL+ENTER 配列数式 後半 8 =MIN(IF((A1:J1<0)*(B1:K1>0),COLUMN(A1:J1),99))+1 の式を入れてSHIFT+CTRL+ENTER 配列数式 --- エクセル関数としては、難しいタイプなので、思いつかず、急ぐ場合は小生なら、標準モジュールに、ユーザー定義関数として Function hanten(x As Range) For Each cl In x If cl > 0 And cl.Offset(0, 1) < 0 Then hanten = cl.Column + 1 Exit Function End If Next End Function Function hantenB(x As Range) For Each cl In x If cl < 0 And cl.Offset(0, 1) > 0 Then hantenB = cl.Column + 1 Exit Function End If Next End Function シートの空きセルに下記関数を打ち込んで =hanten(A1:J1)  で 3 =hantenB(A1:J1) で 8

mazdaFD3
質問者

お礼

ありがとうございました、望み通りの結果が得られました。 また、ユーザー定義関数でもお答えいただきすごく助かりました^^

その他の回答 (3)

  • HohoPapa
  • ベストアンサー率65% (454/691)
回答No.3

#2の補足です。 0(ゼロ)をどのように扱えばいいのかを提示してもらえれば もう少し突っ込んだ解が提示できるかもしれません。 0(ゼロ)の扱い候補 ・プラスの値として扱う ・マイナスの値として扱う ・無視する ・ゼロが登場することはない いかがでしょうか?

  • HohoPapa
  • ベストアンサー率65% (454/691)
回答No.2

必ずプラスの値で始まる マイナスからプラスに変わるところは1か所しかない という条件でよければ 添付画像のように A2=IF(A1>0,0,1) B3=IF(AND(A2=0,B2=1),1,IF(AND(A2=1,B2=0),2,0)) これを右方向に必要数複写 プラスからマイナスに転じる列番号=MATCH(1,A3:J3,0) マイナスからプラスに転じる列番号=MATCH(2,A3:J3,0) というのはいかがでしょうか。

mazdaFD3
質問者

お礼

お早いご回答ありがとうございました^^ わかりにくい質問でしたが、マイナスからスタートする場合があるのと、マイナス、プラスの反転はランダムで回数もバラバラですので、今回ご提示いただいたご回答で望んだ結果は得られませんでしたが、私の知らない考え方を教えていただき勉強になりました^^

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.1

厚顔無恥な怪答?(*^_^*) Sheet1 に於いて、 セル E4 に =MIN(IF(A2:J2<0,A1:J1)) を配列数式として入力 Sheet2 に於いて、 範圍 A5:J5 選擇⇒[数式バー]上に次式を入力して、Ctrl+Shift+Enterを「エイヤッ!」と叩き附け(配列数式) =(IF(Sheet1!$A2:$J2>0,Sheet1!$A1:$J1,0)) Sheet3に於いて、次式を入力したセル A5 を右方に(J列迄)ズズーッとオートフイル 式 =IF(Sheet2!A5,Sheet2!A5>Sheet1!$E4,0) 再び、Sheet1 に於いて、 セル E5 に式 =MATCH(TRUE,Sheet3!A5:J5,0) を入力

mazdaFD3
質問者

お礼

お礼が遅れ申し訳ないです^^; 当方のわかりにくい質問にお答えいただきありがとうございました、望んでいた結果は得られませんでしたが、配列数式や式の作り方等知らない方法を教えていただき、勉強になりました^^

関連するQ&A

  • ある数値以上の値があるセルを取得したい

    エクセルの関数で、ある数値以上の値があるセルの位置を取得したいのです。 範囲B2:B11に任意の数値が入っているものとします。 その中で、仮に3以上の値が出現するセルの位置を取得する場合、どのような関数を用いればよろしいでしょうか? 数値をぴったり3に限定なら、=MATCH(3,B2:B11,0) で、範囲内で何番目にあるかわかりますが、3以上となると 補助列を用意し、=B2>3のような式を各セルに入れて、TRUEの位置を=MATCH(TRUE,A2:A11,0) で取得するくらいしか思いつきません。 ご教示ください。

  • セルの数値を、まとめてプラスマイナス反転させる方法ないでしょうか?

    ある計算表を作ったのですが、出来上がったあとにプラスとマイナスを逆に計算していたことに気付きました。 現在プラスの数値をマイナスに、マイナスの数値をプラスに一括して変換する方法はないでしょうか? すべてのセルにマイナス1をかければと思ったのですが、やり方がわかりませんでした。 計算表には計算式などは残っておらず、セルには数値のみが記入されています。 何か良い方法をご存知の方がいらっしゃいましたらよろしくお願いいたします。

  • Excelエクセルで数値にプラス(+)、マイナス(-)をつけたい。

    Excelエクセルで数値にプラス(+)、マイナス(-)をつけたい。 マイナスは、プロパティの数値の「負の数の表示形式」で簡単につけられるのですが、プラスのものも、数値がプラスならば自動的に頭に「+」がつくようにしたいのですが、どのようにしたらいいでしょうか。 回答お待ちしております。どうぞよろしくお願いします。

  • プラスをマイナスに、マイナスをプラスに

    A行にプラスとマイナスの数値が混在していて、その正負を すべて逆にする(10を-10に、-30を30に)関数はありますか? 実は売上表と在庫表を作っているのですが、その関係上 上の関数が分かれば面倒なことをしなくも済むかな~なんて 思いまして・・・。

  • エクセル マイナス数値のときには

    教えて下さい。 A1とB1を比較して、A1が大きければA1>B1、B1の方が大きければA1<B1と言う感じでIF関数を使用して”>””<”と表示をさせました。 IF(A1>B1,">","<")と入力し、表示させることができました。 ですが、どちらかの数字がマイナスのとき、どちらもマイナスのときにはマイナスは関係なく数値の大きいほうに”<””>”とでてしまいます。マイナスの時はマイナス数が少ない方に”<””>”とさせたいのですが、どうすればいいですか?? よろしくお願いします。

  • Excel 「2列連続してマイナスの数値が入っている場所の、その直後のセルの数値がプラスである」確率

    数学やExcelが苦手で困っています。 どなたかお力を貸して下さい。 Excel2002以降の環境下での場合です。 1行に100個程度の数値が入っている状況です。 その行の中で、「2列連続してマイナスの数値が入っている場所の、その直後のセルの数値がプラスである」確率を導き出したいのですが、可能でしょうか? 確率自体は、統計関数の何れかを使えば出来そうですが、肝心なところはさっぱり分かりません。 IFを使ってマイナスならば1行下に「1」とか何らかの値を入れて、COUNTIFで手前のセルに値があるか見るという方法も一旦は思いついたのですが、手前のセルとか直後のセルとかを数式でどう表現して良いかも分からず・・・・挫折してしまいそうです。宜しくお願いします。

  • エクセルで数値のプラス毎とマイナス毎に集計したい

    タイトルのとおりです。 エクセルでA1列にプラスとマイナスの数値が 入り交じって入力されています。 それをプラス合計とマイナス合計を取りたいのです。 この際、ソートをかけて行をバラバラにしては困るのです。 お詳しい方、よろしくお願いします。

  • エクセルでこんなこと出来ますかね?(数値がマイナスなら0と表示して、プラスならそのままの数値を表示)

    エクセルでたとえば セル1の値がマイナスなら0と表示して、プラスならそのまま数値を表示させることは可能でしょうか??

  • プラスマイナスで比べる関数。

     初めまして、よろしくお願いします。 このような表で    A   B   C   D   E   F 1    2 5 -3  2 -1 3 2 -4 -4  2 412 -8  5 -3 5 7 -5 -3 -4 6 3 -2  3  1 7 6 -1  6  5 Aにはプラスの数字が、B列にはマイナスの数字が入ります。C列の数字がプラスならばB列の数と比べ、マイナスならばA列の数と比べて、Dに Cがプラスならば  C+Bの数字 Cがマイナスならば  C+Aの数字、ただし”3行”のようにA<-(C)の場合はプラスに条件付きで表示できるようにしたいと思います。  良い関数表示をご存じでしたら、よろしくお願いします。

  • エクセルの計算結果に+(プラス)、-(マイナス)をつけたい

    エクセルで、ある2つの数値を比べたとき、その計算結果がプラスならば+、マイナスならば-をつけて表示させたいのですが、ユーザー定義で行う場合どのようにしたらよいでしょうか。 プラスマイナス0ならば0を表示させたいです。 よろしくお願いします。

専門家に質問してみよう