人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルの関数の質問です。

A列に日付を1日単位で入れています。
B列に文字列を入れています。

A列の日付を参照してある月の範囲の中でB列の文字列のなかから特定の文字列を含むセルの数を求めたい場合どのように記述するのでしょうか?

ご回答いただくにあたってはURLは特に必要としません。
できるだけ具体的な数式を教えていただけないでしょうか。

宜しくお願い申し上げます。

●質問者: PaPriKa
●カテゴリ:コンピュータ
✍キーワード:エクセル セル 単位 文字列 記述
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● nandedarou
●100ポイント ベストアンサー

結果を表示するセルに次のように入力して下さい。

=SUM(IF((MONTH(A1:A5000)=1)*NOT(ISERROR(FIND("漢",B1:B5000))),1,0))

※2箇所5000という数字がありますが、最後のデータのセルの行番号より十分大きな値ならば、いくつでも構いません。

※=1の部分は、1月を検索する場合です。

※"漢"は、"漢"という文字を検索する場合です。


ただし、このままではダメです。

上記の数式を入力後、次の操作をして下さい。

(1)数式を入力したセルをクリック

(2)エクセルのツールバーの下の数式バーに数式が表示されたのを確認

(3)数式バーをクリックし、カーソルを数式バーにおく

(4)この状態で、キーボードの[SHIFT]キーと[CTRL]キーを押しながら、[ENTER]キーを押して下さい。

(5)すると、数式がカッコ{}で囲まれます

これで完成です。

◎質問者からの返答

ご回答ありがとうございます。

ご教授いただいた式を使ったら求めた値が出てきました。

ただ後半の「キーボードの[SHIFT]キーと[CTRL]キーを押しながら、[ENTER]キーを押して下さい。」というのはどういう内容の操作なのでしょうか?


2 ● nandedarou
●10ポイント

配列数式という特殊な数式の書き方を使用しています。知っている人は少ないかも知れません。


エクセルのヘルプで、「配列数式」と検索すると詳しく解説されている部分もあるかと思います。(ただし、実際やってみないと理解するのは難しいですが…。)


例えば、今回の例でいうとMONTHは、普通にやったら、A1:A5000などの範囲を引数に取れない関数ですよね。ところが、あの操作をすると、数式にA1からA500まで一つずつ入れて、その結果の集合を返すのです。それをSAMで集計すると言う訳です。

◎質問者からの返答

ご回答ありがとうございます。

配列数式についてはこのあとじっくり確認してみます。

あと配列数式の中にはCOUNTIF関数は使えないのでしょうか?見当違いな質問だったらお許しください。


3 ● nandedarou
●10ポイント

COUNTIF関数自体が配列をとるので、ダメではないかと思います。

配列の配列など特殊な用途で可能かもしれませんが…。できるかわかりません。特に、今回は不要でしょう。

なお、先程の数式は、次のように、NOTを省いて、最後の0と1を逆にした方が、簡単ですね。

=SUM(IF((MONTH(A1:A5000)=1)*ISERROR(FIND("漢",B1:B5000)),0,1))

●別の方法(こちらのほうが普通だと思います。)

セルC1に次のように入力し、最後のデータの行までコピーして下さい。(マウスで簡単にコピーできますが、分からなかったらコメントで聞いて下さい。)

=IF(AND(MONTH(A1)=1,ISERROR(FIND("漢",B1))),0,1)

結果を表示したいセルに次のように入力して下さい。

=SUM(C:C)

※ちなみに、IF文で複数の条件があるとき、条件部分は、AMD(条件1,条件2)としますが、条件1*条件2と書いてもいいです。

(最初に提示した数式では*を使用しました)

◎質問者からの返答

配列部分をなくした式なのですね。

ありがとうございました。

ご回答いただいた内容をしっかり理解すれば、かなりエクセルの学習になりそうです。

このあとじっくり確認させていただきます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