countif関数で正規化表現をすると、エラーにもならず結果は0(正しくは12)が返される。
  使用しているOOOのVer:3.4.0
   仕様OS:Windows7 Home Pre.
   機種:Lenovo G560
具体的な使用例:
セル範囲(M3:M79)に下記の文字列が混在している。
  新幹線、飛行機、澤田車、熊田車、古川車、藤井車、その他
「車」の文字が入ったセル(澤田車、熊田車、古川車、藤井車)の合計セル数をカウントしたいので、
「車」の部分に正規化表現の*を使って、関数の記述は以下の通り。
  =countif(M3:M79;"*車*")    (車の前後に*印を)
なお(車の前にだけ*印をいれた)=countif(M3:M79,"*車")でも結果は同じです。
MS_OfficeのExcelならば上のどちらの記述でも正しい結果(12)が出るのですが...。
上記の記述で、どこが間違っているのでしょうか?教えて下さい!
よろしくお願いいたします。
Aug.6,2012 Debara
			
			
									
						
							countif関数で正規化表現がうまくいかない
- 
				MoIshihara
 - 記事: 337
 - 登録日時: 6月 21, 2010, 6:52 am
 
Re: countif関数で正規化表現がうまくいかない
Debara さん こんにちは
・お手数ですが、作成した ods ファイルを添付して下さい。
			
			
									
						
										
						・お手数ですが、作成した ods ファイルを添付して下さい。
Re: countif関数で正規化表現がうまくいかない
MoIshiharaさん
添付File:同期会2012in仙台
箇所:92行K欄の「自家用車」の関数です。
他の行の正規化表現をしないcountif関数の戻り値は正しいモノです。
よろしくお願いいたします。
Aug.15,2012 Debara
添付Fileは都合により削除させていただきました。
Aug.16,2012 Debar
			
			
													添付File:同期会2012in仙台
箇所:92行K欄の「自家用車」の関数です。
他の行の正規化表現をしないcountif関数の戻り値は正しいモノです。
よろしくお願いいたします。
Aug.15,2012 Debara
添付Fileは都合により削除させていただきました。
Aug.16,2012 Debar
					最後に編集したユーザー Debara [ 8月 16, 2012, 8:48 pm ], 累計 1 回
									
			
						
							OpenOffice3.2.1  Windows7
			
						- 
				MoIshihara
 - 記事: 337
 - 登録日時: 6月 21, 2010, 6:52 am
 
Re: countif関数で正規化表現がうまくいかない
Debara さん こんにちは
下記手順を試して下さい。
1.メニューから[ツール][オプション]を選びます。
2.[オプション]ダイアログのツリービューから[OpenOffice.org Calc][計算式]を選びます。
3.[数式で正規表現を使う]チェックボックスをオンにします。
4.[OK]ボタンをクリックします。
5."K92"セルを選択します。
6."=COUNTIF(K$3:K$79;".*車")" と入力します。
(正規表現のワイルドカード "*" はその手前の文字を評価します、詳しくはヘルプを参照して下さい)
			
			
									
						
										
						下記手順を試して下さい。
1.メニューから[ツール][オプション]を選びます。
2.[オプション]ダイアログのツリービューから[OpenOffice.org Calc][計算式]を選びます。
3.[数式で正規表現を使う]チェックボックスをオンにします。
4.[OK]ボタンをクリックします。
5."K92"セルを選択します。
6."=COUNTIF(K$3:K$79;".*車")" と入力します。
(正規表現のワイルドカード "*" はその手前の文字を評価します、詳しくはヘルプを参照して下さい)
Re: countif関数で正規化表現がうまくいかない
MoIshihara さん
早速の回答を有難うございました。
ご指示通りにやったら正規表現自体はうまくいきました。
しかし、Calcを終了させると、「option」で指定した内容(正規表現を使う)が保持されずに「使わない」に
戻ってしまいます。(何度やっても結果は同じ) これはどうすれば解決しますか?
(本件は別のスレッドを立てた方が良かったでしょうか?)
以下は最初の質問(正規表現が失敗する)への付記事項です
ところで
(1)「正規化表現を使う」をOptionで指定するのは知りませんでした。私の調査不足でした。
しかし願わくば「正規表現」のヘルプでその旨の注意書きがあると嬉しいですね。
(2)「.*」とは知りませんでした。
回答を戴いた際には「ああ、option指定が必要だったか!」と思い、そこを指定しても改善されていないので、
「おかしいなあ!」と思いつつ回答を眼を凝らして良く見ると「.*車」と「*」印の前に「.ピリオド」が付いていました。
確かにこれもヘルプ正規表現の表中2段目に「行ブレークと段落ブレーク以外のすべての単一文字を表します」と明示されていますが、
この意味が中々理解できませんでしたが、今回の事例でよく分かりました。
この仕様によれば今回の事例では「.*車」でも「..車」でも同じ結果になるのですね?
(3)ところでこの「*」印の仕様はExcelとは全く互換性がないのですね?
確かMS_Excelのアスタリスク「*」は、どんな文字にもどんな文字数にもなれる文字で、
「*」を使えば0文字以上の任意の文字列を指定したことになりますよね?
色々とお手数をおかけしますが、宜しくお願い致します。
Aug.16,2012 Debara
			
			
									
						
							早速の回答を有難うございました。
