- 締切済み
セル間のカウント関数の作り方を教えてください
A列 B列C列D列 2009/4/25 ○ 2009/4/25 × 2009/4/25 × 2009/4/25 × 2009/4/25 × 2009/4/25 × 2009/4/25 × 2009/4/25 × 2009/4/25 ○ ア 2009/4/25 × 2009/4/25 × 2009/4/25 × イ 2009/4/26 × 2009/4/26 × 2009/4/26 × 2009/4/26 × 2009/4/26 × 2009/4/26 × 2009/4/26 ○ ア 2009/4/26 × 2009/4/26 × 2009/4/26 × 2009/4/26 × 2009/4/26 ○ ア イ 最大X数 最大×日数 ウ エ 初めて質問します、エクセル初心者ですが、上記のように○から○の間の×をカウントする関数式を教えてください。 B列の○から○間のX数をC列の○横のアに×数をカウント、A列の同じ日付12行内に1つも○がなければD列イに1を入れる。 C列ウには、C列アの中での最大X数を表記 D列エにはD列イが2日連続以上で続いたときのみ、その連続日数を入れる。 1日しかなければ1、連続2日間あれば2と入れる。 ア、イ、ウ、エ共に○、×以外の文字列と空白はカウントしない。 色んなエクセル関連本を読んでは探しているのですが、恥ずかしながら上手くできません。 皆様のお知恵をお貸し願います。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
》 B列の○から○間のX数をC列の○横のアに×数をカウント、A列の同じ日付12行内に 》 1つも○がなければD列イに1を入れる。 「エクセル初心者」向けの回答例です。でも貴方にはまだ難しいかも。 A B C D F G H I J K 1 09/4/25 ○ 1 0 #N/A 1 #REF! 2 09/4/25 × 1 1 #N/A 2 #REF! 3 09/4/25 × 1 2 #N/A 3 #REF! 4 09/4/25 × 1 3 #N/A 4 #REF! 5 09/4/25 × 1 4 #N/A 5 #REF! 6 09/4/25 × 1 5 #N/A 6 #REF! 7 09/4/25 × 1 6 #N/A 7 #REF! 8 09/4/25 × 1 7 #N/A 8 #REF! 9 09/4/25 ○ 7 2 7 0 9 #REF! 10 09/4/25 × 2 8 0 10 #REF! 11 09/4/25 × 2 9 0 11 #REF! 12 09/4/25 × 2 10 0 12 2 13 09/4/26 × 2 11 0 1 1 14 09/4/26 × 2 12 0 2 1 15 09/4/26 × 2 13 0 3 1 16 09/4/26 × 2 14 0 4 1 17 09/4/26 × 2 15 0 5 1 18 09/4/26 × 2 16 0 6 1 19 09/4/26 ○ 9 3 16 7 7 2 20 09/4/26 × 3 17 7 8 2 21 09/4/26 × 3 18 7 9 1 22 09/4/26 × 3 19 7 10 1 23 09/4/26 × 3 20 7 11 1 24 09/4/26 ○ 4 4 20 16 12 2 F1: =COUNTIF(B$1:B1,"○") G1: =COUNTIF(B$1:B1,"×") H1: =VLOOKUP(F1-1,F$1:G1,2,FALSE) J1: =COUNTIF(A$1:A1,A1) K1: =COUNTIF(OFFSET(B1,,,-12,),"○") C1: =IF(F1=1,"",IF(B1="○",G1-H1,"")) D1: =IF(J1=12,IF(K1,"",1),"")
- imogasi
- ベストアンサー率27% (4737/17069)
私も#1さんのように言いたい。 ーー 取り合えづ、シートを見れば判るでよければ 第2行からデータありとして 第1行目ーーー空白か見出し行 2009/4/25 ○ 0 2009/4/25 × 1 2009/4/25 × 2 2009/4/25 × 3 2009/4/25 × 4 2009/4/25 × 5 2009/4/25 × 6 2009/4/25 × 7 2009/4/25 ○ ア 0 2009/4/25 × 1 2009/4/25 × 2 2009/4/25 × イ 3 ・・・・ D2の式は =IF(B2="○",0,D1+1) 最大の連の数はD列で=MAX(D2:D100) 行位置を特定するのにどうするか。日付+○+(アなどから次のイ)までか? ーー ア、イを質問者が式中に指定するなら、MATCH関数でアの行とイの行が見つかるから、両者を引き算すればよい
- web2525
- ベストアンサー率42% (1219/2850)
データが1行目から入っていると仮定した場合 B2セル以降に =IF(B2="×","",ROW()-COUNTIF($B$1:B2,"○")-SUM($C$1:C1)) この計算式を挿入する事で”ア”に関しては求める事は可能です C1セル以降に =IF(A1=A2,"",IF(SUMPRODUCT(($A$1:$A$24=A1)*($B$1:$B$24="○")),"",1)) コレで”イ”もクリアすると思われます (SUMPRODUCT関数内の範囲は実際に数値入力されている範囲を指定してください) ”ウ”は最大値なのでMAX関数で簡単に出ます。 ”エ”に関しては”ア”の計算式の流用で可能かとは思われます
- dr-9
- ベストアンサー率47% (24/51)
> ○から○の間の×をカウントする関数式... 関数・数式では難しいです。 VBAを学習されてはどうでしょうか?
- 参考URL:
- http://www.moug.net/
お礼
VBAの参考ページ教えて頂ありがとうございます@。 これからの大きな課題ですね、VBA。 まだまだ初心者なので、これか少しづつ勉強します。
お礼
ありがとうございます。 式を早速当てはめてみましたが、一つめの式 =IF(B2="×","",ROW()-COUNTIF($B$1:B2,"○")-SUM($C$1:C1)) の式はC列の”ア”に結果を求めることが無理でした。 2つめの式 =IF(A1=A2,"",IF(SUMPRODUCT(($A$1:$A$24=A1)*($B$1:$B$24="○")),"",1)) に関しても、同じ日付12行以内に○があってもカウントされます。 使われてる関数の役割がイマイチ理解できていないので、さらに勉強します。 ありがとうございます