「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:1
昨日:1
総数:4286
現在:3


VLOOKUPにおいて(又は)のある文字列を検索できない

ページOpenOffice.org FAQの登録ページ
投稿者nomoto
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2008-02-01 08:40:06 (金)
OSxp
依存するページ
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

VLOOKUPにおいて、検索値に半角(,)が含まれると検索できない。 以下のような現象が起きました

 A     B       B列の計算式
1あああ   あああ   =VLOOKUP(A1;$A$1:$A$6;1;0)
2(いいい) (いいい) =VLOOKUP(A2;$A$1:$A$6;1;0)
3(ううう)   #N/A    =VLOOKUP(A3;$A$1:$A$6;1;0)
4えええ)   #N/A    =VLOOKUP(A4;$A$1:$A$6;1;0)
5(おおお   #N/A    =VLOOKUP(A5;$A$1:$A$6;1;0)
6かかか   かかか   =VLOOKUP(A6;$A$1:$A$6;1;0)

半角カッコを全角に変換して利用していますが、不具合と思いますので投稿します。


メタ文字に関連するようですね

ike@九州 (2008-02-01 09:45:47 (金))

ツール>オプション>OpenOffice.org Calc>計算式
での、数式で正規表現を使うのチェックを外すと正常に機能するようです。

チェックを入れて使用する場合メタ文字の検索として機能するように、
半角の"("、")"は
"\("、"\)" として記述したところ機能しました。
faq/4/808

場合によって使い分けたほうが宜しいかもしれませんね。
(チェックのオンオフ面倒。自動判断できるようになれば、良いのですけれど)

ありがとうございました

nomoto (2008-02-03 19:52:06 (日))

数式で正規表現を使うのチェックを外すとうまく行きました。
商品名(備考)等としてカッコを使っているので"\("、"\)"とデータに入れるのは抵抗があります。

正規表現を使うのチェックを外すと正規表現が使えないので =COUNTIF(A1:A6;"あ*")が0となってしまいました。

不具合として報告したのですが、これは仕様ということになるのでしょうか?

説明不足で失礼しました

ike@九州 (2008-02-04 09:24:27 (月))

正規表現オンではデータ側に"\"を入れるのではなく、数式側の検索値に"\"を入れる必要がある仕様みたいです。
差し支えない具体例があると数式の工夫できるのですが…
=COUNTIF(A1:A6;"あ*")の場合だと
=COUNTIF(A1:A6;"\(*あ.*\)*") で
"あ〜"、"(あ〜"、"(あ〜)"、"あ〜)" 検知しませんでしょうか
やってみないと分かりませんね m(_ _)m

追記(何度もすみません)
名案がありました。最初のVLOOKUPの数式の場合

=VLOOKUP(SUBSTITUTE(SUBSTITUTE(A1;"(";"\(");")";"\)");$A$1:$A$6;1;0)

置換するSUBSTITUTE関数は重ねて使えるようです

SUBSTITUTE関数を重ねてうまくいきました。

nomoto (2008-02-05 07:44:38 (火))

うまくいかないメタ文字を調べたら、$[*+?|()でいきませんでした。

すべてに対応するようにSUBSTITUTEを追加するとうまくいくようです。

=VLOOKUP(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1;"$";"\$");"[";"\[");"*";"\*");"+";"\+");"?";"\?");"|";"\|");"(";"\(");")";"\)");$A$1:$A$8;1;0)

ありがとうございました。

VLOOKUPの不具合ではないんですね。

nomoto (2008-02-08 12:05:54 (金))

分類を不具合で登録していましたがQAに変更されました。
VLOOKUPの検索文字にメタ文字が含まれる場合検索されない場合があることは仕様ということで理解しました。
このままではVLOOKUP関数は使えませんのでSUBSITIUTE関数を含んだ形のものをVLOOKUPNとして登録したいと思います。

関数の登録方法を教えてください。
関数 登録で検索したんですがわかりませんでした。
よろしくお願いします。

これは、難しい問題ですが、

amano (2008-02-08 18:19:29 (金))

本質は何処にあるかと言うと、正規表現か否かのスイッチを、各関数に用意せずスプレッドシート全体に適応するという仕様がまずいのです。
VLOOKUP()だけの問題でなく、アプリケーション全体の設計にかかわる問題です。

カッコの扱いに関連するIssue

M.Kamataki (2008-05-10 11:13:00 (土))

と思われるものが見つかりました。以下のissueです。様々な意見がありまとまっていない様子。

"Unbalanced parentheses in expression should not trigger regexp functions"
http://ja.openoffice.org/issues/show_bug.cgi?id=66023

お名前:
題名: