[[20141029123853]] 『連続データの個数』(むねむね) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『連続データの個数』(むねむね)

指定範囲の後ろから、特定条件の連続データの個数を調べる方法を関数で教えて頂きたいのですが、宜しくお願いします。

例1
A B C D E F G H I J K L M N O P
1 4 1 1 1 2 1 1 1 1 1 1

指定範囲B1:P1で、特定条件A1セルの"1"、

求めたいのは、M1セルから数えてA1セル"1"以下の連続個数"6"と、連続後のF1セルの"2"を

関数で出したいです。

例2
A B C D E F G H I J K L M N O P
3 4 1 1 1 2 1 5 1 1 1 1 2 1 1

指定範囲B1:P1で、特定条件A1セルの"3"、

求めたいのは、P1セルから数えてA1セルの"3"以下の連続個数"7"と、連続後のH1セルの"5"を

関数で出したいです。

関数では無理でしょうか?

< 使用 Excel:Excel2013、使用 OS:Windows7 >


 連続個数
 =MATCH(1,0/(B1:P1<>""),1)-IFERROR(MATCH(1,0/(B1:P1>A1),1),0)
 式を入力時、最後にShiftキーとCtrlキーを押しながらEnterキーで確定してくれ。
 (確定後、式が{}で囲まれればOK)

 連続後の値
 =IFERROR(LOOKUP(1,0/(B1:P1>A1),B1:P1),"無")
 なお、値中にA1セルより大きい値が無い場合は「無」と表示する。
(ねむねむ) 2014/10/29(水) 13:17

 ねむねむさん回答のブラッシュアップみたいになっちゃいましたが。

 連続 =COUNT(B1:P1)-IFERROR(LOOKUP(1,0/(B1:P1>A1),COLUMN(A1:O1)),0)

 連続後の値は一緒。

 ※歯抜けなし前提。
 
(GobGob) 2014/10/29(水) 13:46

(ねむねむ)さん、ありがとうございます。

いい結果が出たと思って、数式をコピーしましたが、下記のような場合にうまくいきません。

A B C D E F G H I J K L M N O P
2 9 1 8 1 3 1 3 1 1 2 5 1

この場合、"2"以下の連続個数なので、M1セルの"1"個だけを求めたいのですが、

実際には、"7"となってしまいます。

何か、違っているのでしょうか?

(むねむね) 2014/10/29(水) 13:59


 こちらで同じデータで試してみたが連続数「1」連続後の値「5」となっているが。

 そちらでは連続後の値はなんとなっているか?

 また、式と値をよく見直してみてもらえないか?
(ねむねむ) 2014/10/29(水) 14:07

何度もすみません。

連続数が「7」、連続後は「5」で連続後は合っています。

式を見直してみましたが、MATCH(1,0/(B1:P1<>""),1)が、「18」

IFERROR(MATCH(1,0/(B1:P1>A1),1),0)が、「11」になってます。
(むねむね) 2014/10/29(水) 14:18


 問題があるとすると
 MATCH(1,0/(B1:P1<>""),1)
 の部分だと思うが、そもそもB1セルからP1セルまで15セルしかないので「18」にはなりようがないのだが。

 新しいシートでやってみても同じだろうか?
(ねむねむ) 2014/10/29(水) 14:35

簡単な例えで質問したので、違ってきてしまいました。

自分の環境では、以下のとおりです。

D E F G H I J K L M N O P Q R S T U
13 1 9 1 3 1 3 1 1 2 5 1

特定条件の数値は、G2セル「2」になります。

以上の条件で、G2セル「2」以下の連続数を、「1」、連続後を「5」と出したいです。

宜しくお願いします。
(むねむね) 2014/10/29(水) 14:46


 =MATCH(1,0/(D1:U1<>""),1)-IFERROR(MATCH(1,0/(D1:U1>G2),1),0)
 =IFERROR(LOOKUP(1,0/(D1:U1>G2),D1:U1),"無")
 で、どうだろうか?
 一つ目はShift+Ctrl+Enerを忘れずに。
(ねむねむ) 2014/10/29(水) 15:08

やっぱり一つ目は、「7」になります。

ちなみに、D1からU1まで数式が入っており、計算結果が例のような数値になっています。
(むねむね) 2014/10/29(水) 16:17


 D1セルからU1セルに入力している式はどのようなものだろうか?

 もしかしてExcelのオプションや表示形式で「0」を表示しないようにはしていないだろうか?
(ねむねむ) 2014/10/29(水) 16:27

オプションや表示形式では、そういう設定はしてないです。

一応、以下のような数式です。

=IF($B2="","",IF(D2="","",IF(E2="",0,D2-E2)))

(むねむね) 2014/10/29(水) 16:34


MATCH(1,0/(D1:U1<>""),1)のところを

COUTIF(D1:U1,">=1")にしたら、思うような結果が出ました。

当面、この状態で様子を見たいと思います。

(ねむねむ)さん、(GobGob)さん

お忙しいところ、ありがとうございました。
(むねむね) 2014/10/29(水) 23:11


また一つわからないことが出来ました。

D E F G H I J K L M N O P Q R S T U
あ い う え お か き く け こ さ し
13 1 9 1 3 1 3 1 1 2 5 1

上記の場合の、N列の「5」は =IFERROR(LOOKUP(1,0/(B1:P1>A1),B1:P1),"無")で出せますが、

この「5」から左側に4つ1行目の文字を取り出したいです。

一つだけ条件があり、N列の抽出に「4」以上を使用します。

上記の場合、「さ」「こ」「け」「く」です。

上記の例で、N列が「3」の場合は、「う」「い」「あ」を求めたいと思っています。

何か方法がありますか?
(むねむね) 2014/10/31(金) 00:47


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.