• ベストアンサー

Excel 同じ値が連続している行の抽出

いつもお世話になっております。 Excelの表で同じ値が連続している行を抽出したいのですが、方法が思い付きません。 具体的には、A列に商談名、以降商談の受注確度が各列に入っています。 その中から、何ヶ月も確度が変わってない商談を抽出したいのです。 何か良い案を教えて頂けたら、と思います。 宜しくお願いします。

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

  • ベストアンサー
回答No.4

こんにちは。 再び#3です。 先ほどの並びで問題なければ、次の式をN列(12月の隣)に入れてみてください。 =IF(INDEX($B2:$M2,1,COUNTA($B2:$M2))=INDEX($B2:$M2,1,COUNTA($B2:$M2)-1),1,0) ※$B2:$M2の$は列の絶対参照です。 コピーしても列が変わりません。  今回はつけても、つけなくても構いませんが、私の好みです。w これで、最終月と前月と比較して同じだったら"1"になります。 あとは、この式を最終行までコピーして、オートフィルターで"1"で 抽出すれば、前月と同じ状態のものだけですが、抽出できるはずです。 ちなみに解説しときますと・・ COUNTA($B2:$M2)は、B2~M2の中にある空白でないセルの個数を返します。 8月まで入れてあれば8という値が返ってきます。 ※1月~8月の間に空白があると意図した結果にならない場合がありま  すのでご注意ください。 INDEX($B2:$M2,1,COUNTA($B2:$M2)) ※INDEX(範囲,行,列) は、B2~M2の範囲を配列として、指定した行,列の値を返します。 行列の指定は1,1からです。 従って、上記、B2~M2(1月~12月)の1行12列の配列を使います。 行は1行しかありませんので1、列は先のCOUNTAで得た値(8月なら8列目) を使用して値を参照します。 ※8月の確度ですね。 これと、1列前の確度(COUNTA($B2:$M2)-1)と比較して、異なるなら1、 そうでないなら0とすれば判別できますので、 =IF(INDEX($B2:$M2,1,COUNTA($B2:$M2))=INDEX($B2:$M2,1,COUNTA($B2:$M2)-1),1,0) となります。 あくまでも、#3で述べた私のイメージしている月が横に並んでいる 表が前提ですが、表作成の際にVLOOKUPやSUMIFなどでのキーを使う関数 を使ったり、抽出を行えるような表の作成をするには、表の構成も大事 になりますので今後の、参考にしてください。 ^^ では、がんばってください。

noname#65469
質問者

お礼

2回もご回答ありがとうございました。 皆さんの回答を見ていると、単純にオートフィルタでいいような気がしてきました。 ありがとうございました。

その他の回答 (3)

回答No.3

こんにちは 商談名の次の列から1月~12月の確度があり、確度の変化を確認したい。  という前提で、ちょっと変わったところでこんなのはどうでしょうか? 商談名(A列) 以降B列~M列(1月~12月の確度)として、 最初の月は、とばしてC列~M列(2月~12月)、商談表の最終行 まで全て選択して条件付き書式を設定します。 ※設定するセルを全て選択してから行えば、一回で設定できます。 アクティブなセル(選択時に白抜きになっているセル)がC2である ことを確認して、メニューの書式から条件付書式を選択します。 条件1 数式が =C2=""  ← セルが空白の場合  ‥ 条件1の書式 → パターンで色なしに設定。 条件2 数式が =AND(C2=B2,C2<>D2) ← 前月と同じで、翌月が異なるなら  ‥ 条件2の書式 → パターンで好きな色(もしくはフォント色)を設定。 この場合の例 商談A △△△▲○○● のように、連続している場合のみ可能ですが、変更月の前月に色が付きます。 そちらの意図するものとは異なるかもしれませんが、視覚的に確認 できますので、こんなやり方もあるという程度のご参考ということで

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

質問に答えるには、データの具体的なシート名、行、列、セル範囲などの指定と、具体例が要る。こういうものを具体的に示して質問すること。 疑問点の例 確度は同じ列にあるのか 食費商談分での停滞分を指定するのか(全商談中の停滞分全体を出すのか) マークをつけるのか、別セルに抜き出すのか。 同一商談案件ごとにまとまっているのか。 どうも案件ごとに停滞を判断するらしいが、それも明確でない。 確度はどういう種類コードがあるのか、成約のコードは? 何ヶ月なんていわないで2ヶ月とかとりあえず限定で質問のこと。 仕事のExcelの応用なのだろうから、もう少し丁寧に内容を説明のこと。 どうもVBAででもやらないと関数では難しそうな課題だ。 ーー >何ヶ月も確度が変わってない 年月 商談 確度 M1  X  A M2  X  B M3  X  B M4  X  B M5  X  C M6  X  C A->B->C->D(成約クローズ)としてB->Cで期間がたっているのはどう考えるのか。B,Cのような中間段階は区別して無いのか。 商談案件Xの最近の確度Cの最初行を見つけるのが関数では難物だな。

noname#65469
質問者

お礼

ご回答ありがとうございます。 質問内容が曖昧で申し訳ありませんでした。 A列に商談名(エンドユーザー名)、以降B、C、D列に7月、8月、9月の受注確度(A.B.C.D.E.×)が入ります。 今回知りたいのは、Cが3ヶ月続いている商談です。 C以外で滞留することは、ほぼ無いので。 依頼元(上司)はピボットテーブルで出来ないか?とのことでしたが…難しい気がしたので質問致しました。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

たとえば   A   B   C    D・・・・・Z 商談名    確度1月 確度2月・・・確度?月 とあってB2セルに =COUNTIF(C2:Z2,INDEX(C2:Z2,1,COUNTA(C2:Z2))) と入れておけば 最後の確度の値が何回あるかが出ますが こんなことでしょうか?

noname#65469
質問者

お礼

ご回答ありがとうございます。 依頼主(上司)はピボットテーブルで出来ないか?ということだったのですが…。 分かり難い質問内容ですみませんでした。

関連するQ&A