![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
No.4ベストアンサー
- 回答日時:
#1,3です。
#1の説明に誤りがありました。
誤)
> "?"
> は、「長さ0または1の文字列」
正)
"?"
は、「任意の1文字」
以上、訂正をお願いします。
失礼しました。
No.5
- 回答日時:
こんばんは!
横からお邪魔します。
空白以外のセル数を取得する関数
>=COUNTIF($B$2:$B$22,"*?")
の使い方は当方は以前から
>=COUNTIF($B$2:$B$22,"?*")
のように「?」とアスタリクスを逆にして使っています。
「長さが1文字以上の文字列」という解釈です。
(実際はどちらでも大丈夫のようですが)
生データであればCOUNTA関数で対応できるのですが
数式によって「空白に見えるセル」が混在している場合、COUNTA関数では対応できないので
このような使い方はしたことがあります。
ただし、大前提として数式によって返ってくるのは「文字列」というコトです。
結果が「数値」の場合は反応しないと思います。(「0」となるはずです)
数値の場合はCOUNT関数で対応できますが・・・
※ 実は先日同じような質問がCOUNTIFS関数でありましたが
数式によって表示されるデータが「文字列」なのか、「数値」なのかが判らなかったので
敢えて他の方法をアドバイスしたことがありました。
まずはこの程度で・・・m(_ _)m
No.3
- 回答日時:
#1です。
ご質問の数式は10年近く前から、何度か書籍・Webサイト・電子掲示板でも
紹介されていたものだったと記憶しています。
この数式を正解とするクイズに参加したこともありました。
もしかしたら
=COUNTIF($B$2:$B$22,"?*")
と、順番が逆になっていたりする場合もあったのかも知れませんけれど、、、。
現在の私の環境でも、
#1で提示したサンプルで
列挙した4つの数式がすべて異なる値を返す
ことが簡単に確認できます(数式戻り値、上から{4;5;2;7})。
もしかして、環境によっては正しく機能しない場合がある?
というお話をなさっているのでしょうかね?
もし結果が異なるということでしたら、
情報として原因が知りたいです。
Excel関数も用いるワイルドカードと正規表現のメタキャラクタとは
確かに似てるから混同してしまう人も居るのかも知れないですね。
以上、#2さんのコメントを受けての追加補足でした。
No.2
- 回答日時:
こんにちは。
>=COUNTIF($B$2:$B$22,"*?")
>"*?"は、どういう意味なのでしょうか
「"*?"」
誤動作はしませんが、何かの間違いだと思います。
=COUNTIF($B$2:$B$22,"*")
ということと、違いはありません。
* (任意の1文字以上の文字列)
? (任意の1文字)
Excelの組み込み関数の中では、二つを直接組み合わせても意味がありません。
これは、別のストリーム系のプログラムで使う「正規表現」の最短マッチ法に使う書き方に
似ています。しかし、正規表現の書き方は少し違いますし、本来、Excelとは仕様も違います。
(ストリーム系の代表としては、Unicode系の"grep"があります)
おそらく、文字列を探す"*"や"?" を正規表現のそれを混同したのではないでしょうか?
「?」は、Excel上では、「長さ0の文字列」は検知できず、任意の1文字を探します。
(※ 「長さ0の文字列」というのは、少しおかしな表現ですが、れっきとしたブログラミング用語
です。"" [二つのクォーテーション文字で囲まれた中に何もないもの]のことですが、
Excel上では、="" と表します。Excel上にはありませんが、「値0の文字列」などという
ものもあります。)
余談ですが、ストリーム系のプログラムでは、正規表現のメタキャラクタと言いますが、
「?」は、直前に置かれている文字の1回以上の文字列を指します。
「*」は、直前に置かれている文字の0回以上の文字列を指します。
ということになっていますが、Excel上では、標準的には使えません。
たぶん、どこかに、Excelの関数のワイルドカードの説明や使い方は出ているとは思いますが、今の時点で期待通りの詳しい説明があるサイトが見つかりませんでした。
ただし、Excelの関数のワイルドカードにも、裏ワザがいくつかあると思います。
例えば、「長さ0の文字列」を探す方法は、最近、質問に出たばかりです。
No.1
- 回答日時:
こんにちは。
> "*?"は、どういう意味なのでしょうか
「少なくとも一文字以上の長さのある文字列値」があるセルをカウントします。
=COUNTIF($B$2:$B$22,"*?")
=COUNTIF($B$2:$B$22,"*")
=COUNTIF($B$2:$B$22,"?")
=COUNTA($B$2:$B$22)
上記4種類の数式で、
0
10
a
abc
=""
="a"
="abc"
などのサンプルを使って確認してみて下さい。
よく見かける数式として、=IF(条件,計算値,"")のようなものがありますが、
条件によっては「長さ0の文字列」をセルの値に返します。これを
=""
で表していますが、
COUNTA関数と、ご提示の数式ととで、
結果が違う点に着目して頂ければ、
ご提示の数式の意味(存在意義)は自ずと見えてくると思います。
"*"
は、「長さ0以上の文字列」
"?"
は、「長さ0または1の文字列」
を指し示すワイルドカードです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel この式はどんな意味でしょうか。。。 4 2023/01/14 22:30
- Excel(エクセル) Excel この数式の意味を教えて頂けませんか? 5 2022/12/31 10:25
- Excel(エクセル) ExcelのCOUNTIF関数について COUNTIF関数を使って1の目の累積回数を計算したいのです 3 2023/06/13 22:41
- Excel(エクセル) Excelの計算式の意味が知りたい 3 2023/06/19 17:49
- Excel(エクセル) 複数のセルでの文字判定について 5 2022/06/07 14:08
- 数学 数学の質問です。 2つの2次方程式A,Bを繋げてA=Bにしてまとめた2次方程式はどんな意味があるので 6 2023/08/22 12:30
- Excel(エクセル) substitute関数についての質問です 3 2023/06/21 11:57
- Excel(エクセル) 『シフト表自動化の作成について』 1 2022/06/02 00:45
- Excel(エクセル) A、B、C・・・AA、ABと連番でふりたい、調べても式の意味がわからずパニックになってしまう 1 2023/01/23 19:17
- Excel(エクセル) Excelの関数詳しい方お願いします。 13 2023/01/18 21:11
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel分数の表示について
-
Excelについての質問です。 B2...
-
EXCELの散布図で日付が1900年に...
-
文字2桁、3桁交じりの文字列...
-
【EXCEL】画像の黄色部分の抽出...
-
マクロエクセルのブロック解除
-
絶対参照
-
Excelで表を作ったところに文字...
-
Excelピボットテーブルの1行目
-
エクセルのクイックアクセスツ...
-
DATE関数で現在の年齢を出した...
-
(マクロ)vlookupの元データを同...
-
PDFの請求明細をエクセルにしたい
-
エクセルのクイックアクセスツ...
-
REGEXREPLACE関数について、
-
職場の人から聞かれており、こ...
-
エクセルの空欄をつめて、次の...
-
ユーザー定義関数をアドイン登...
-
EXCELの質問です 119から足した...
-
エクセルの問題です。絶対値の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報