過去の桐井戸端BBS (桐ver.8)
11008 条件名で絞り込みするときの条件式でワイルドカード(*)が使えない 吉田 2001/04/24-16:38
再びお教え頂きたいことがあります。

ある表で日付という項目(データ内容は****.**.**)を文字列で扱っており、
この項目の今月分、来月分、先月分等を選択する場合、
絞り込み・条件名の条件式に、

V5の時は
 #部分列(&年月日1,7)*  ・・・今月分選択の場合です
として選択をしていましたが、

V8にそのままの表を移行し条件名で選択をすると、比較式の形式に誤りが...
と表示され受け付けてくれません。

ワイルドカード(*)を削除すれば実行してくれるのですが、選択値が出てきません。

そこで、とりあえず
 #部分列(#文字列(&年月日)1,7)*
としてもエラーが出て困っています。

一体どのようにすれば文字列扱いの項目値を日付変数を使い選択することが出来るのでしょうか?

どなたかご教授願います。
11018 Re:表において条件名絞り込みの条件式について ONnoji 2001/04/24-22:27
記事番号11008へのコメント
吉田さん、おはようございます。ONnojiです。

条件名で記入するセルが対象の項目ならば次のようにします。
#部分列(&年月日,1,7)=#部分列([],1,7)

条件名で記入するセルが対象の項目以外ならば次のようにします。
#部分列(&年月日,1,7)=#部分列([項目名],1,7)

*式の左右はどちらでも構いません。

実はV5はワイルドカードを使った比較式が基本でしたが(それ以外は不可能)、
V8ではワイルドカードを使わない普通の式が書けるように仕様が拡張されています。

桐のヘルプに説明がありますので参照して下さい。
*非常に簡単な説明ですが、V5より格段に便利になっていることがわかります。

[ヘルプ]メニュー→[トピックの検索]→[目次]

+はじめに
−データと式
 +式の書き方
 +条件式(制約 / 条件編集)
 −比較式
  −比較式の書き方
   :
   :
  −仕様メモ ←ここです

ノート
・・・途中省略・・・
旧バージョンでは、左辺か右辺のいずれかが項目名でなければいけませんでしたが、
本バージョンからは、左辺と右辺の両方に計算式を指定できます。

11021 Re:表において条件名絞り込みの条件式について ONnoji 2001/04/25-07:30
記事番号11018へのコメント
ONnojiさんは No.11018「Re:表において条件名絞り込みの条件式について」で書きました。
>実はV5はワイルドカードを使った比較式が基本でしたが(それ以外は不可能)、

説明が不十分でした。

V5では、
文字列型の含むなどはワイルドカードを使います。
文字列の大小比較は演算子(>、<、≦、≧)を使います。
同値の場合は演算子(=)が有っても無くてもよい。
不一致の場合は演算子(≠、<>)を使います。

確かこうだったと思います。

>V8ではワイルドカードを使わない普通の式が書けるように仕様が拡張されています。

ちなみに#文字位置( )関数の使い道は次のようなものです。

含む   #文字位置([項目名],文字式)<>0
含まない #文字位置([項目名],文字式)=0

先頭一致 #文字位置([項目名],文字式)=1
末尾一致 #文字位置(#文字列反転([項目名]),文字式)=1

11022 Re:表において条件名絞り込みの条件式について 吉田 2001/04/25-08:11
記事番号11021へのコメント
>ONnojiさん
おはよう御座います。吉田です。ご回答有り難う御座います。

ヘルプは読んだのですが、仕様メモまでは目を通していませんでした。
勉強不足でお恥ずかしいです。

お教え頂いた式で私の行いたい事が解決致しました。
本当に有り難う御座いました。

あと、先月分、来月分の条件式記載方法はこのようなもので良いですか?

先月分
 #部分列(&年月日,1,5)+#条件選択((&月-1)<10,0,1,"")+#文字列(&月-1)=#部分列([],1,7)
来月分
 #部分列(&年月日,1,5)+#条件選択((&月+1)<10,0,1,"")+#文字列(&月+1)=#部分列([],1,7)

