[[20220611092316]] 『任意の文字列をカウントしたい』(はちわ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『任意の文字列をカウントしたい』(はちわ)

セル内の特定の文字列をカウントする関数はよく知られておりますが、セル内の任意の文字列、つまり英数字ではなく漢字カタカナひらがなであれば何でもいい、これをカウントする関数はどのようにすればよいでしょうか?
教えて下さい。すみません。

< 使用 Excel:Office365、使用 OS:Windows10 >


 マクロでの例ですが・・・。

 ↓を参考にいろいろやったらできそうな気がします。
 ※未検証です。

https://extan.jp/?p=4437
(OK) 2022/06/11(土) 09:50


>漢字カタカナひらがなであれば何でもいい
全角のカタカナとした式です。
A1〜A5に文字列が入力されているとした式です。

=SUMPRODUCT((LEN(A1:A5)<>LENB(A1:A5))*1)
(メジロ) 2022/06/11(土) 10:13


 >英数字ではなく漢字カタカナひらがなであれば何でもいい
 「英数字ではなく」をもうちょっと詳細に書いてほしいです
 世の中には「英数字」を「アラビア数字」の意味で使う人がいるので...

 「英数字」が不明確なので、想像ですが「数値」と「それ以外」の場合であれば
 =COUNTA(範囲)-COUNT(範囲)
 でよさそうな気がします
(´・ω・`) 2022/06/11(土) 10:31

何に使うか不明ですがスレ主の希望は

文字列が「abc玉たまタマタマ123456」なら
総文字数が16で求めるのが「abc123456」を除いた
「玉たまタマタマ」で7文字を求める関数と言う事でないの ?

(ROM) 2022/06/11(土) 11:06


Romさま
その通りです。7文字という文字数制限はありませんが仰る通りです。
説明足らずでごめんなさい

皆様にもお詫び申し上げます
(はちわ) 2022/06/11(土) 17:42


マクロなら文字コードを参照して対象を一つ一つ
拾ってくれば何とかなりそうですが、何のためにそのような事が必要なのか
具体的に例を上げて相談したほうが良さげです。
(ROM) 2022/06/11(土) 17:55

すみません、回答取り下げます。
(酢飯) 2022/06/11(土) 18:56

 関数ではないですが、VBAでやるならこうしたロジックが基本になるでしょう。

 ユーザー定義関数にしてもよいでしょうし、
 広い範囲のセル範囲を対象に繰り返し計算するマクロにすることもできると思います。

 Sub test()
     Dim s$, t$, c&, k&
     s = "abc玉たまタマタマ123456"
     For k = 1 To Len(s)
         t = Mid(s, k, 1)
         If t Like "[!0-90-9a-zA-Z]" Then
             c = c + 1
         End If
     Next
     MsgBox c   ' 7が表示されます。
 End Sub

 私も、どんな使い方をされるのか、後学のために知りたいですね。
(γ) 2022/06/11(土) 21:20

そのほか、細かい修正はそちらでやってください。
例えば、
・半角空白、全角空白
・!#$%&といったものを英数とするのかどうか
等々、これらはニーズに応じて変わってくるでしょうね。
(γ) 2022/06/11(土) 22:49

 >すみません、回答取り下げます。 
 あら不思議、(酢飯)さん、どこにも回答されていませんけど。
(分からん) 2022/06/12(日) 00:01

回答はみましたよ。今は削除されてますけど。
差分でみたけどそこにも残ってなかった。
(通りすがり) 2022/06/12(日) 07:37

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.