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

エクセル関数で、正負の数字を2つのグループに振り分ける関数はありますか。
ゼロの数字は読まないで、かつ重複しないで振り分ける方法を教えてください。

下に、データがあります。それぞれの回と点数のデータがあり、それを新たにプラスとマイナスで分けたいと思います。
=IF(COUNTIF(B1:B6,"<0"),INDEX(B2:B6,MATCH(-1,INDEX(SIGN(B2:B6),0),0)),"") で、最初に現れるマイナスの数字を拾ってみましたが、ゼロを無視できなかったり、同じ数字を拾ってしまい、うまくいきません。宜しくお願いします。

データ:
回 点数
1 -10
2 300
3 0
4 -400
5 500
6 600

下のように自動で振り分けたい
(B列) (C列)
点数がマイナス     点数がプラス

-10    300
-400    500
    600

「エクセル関数で、正負の数字を2つのグルー」の質問画像

A 回答 (2件)

●甲案:作業列を使って真っ当に…。



例えば、B2セル以下に元データがあるとします。

C2セル : =IF(AND(COUNTIF($B$2:B2,B2)=1,B2>0),ROW(),"")
として下方にフィルすれば、「初出の正数」について行番号が表示されますから、

D2セル : =IF(ISERR(INDEX(B:B,SMALL(C:C,ROW()-ROW($D$1)))),"",INDEX(B:B,SMALL(C:C,ROW()-ROW($D$1))))
として下方にフィルすれば、「正数の重複を許さない一覧」が得られます。

同様に、
E2セル : =IF(AND(COUNTIF($B$2:B2,B2)=1,B2<0),ROW(),"")
F2セル : =IF(ISERR(INDEX(B:B,SMALL(E:E,ROW()-ROW($F$1)))),"",INDEX(B:B,SMALL(E:E,ROW()-ROW($F$1))))
としてそれぞれ下方にフィルすれば、「負数の重複を許さない一覧」が得られます。
----------------------------------------------
●乙案:数式一発で。

長くなりますが、数式一発でもやれなくはないです。

G2セル : 「正数の重複を許さない一覧」
 =INDEX(B:B,1/LARGE(INDEX((COUNTIF(OFFSET(B$2,,,ROW(B$2:B$99)-ROW($B$1)),B$2:B$99)=1)*(B$2:B$99>0)/ROW(B$2:B$99),),ROW()-ROW($G$1)))

H2セル : 「負数の重複を許さない一覧」
 =INDEX(B:B,1/LARGE(INDEX((COUNTIF(OFFSET(B$2,,,ROW(B$2:B$99)-ROW($B$1)),B$2:B$99)=1)*(B$2:B$99<0)/ROW(B$2:B$99),),ROW()-ROW($H$1)))

なお、乙案の方は「エラー処理」はしていません(長くなるので)
すべての値が返った後は#DIV/0!エラーが表示されます。

以上ご参考まで。
「エクセル関数で、正負の数字を2つのグルー」の回答画像2
    • good
    • 0

A列に元の数字があるなら



 B1=IF(A1<0,A1,"")
 C1=IF(A1<0,"".A1)

これで解決すると思いますけど?
そのあと INDEX関数や MATCH関数で数字を集めれば良いと思います
よく分からなくなったら、一つの関数式で完結させようとしないことです
どこかに作業用の列などを挿入してその結果を操作すると上手くできますよ
    • good
    • 0

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