- ベストアンサー
数式(関数)について
A B C D E F G H I 1 ア ア ウ ア ア オ カ ア ア 2 1 2 3 4 1 2 このようにA2:K2に数式を入力して「あ」の文字数を数えたいのですが、数が5になったらまた1から数えたいのです。 C2のように空白は条件付き書式で白文字にするとして どんな数式を入力すればいいのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
5を1に数えればいいなら A2=IF(A$1="ア",MOD(COUNTIF($A$1:A$1,"ア")-1,4)+1,"") として右にコピーしてください。
その他の回答 (3)
- judas_2006
- ベストアンサー率56% (82/145)
私は皆さんのように知識がないので、全くの蛇足です。スミマセン。これまで回答者された方は勿論、質問された方も十分承知のことと思いますが、Excelで数式を利用するとき、変更される可能性のある因子は、変数としてセルの外に置いた方が何かと便利です。今回の場合でしたら、"ア"を"イ"等に変更する可能性が考えられると思います。やり方の一例を挙げておきます。まず、A列に1列挿入し、下表のX("B2")のセルに、以下を貼り付けExcel上でコピーして下さい。 X("B2") = IF(B$1=$A2,MOD(COUNTIF($B$1:B$1,$A2)-1,4)+1,"") A B C D E F G H I J 1 ア ア ウ ア ア オ カ ア ア 2 ア X 3 イ 4 ウ 5 エ 6 ・ 集計したい文字が全角/半角のカタカナにひらがなまで混じっているような事態は想定外かもしれませんが、万一そうなった場合でも条件式を大幅に書き換えるのは面倒だと思います。そこで、B行に1行挿入し、下表のY("B2")のセルに、以下を貼り付けExcel上で行(横)方向にコピーして下さい。この操作により全て全角のカタカナに統一されます(マクロにある関数が使えればもう少し気の利いたやり方になるように思いますが、私の実力ではこうなってしました)。 Y("B2") = IF(CODE(JIS(B1))>=CODE("ア"),JIS(B1),CHAR(CODE(JIS(B1))+CODE("ア")-CODE("あ"))) X("B3")のセルは、先ほどの1行挿入後、 =IF(B$1=$A3,MOD(COUNTIF($B$1:B$1,$A3)-1,4)+1,"") となっていますので、数式の$1を全て$2に置換して下さい。置換が分からなければ、下表のX("B3")のセルに、以下を貼り付けExcel上でコピーして下さい。 X("B3") = IF(B$2=$A3,MOD(COUNTIF($B$2:B$2,$A3)-1,4)+1,"") A B C D E F G H I J 1 ア あ ウ ア ア オ か ア あ ← 半角カタカナも可 2 Y 3 ア X 4 イ 5 ウ 6 エ 7 ・ 以上のような変数化を行うとフレキシブル性が増すので、利用面では便利になると思います(自分だけでなく同僚への紹介等でも)。ただ作業効率との兼ね合いで、数式を直接書き換えた方がよっぽど早いという場合もあると思いますので、ケース・バイ・ケースでお考え下さい。 なお、数式の基本的なところは、mshr1962さんの回答からお借りしました。勝手にお借りし、申し訳ありませんでした。またNoubleさんの回答はとても参考になりました。ただ関数をかなり使いこなしていないと出てこない発想ですね(私が無知なだけかもしれませんが)。
お礼
まだ使った事のない関数がありましたが、たいへん参考になりました ありがとうございました。
- Nouble
- ベストアンサー率18% (330/1783)
>C2のように空白は条件付き書式で白文字にする… その必要はありません A2に =IF(A1="ア",MOD(SUMPRODUCT(($A$1:A1="ア")+0),5),"") と入力して 必要分右へコピーしてください
お礼
ありがとうございます 数式を入力しましたら5番目の「ア」が0になったのですが・・・?
No.1さんの式は短くて見事ですが、「数式の意味がまだはっきり分からない」とか。 長くなりますが、次の式だったらお分かりですか? =IF(A1="ア",IF(MOD(COUNTIF($A1:A1,"ア"),4),MOD(COUNTIF($A1:A1,"ア"),4),4),"") ますます分からないとか?失礼しましたm(__)m
お礼
数式入力しましたらできました。 ありがとうございます。 いろいろな考え方があるものですね・・
お礼
数式の意味がまだはっきり分からないのですが、 その通り数式を入力したらできました。 ありがとうございました。