宜しくお願い致します。
11024 Re:表において条件名絞り込みの条件式について ONnoji 2001/04/25-10:40
記事番号11022へのコメント
吉田さんは No.11022「Re:表において条件名絞り込みの条件式について」で書きました。
>>あと、先月分、来月分の条件式記載方法はこのようなもので良いですか?
>
>先月分
> #部分列(&年月日,1,5)+#条件選択((&月-1)<10,0,1,"")+#文字列(&月-1)=#部分列([],1,7)
>来月分
> #部分列(&年月日,1,5)+#条件選択((&月+1)<10,0,1,"")+#文字列(&月+1)=#部分列([],1,7)
>

右辺の(#部分列(&年月日,1,5)+#条件選択((&月-1)<10,0,1,"")+#文字列(&月-1)で生成された)文字列 ****.** と、
左辺の(#部分列([],1,7) で生成された)文字列 ****.** が一致すればいいはずですが...

#条件選択((&月+1)<10,0,1,"") や #条件選択((&月+1)<10,0,1,"") の返す値は ゼロ か 未定義 ですよね。

#部分列(&年月日,1,5)+0(ゼロ)+#文字列(&月+1) は 文字列+数値+文字列 なのでエラーですね。

#部分列(&年月日,1,5)+#条件選択((&月+1)<10,0,1,"")+#文字列(&月+1)は
#部分列(&年月日,1,5)+#文字列(&月+1,2) でいいのではないでしょうか?
*#文字数( )関数に第二引数を指定するとゼロ文字が補われます。

ところで&月が1や12の値の時は1−1=0、12+1=13になりますよね。
これだとゼロ月や13月になります。
例えば、
#条件選択(&月−1>0,&月−1,1,12)や#MOD(&月+1,12)で1−1=12、12+1は1になります。

この時には西暦の部分も減算したり、加算する必要があります。

以上が参考になれば嬉しいです。
11027 Re:表において条件名絞り込みの条件式について 吉田 2001/04/25-11:09
記事番号11024へのコメント
ONnojiさんは No.11024「Re:表において条件名絞り込みの条件式について」で書きました。

ご返答有り難う御座います。

>#条件選択((&月+1)<10,0,1,"") や #条件選択((&月+1)<10,0,1,"") の返す値は ゼロ か 未定義 ですよね。
#条件選択((&月+1)<10,0,1,"")は#条件選択((&月+1)<10,”"0",1,"")の間違いでした。(^^;

>#部分列(&年月日,1,5)+0(ゼロ)+#文字列(&月+1) は 文字列+数値+文字列 なのでエラーですね。
確かにそうです。お恥ずかしいです。

>#部分列(&年月日,1,5)+#条件選択((&月+1)<10,0,1,"")+#文字列(&月+1)は
>#部分列(&年月日,1,5)+#文字列(&月+1,2) でいいのではないでしょうか?
>*#文字数( )関数に第二引数を指定するとゼロ文字が補われます。


>ところで&月が1や12の値の時は1−1=0、12+1=13になりますよね。
>これだとゼロ月や13月になります。
そうですね。

>例えば、
>#条件選択(&月−1>0,&月−1,1,12)や#MOD(&月+1,12)で1−1=12、12+1は1になります。
>
>この時には西暦の部分も減算したり、加算する必要があります。
>
>以上が参考になれば嬉しいです。
大変参考になりました。
本当に有り難う御座いました。

11030 Re:表において条件名絞り込みの条件式について ONnoji 2001/04/25-14:39
記事番号11027へのコメント
吉田さん 失礼しました。訂正です。

>>例えば、
>>#条件選択(&月−1>0,&月−1,1,12)や#MOD(&月+1,12)で1−1=12、12+1は1になります。

#MOD(&月+1,12)は駄目でした。11+1=0になってしまいます。

#条件選択(&月+1<=12,&月+1,1,1) がいいです。

ちょっとボケていました。すいません。

戻る