• ベストアンサー

エクセルでセルの中身が漢字かどうか識別する方法は?

セルの内容が、数値か、文字列か、空白かどうかは関数で出来るのですが、文字列の場合、それが漢字(ひらがな、かたかな含む)かそうではないのか識別できる関数またはVBAはないでしょうか?

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

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

数式を書き間違えていました。 D25セルを検査する場合は、 =IF(AND(CODE(D25)>=12322,CODE(D25)<=29734),"漢字","漢字以外") ですね(汗)。

AQUALINE
質問者

お礼

ありがとうございます。おそくなってすみません。

その他の回答 (5)

  • tamazo-
  • ベストアンサー率60% (35/58)
回答No.6

全角文字を1つでも含むかどうか、ということに限定した場合、 LENとLENBの結果が同じなら半角文字のみ、異なるなら全角を1つ以上含む(結果の差=全角文字数) という判定はどうでしょう。

AQUALINE
質問者

お礼

ありがとうございます。おそくなってすみません。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.5

こんにちは。maruru01です。 No.3(No.4)の方の付けたし程度ですが、漢字コードに関するページを1つ紹介します。 http://hp.vector.co.jp/authors/VA017832/hide_chimarl/chimarl09_03.html

参考URL:
http://hp.vector.co.jp/authors/VA017832/hide_chimarl/chimarl09_03.html
回答No.3

