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ランキング
-
別シートからの文字を変更
-
エクセルの行の抽出について質...
-
Excel 2019 のピボットテーブル...
-
Excelのセルを飛ばして入力する
-
【マクロ】エクセルにかいてあ...
-
Excelのオートフィル
-
Excel初心者です。 詳しい方、...
-
スプレッドシート クエリ関数 1...
-
MOS365 Excel Expert / Excel R...
-
西暦や和暦の表示をyyyymmdd表...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセルの数式で教えてください。
-
スプレッドシートの関数VLOOKUP...
-
エクセルでセルに「氏名を入力...
-
エクセルで指定した日付、店舗...
-
【Excel】セル内の時間帯が特定...
-
Excelのグラフ軸について
-
Excel 2019 は、SPILL機能があ...
-
関数を教えて下さい。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報