ご指示通りにやったら正規表現自体はうまくいきました。
しかし、Calcを終了させると、「option」で指定した内容(正規表現を使う)が保持されずに「使わない」に
戻ってしまいます。(何度やっても結果は同じ) これはどうすれば解決しますか?
(本件は別のスレッドを立てた方が良かったでしょうか?)
以下は最初の質問(正規表現が失敗する)への付記事項です
ところで
(1)「正規化表現を使う」をOptionで指定するのは知りませんでした。私の調査不足でした。
しかし願わくば「正規表現」のヘルプでその旨の注意書きがあると嬉しいですね。
(2)「.*」とは知りませんでした。
回答を戴いた際には「ああ、option指定が必要だったか!」と思い、そこを指定しても改善されていないので、
「おかしいなあ!」と思いつつ回答を眼を凝らして良く見ると「.*車」と「*」印の前に「.ピリオド」が付いていました。
確かにこれもヘルプ正規表現の表中2段目に「行ブレークと段落ブレーク以外のすべての単一文字を表します」と明示されていますが、
この意味が中々理解できませんでしたが、今回の事例でよく分かりました。
この仕様によれば今回の事例では「.*車」でも「..車」でも同じ結果になるのですね?
(3)ところでこの「*」印の仕様はExcelとは全く互換性がないのですね?
確かMS_Excelのアスタリスク「*」は、どんな文字にもどんな文字数にもなれる文字で、
「*」を使えば0文字以上の任意の文字列を指定したことになりますよね?
色々とお手数をおかけしますが、宜しくお願い致します。
Aug.16,2012 Debara
OpenOffice3.2.1  Windows7
			
						- 
				MoIshihara
 - 記事: 337
 - 登録日時: 6月 21, 2010, 6:52 am
 
Re: countif関数で正規化表現がうまくいかない
Debara さん こんにちは
>(正規表現を使う)が保持されずに「使わない」に戻ってしまいます。
[正規表現を使う]オプションは、Calc では無く、その設定を行ったファイルに保存されます。
Calc のデフォルトテンプレートは、このオプションがオンになっていますので。
新規ドキュメントでは無く、過去のファイルかそれとも xls ファイル等を指していませんか?
>「..車」でも同じ結果になるのですね?
たまたま今回は、苗字が2文字の人だけでしたので同じ結果になりました。
苗字が3文字の人がいたらどうしますか?
>ところでこの「*」印の仕様はExcelとは全く互換性がないのですね?
Excel の書式は MS-DOS の頃のなごりで、正しい正規表現ではないのです。
http://ja.wikipedia.org/wiki/%E6%AD%A3% ... 8%E7%8F%BE
			
			
									
						
										
						>(正規表現を使う)が保持されずに「使わない」に戻ってしまいます。
[正規表現を使う]オプションは、Calc では無く、その設定を行ったファイルに保存されます。
Calc のデフォルトテンプレートは、このオプションがオンになっていますので。
新規ドキュメントでは無く、過去のファイルかそれとも xls ファイル等を指していませんか?
>「..車」でも同じ結果になるのですね?
たまたま今回は、苗字が2文字の人だけでしたので同じ結果になりました。
苗字が3文字の人がいたらどうしますか?
>ところでこの「*」印の仕様はExcelとは全く互換性がないのですね?
Excel の書式は MS-DOS の頃のなごりで、正しい正規表現ではないのです。
http://ja.wikipedia.org/wiki/%E6%AD%A3% ... 8%E7%8F%BE
Re: countif関数で正規化表現がうまくいかない
MoIshiharaさん
返信を有難うございました。
今回のご回答の内容は全て理解いたしました。
確かに保存する際には(データ互換の関係から)odf形式ではなくxls形式にしています。
色々とご指導を有難うございました。
Aug.17,2012 Debara
			
			
									
						
							返信を有難うございました。
今回のご回答の内容は全て理解いたしました。
確かに保存する際には(データ互換の関係から)odf形式ではなくxls形式にしています。
色々とご指導を有難うございました。
Aug.17,2012 Debara
OpenOffice3.2.1  Windows7