質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.59%

セルの中身がカタカナのみか判断したい

解決済

回答 4

投稿

  • 評価
  • クリップ 0
  • VIEW 620

score 19

前提・実現したいこと

エクセルのとあるセルの中身がカナ(全角/半角)のみか否かを判断したいです。
できればエクセル関数でこれを実現したいです。
調べども文字の種類を判明する関数を見つけることができませんでしたので
相談させていただきました。

どうぞ、よろしくお願いします。

試したこと

参考にしましたが、うまくできませんでした。
https://okwave.jp/qa/q494230.html
https://oshiete.goo.ne.jp/qa/7627850.html

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • imihito

    2019/04/13 12:53

    カナ「のみ」=「最初の1文字」だけではなく「すべての文字」ということでよろしいですか?

    キャンセル

回答 4

check解決した方法

0

=IF(B18="",TRUE,OR(SUMPRODUCT((CODE(MID($B$18,COLUMN(OFFSET($A$1,0,0,1,LEN($B$18))),1))=ROW($A$9506:$A$9590))+0)=LEN($B$18),SUMPRODUCT((CODE(MID($B$18,COLUMN(OFFSET($A$1,0,0,1,LEN($B$18))),1))=ROW($A$177:$A$211))+0)=LEN($B$18)))

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

参考にした1つめのページでうまく行くと思いますが、何がどううまく行かなかったのでしょうか?
回答が理解できなかったと言うことですか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

Excel の新しいワークシート関数群を使えばもしかしたらできるかもしれませんが、とりあえず参考として VBA 版を。

やっていることは
「試したこと」一つ目のページの内容を、文字1個1個に対して行っているだけです(ワークシート関数は1文字に対して判定はできるけれど、全ての文字に対してチェックは難しい印象)。

エクセルでセルの中身が漢字かどうか識別する方法は? - オフィス系ソフト 解決済み| 【OKWAVE】

Public Function ISKANAONLY(文字列 As String) As Boolean
    'Shift_JIS のカタカナの文字コードの範囲。
    Const KanaHalfStart = &HA6      '=ヲ
    Const KanaHalfEnd = &HDD        '=ン
    Const KanaFullStart = &H8340    '=ァ
    Const KanaFullEnd = &H8396      '=ヶ

    Dim txtLen As Long
    txtLen = VBA.Strings.Len(文字列)
    If txtLen = 0 Then Exit Function 'return False

    Dim i As Long
    For i = 1 To txtLen
        Dim c As String
        c = VBA.Strings.Mid$(文字列, i, 1)
        Select Case VBA.Strings.Asc(c)
            Case KanaHalfStart To KanaHalfEnd, _
                 KanaFullStart To KanaFullEnd
                'カタカナ = OK
            Case Else
                'NG
                Exit Function 'return False
        End Select
    Next i

    Let ISKANAONLY = True
End Function

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

調べども文字の種類を判明する関数を見つけることができませんでしたので

はい。存在しません。
よってExcelマクロでオリジナル関数を作成し使用するのが一般的です。

以下は、実用向きではありません。あえてExcel関数のみで実現したい場合の一案です。
が、同じ文字が複数あるとダメでした。


エクセル関数のみで無理やりやってみたwww。
が、同じ文字が複数あるとダメでした。

以下の結果、セル(Z1)の値とセル(A1)の文字数を比べれば判定できる。

1) 対象とするカナ(全角、半角)を1文字ずつ縦に並べる(X列とする)
2) X列の横の列(Y列とする)に検証対象セルに対してSEARCH()で存在する場合は、1、存在しない場合は0となるように式を設定
3) Z列の1行目に Y列の合計を求める

  A B C ... X Y Z
1 アイウエオ ... =IF(SEARCH(X1,A$1),1,0) =sum(Y)
2 ... =IF(SEARCH(X2,A$1),1,0)
3 ... =IF(SEARCH(X3,A$1),1,0)
4 ... =IF(SEARCH(X4,A$1),1,0)
5 ... : =IF(SEARCH(X05,A$1),1,0)

4) この状態で セルZ1には、セルA1の文字列のカナ(全角・半角)の文字数が入っている

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.59%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る