すみません、まさにその通りでして、元ファイルでやりたいことを説明するのがややこしく、単純な例を使ったつもりが逆に曖昧な結果となってしまっていました。反省します。
結果的に、himadaneeさんのPatternCountを使って解決しました。皆様のお手を煩わせてすみませんでした。
]]>7レコードのみなら手作業で入力すればいいでしょう。
> 「いちご」「みかん」等のには3文字〜5文字程度が入ります
「程度」と書かれていますからそれ以外もある可能性がありますよね。
> 後半の「春の果物」と「秋の果物」で苦戦しています
「春」のみではなさそうですし、、
それらの文字列の種類が数種の有限でしたら、
ベタベタ書いて行けばいいでしょうが、数10とか無限ではそれも無理ですよね。
もっと正確な規則性を書くべきでしょう。
Shinさんの方法は
いちご
が有って
いちご春
なら良さそうですが、
いちご
のレコードがないとダメでしょう。
最初に「7つのレコード」とはっきり書いてるんで、例示されてる以外の値は出てこない、と解釈するのが自然ですが、それならHiroさんの式でもOK?
でもその時の例は#3で否定されてしまってるから微妙か。
そもそも春とか春赤も実際の値じゃなさそうですし。。。
空欄以外の場合に”果物”と入れるが、特定の文字列が含まれてれば、それに応じた形容詞をつける。
]]>実際に式を試してみましたか? 質問事項は織り込み済ですよ。
式は前から順に精査判定してゆきます。その前半部で、「いちご」「りんご」「みかん」は「果物」に変換されていますよ!
#3で具体的に例示されている5種項目についてのみ絶対変換するだけで良いのなら、
式は、
Substitute( Aフィールド
; ["いちご";"果物"]
; ["りんご";"果物"]
; ["みかん";"果物"]
; ["果物春赤";"春赤"]
; ["果物春";"春"]
)
について、後半の
; ["果物春赤";"春赤"]
; ["果物春";"春"]
の「果物」の部分が、たとえば「いちご」だったり「りんご」だったり「みかん」だったりして、絶対変換ではないのです・・・
]]>文字列が含まれるかどうかは、演算記号では書けません。
PatternCountかPositionの関数を使います。
どっちを使うにしても、長い文字列の条件を先に書きます。Caseは条件を満たす値があればその先は判定しません。
caseを使って以下のように途中まで書いておりまして
Case(
A="いちご";"果物" or
A="りんご";"果物" or
A="みかん";"果物" or
この先を
A B
いちご春 春
りんご春赤 春赤
という結果が得られるようにしたいのです。
この際、
A="春";"春"
A<"春";"春"
A="春赤";"春赤"
A<"春赤";"春赤"
等試しているのですが、"春赤"が返されることがなく、空白か"春"のみしか返されません。
厳密に「文字列『春』だけを含む」検索や、あるいは「右から一文字目が『春』あるいは『赤』」等の数式があるのか検索していますが、ヒットしません。
説明下手で申し訳ありません・・・
]]>Case (
A = テーブル 2::A ; "果物" ;
Substitute ( A ; テーブル 2::A ; "" )
)
]]>A B
いちご 果物
りんご 果物
みかん 果物
いちご春 春の果物
いちご春赤 春赤の果物
(空白) (空白)
のようにしたいと書いたのですが、実際は
A B
いちご 果物
りんご 果物
みかん 果物
いちご春 春
いちご春赤 春赤
(空白) (空白)
にしたいのです。文字列「春」だけを含む場合と、文字列「春赤」のどちらも含む場合の構文の書き方に苦労しています・・・
初歩的な質問だとは分かっているのですが・・・すみません
]]>Case (
A = テーブル 2::A ; "果物" ;
Substitute ( A ; テーブル 2::A ; "" ) & "の" & テーブル 2::B
)
とすればいいでしょう。
]]>Aというフィールドに7つのレコードを作成し、それぞれに
いちご
りんご
みかん
いちご春
りんご
いちご春赤
(空白)
と入力しています。
Bという計算フィールドを作成し、Aの内容から以下のように表示させたいと思っています。
A B
いちご 果物
りんご 果物
みかん 果物
いちご春 春の果物
いちご春赤 春赤の果物
(空白) (空白)
Bを作成する際の式の書き方が分かりません。if構文かと推測していますが、後半の「春の果物」と「秋の果物」で苦戦しています。実際はもうすこしややこしく、「いちご」「みかん」等のには3文字〜5文字程度が入ります。『春』という文字だけを含む」場合はどうすれば良いでしょうか?
]]>