指定したセルの先頭文字が漢字か否かを識別する式は、CODE関数を使って、以下のようになります。 =IF(AND(CODE(D25)>=12322,CODE(D26)<=29734),"漢字","漢字以外") ただし、CODE関数は指定したセルの先頭文字の文字コードしか返しませんので、指定したセルの2文字目以降もチェックしたい場合には(このままでは)使えません。 12322はJIS漢字の先頭「亜」の文字コード(シフトJISコードの10進数、29734は同じく末尾の「熙」の文字コードです。 ひらがな・カタカナを含むのであれば、9250以上という条件になりますが、実際には全角英数文字は含むのか?、全角記号は含むのか? 全角ギリシャ文字は含むのか? IBM拡張文字などの外字は含むのか? 等々、AQUALINEさんがどういう条件で判定したいのかによって、数式は変わってきます。 IMEパッドなどを参照して、CODE関数の引数に適当な文字コードを指定してください。  

AQUALINE
質問者

お礼

ありがとうございます。おそくなってすみません。

noname#4564
noname#4564
回答No.2

> セルの内容が、数値か、文字列か、空白かどうかは関数で出来るのですが、 > 文字列の場合、それが漢字(ひらがな、かたかな含む)かそうではないのか > 識別できる関数またはVBAはないでしょうか? 自分で作るしかないでしょう。 ひらがな、カタカナの文字コード表を作り、マッチングを掛よいと思います。 (すでに誰かがおなじものを作っている可能性もありますので、探した方がよい かもしれません)

AQUALINE
質問者

お礼

ありがとうございます。おそくなってすみません。

noname#148473
noname#148473
回答No.1

全角の英数字や記号をどちらに含むのかによって、 処理の仕方が変わってくると思います。 また、英数字と漢字が混ざっていた場合はどうするのかも 補足してください。 もし全角と半角を見分けられれば良いということならば、 =IF(A1=JIS(A1),"全角です","半角です") でOKです。

AQUALINE
質問者

お礼

ありがとうございます。 「数字を除く英字(半角全角とも)、かたかな、漢字、ひらがなを一つでも含むもの」でひとくくりに出来ればいいです。

関連するQ&A

  • セル内の文字列が日本語か英語かを厳密に識別したい

    セル内(C3)にある文字列に、漢字・ひらがな・全角カタカナ・半角カタカナのうち、1個でもあれば、その文字列すべてを、右隣のセル(C4)に移し、それ以外の場合はさらにその右隣(C5)に移したいのですが、 たとえば、 (C3)「AMERICA/JAPAN」の場合は、(C5)に「AMERICA/JAPAN」と移します。 (C3)「AMERICA/Japan」の場合は、(C5)に「AMERICA/Japan」と移します。 (C3)「AMERICA/JAPAN#$%?<>」の場合は、(C5)に「AMERICA/JAPAN#$%?<>」と移します。 しかし (C3)「日本とアメリカ#$%?<>」の場合は、(C4)に「日本とアメリカ#$%?<>」と移します。 (C3)「日本/america」の場合は、(C4)に「日本/america」と移します。 (C3)「日本/アメリカ」の場合は、(C4)に「日本/アメリカ」と移します。 (C3)「Japanとamerica」の場合は、(C4)に「Japanとamerica」と移します。 VBAで処理する場合、文字コード、Chr関数、Mid関数を使えばいいと思ってプログラムを組むところです。 ところが、漢字のコード番号が何番から何番までか、よくわかりません。カタカナ・ひらがなは調べられます。 正確でなくとも<>=の数値処理の範囲指定ですので、漢字コードの範囲を教えてくださいませんか。 また、この処理目的のために、よりシンプルなプログラムがありましたら教えてくださいませんか。 よろしくお願いします。 ※簡単に言いますと、セル内が日本語の文章か英語の文章かを識別する作業です。

  • エクセルでセルのデータがカタカナかどうか調べたい。

    例えばセルA1の内容を調べるとして、PHONETIC(A1)=A1なら、セルA1の内容はカタカナだと判定していましたが、最近、これでは不十分であることがわかりました。 そこで、セルA1の内容が、全角カタカナかどうかを調べるエクセル関数又はマクロコマンドがあるはずだと信じて探していますが、見つかりません。TYPE関数では、セルの内容が数値か文字列かを調べられますが、その文字列がカタカナか英数字かなどを調べられません。ご存知の方はお教えください。

  • エクセルに特定の文字が入っていないセルをみつけたい

    数万行にわたって、ランダムにセルに 文字(漢字、カタカナ、ひらがな)が入っています。 その中で特定の漢字一文字、仮に「男」として 男が入っていないセルを全て発見したいのですが… ※但し、空白セルもありますが、空白セルを無視したい。 なにかよい条件式、もしくはマクロは ないものでしょうか? お知恵をおかしください。

  • Excelで漢字をひらがなにする関数

    セルに入力されている単語(漢字、カタカナ、ひらがなが混合、例:「エクセル関数」)があります。それを隣のセルに全部ひらがなで出したいのですが、方法はありますか?IMEの「再変換」の機能ではなく、関数があれば教えていただきたいのです。(「PHONETIC」関数は知っていますが、これはカタカナに変換する関数です) 段階として、 1.ひらがなに変換する関数 2.または、PHONETIC関数でカタカナに直したセルをひらがなに変換する関数 3.ダメなら、うまいこと「ひらがな」になるマクロの組み方(あまり好みませんが、この際・・・) を、ご存知の方、是非よろしくお願いします。

  • エクセルVBAで セルの空白を識別する

    早速ですが IF Application.ISBLANK(Q17)=TRUE Then って やると Q17 が 未定義エラーとなります。 セルに書き込む関数と VBAとは 異なるらしいのですが・・・イマイチでして。 VBで使う  ISNULLも 変数しか 受付ないようですので、一旦 tanka=cells(3,17) isnull(tanka) とやるようです。 VBAから 空白を 識別する方法は無いものでしょうか 厳密には 未入力 DELE SPACE すべて 空白でいいのですが 数字のゼロに 置き換えると ゼロの時に おかしくなりそうで・・・

  • エクセル2010で二つのセルを一つにまとめる関数

    エクセル2010を使っています。 二つのセルに入っているそれぞれの数値を、1つのセルに文字のようにまとめたいです。 例えば、 B2に3、C2に4、なら、D2に34、です。 ただ、 B3に数値が入っていて(例えば5)、C3が空白なら、D3は、B3の数値(5) としたいです。 これらの条件を満たす、D列にいれる関数を教えてください。 どうぞよろしくお願いします。

  • エクセル、関数でセル内の半角カタカナ漢字、を分けて他のセルへ表示する方法

    下記のようにA列の1つのセル内に、半角カタカナ漢字がつながって入力されてるデータがあります。これを関数でD列にカタカナ姓、E列にカタカナ名、F列に漢字姓、G列に漢字名と分解して表示させたいのですが、難しくできませんでした。どうかよろしくお願いします。      A 1 スズキ イチロウ鈴木 一郎 2 ヤマダ タロウ山田 太郎

  • Excel 空白セルのコピペについて

    http://imgur.com/5e8TsP1 上記図のように、シート1のB列に各文字を入力しています。 そして、A列にはもしB列に文字が入力されていたらID代わりの数値を表示する、という式を入力してあります。 次に、シート1のA列、B列をコピーして、シート2に数値としてペーストをします。 すると、A列は空白のはずが、xldown操作をすると元のセルで式が入力されていたものまで選んでしまい、真の空白セルとして認識してくれません。 そこで、このような例の場合、どうコピーペースト、または選択をすれば偽物の空白 セルを生み出さないように出来るでしょうか? 実際に使用するデータは項目名が多く存在し、マクロですべてのセルを選択→新規ブックを作成してそこにペースト、という処理を行っています。 この時に偽物の空白セルが出ると、データベースに読みこむ際に不都合が生じますので、何とか改善を図りたいです。 VBA、関数、Excel上のテクニックのいずれでも構いませんので、どうかご教授下さい。 よろしくお願いいたします。

  • エクセル97です。表中の空白セルに0を入力する関数を教えてください。

    数値が入った表があります。 ところどころに数値の入っていない空白セルがあります。 そのセルに0を入力する関数を教えてください。 入力後、その表からグラフを作成したいので、文字列ではなく数値でないとダメですよねぇ?

  • エクセルでひらがな・漢字はそのままでカタカナを全角・英数字を半角にする方法

    エクセル2000を使っています。 会社で住所録作成を引き継ぎましたが、 一つのセルにひらがな、漢字、カタカナ、英数字 が半角・全角ごちゃ混ぜで入っているので 管理がしづらくて困っています。 例えば、 あいうアジアNET株式会社 株式会社ABC123 などなど・・・・ ひらがな・漢字はそのままで、 カタカナを全角、英数字を半角にする方法は ありませんか? 最初にASC関数を使ってみたらカタカナも半角になり、 Phonetic関数を使うと、 カタカナだけ全角になりましたが、 ひらがなまでカタカナになり・・・ JIS関数も試しましたが今度は英数字まで全角になり、 どうしたものかと困っております。 よろしくお願いします。

専門家に質問してみよう