Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


13564 / 13644 ツリー ←次へ | 前へ→

【4810】大文字と小文字 晴香 03/4/8(火) 15:38 質問
【4813】Re:大文字と小文字 ichinose 03/4/8(火) 17:28 回答
【4818】Re:大文字と小文字 晴香 03/4/8(火) 22:10 お礼
【4819】Re:大文字と小文字 ichinose 03/4/8(火) 23:35 回答
【4825】Re:大文字と小文字 晴香 03/4/9(水) 15:35 お礼

【4810】大文字と小文字
質問  晴香  - 03/4/8(火) 15:38 -

引用なし
パスワード
   こんにちは。

表のある項目について値ごとに集計したいのですが、データ的には
下記のように

  A1
  B
  a1
  b1 

などなどとなるのですが、COUNTIF関数を使って条件値に"A1"と指定すると
"a1"も含まれてしまいます。別々に集計したいのですが、どのように
したらよいのでしょうか?

【4813】Re:大文字と小文字
回答  ichinose  - 03/4/8(火) 17:28 -

引用なし
パスワード
   ▼晴香 さん:
こんにちは。
>表のある項目について値ごとに集計したいのですが、データ的には
>下記のように
>
>  A1
>  B
>  a1
>  b1 
>
>などなどとなるのですが、COUNTIF関数を使って条件値に"A1"と指定すると
>"a1"も含まれてしまいます。別々に集計したいのですが、どのように
>したらよいのでしょうか?

私も今更ながら教えてもらいました(そうだったんだ、a1とA1は一緒になってしまうんですねえ)。
で、
「=COUNT(IF(EXACT(A1:A65535,"a1")=TRUE,1))」
としてみたら、正しく数えてくれました。
但し、配列を使ってますから、セルから抜けるときはEnterキーではなく、
CTRL+Shift+ENTERキーで試してみて下さい。

尚、EXACT関数は、「EXACT(A:A,"a1")」は使用できませんでしたので、
A65535にしました。

【4818】Re:大文字と小文字
お礼  晴香  - 03/4/8(火) 22:10 -

引用なし
パスワード
   ▼ichinose さん:
返信ありがとうございます。
できました。でも配列算式って何なんでしょうか?
通常のセル式と何が違うのでしょうか?よかったらついでに教えてください。
素人なものですいません。

【4819】Re:大文字と小文字
回答  ichinose  - 03/4/8(火) 23:35 -

引用なし
パスワード
   ▼晴香 さん:
こんばんは。
>できました。でも配列算式って何なんでしょうか?
>通常のセル式と何が違うのでしょうか?よかったらついでに教えてください。
配列数式は、式の中で一時的に計算の途中結果を入れておくメモリ群だと認識していますが、詳細は、以前、yu-jiさんがこのサイトのどこかで紹介されていたものですが、
非常にわかりやすいので身近で配列のことを聞かれると使わせてもらっているんですが、
http://pc21.nikkeibp.co.jp/pc21/pc_10/hr_top.htm

を読んでみてください(元の投稿を探したんですが見つからなかったんで直接リンク貼りました、yu-jiさんに感謝)。

今回の事例ですが、この途中結果がどうなっているかを見ることもできるんです。
仮にセルA1〜A5に順に
A1
a1
a1
a1
A1
と入っていたとしましょう(A65535では長いので短くしました)。
 隣のB列のセルB1〜B5を選択してみて下さい。
 選択されているのはB1〜B5ですが、セルB1がアクティブになっている事を確認して、
 「=EXACT(A1:A5,"A1")」と入力してctrl+shift+enterキーを押してください。
 セルB1〜B5に

TRUE
FALSE
FALSE
FALSE
TRUE

 と表示されます。これが配列の最初の途中結果です。

 次にC列のセルC1〜C5を選択し、同様にC1がアクティブになっている事を確認して、

 「=IF(EXACT(A1:A5,"A1")=TRUE,1)」
 と入力してctrl+shift+enterキーを押してください。
セルC1〜C5には、

1
FALSE
FALSE
FALSE
1

と表示されます。
「=COUNT(IF(EXACT(A1:A5,"A1")=TRUE,1))」のctrl+shift+enterキーという
数式配列はこのC列のデータをCount関数が数えているため「2」という結果を導いています(Count関数は、数値の入ったセルしか数えませんから、FALSEは対象外)。

【4825】Re:大文字と小文字
お礼  晴香  - 03/4/9(水) 15:35 -

引用なし
パスワード
   ▼ichinose さん:
ありがとうございました。
おかけで配列算式がなんとなくですが、分かりました。
またよろしくお願いします。

13564 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free