=IF(COUNTIF(D16,"*3錠"),3,FALSE)が 33錠をも拾ってしまうが、この識別は どういう具合に設定するのか。

1日分 11日分など

A 回答 (4件)

説明しやすい方法で実現してみました。


A1セルに文字列が入力されているものとします(添付画像参照)。
B1~D1セルに次の式を入力します。
【B1セル】=REPLACE(A1,1,SEARCH(" ",A1),"")
【C1セル】=REPLACE(B1,SEARCH("錠",B1),999,"")
【D1セル】=VALUE(C1)

それぞれの式の意味は以下の通りです。
【B1セル】=A1セルの文字列より、最初の空白までの文字列を削除する
【C1セル】=B1セルの文字列より、"錠"以降の文字列を削除する
【D1セル】=C1セルの文字列を数字に変換する

B1~D1セルの式をひとつにまとめることも可能なのですが、纏めてしまうと意味が分からなくなってしまいそうなので、やめました。
後は、norakurotodorokiさんの方で理解しながら纏めてみて下さい。

ちなみに、各ワードを区切る空白は、半角全角を意識しますので、気を付けて下さい。
「エクセルでの設定」の回答画像4
    • good
    • 0

No.2のお礼に対する返答です。



>一セル内で 「○○錠 3錠 3日分 」の場合 錠が二つありますが右側の錠の左の数字例えば2桁まで この場合3ですがそれを拾うにはどうすればよろしいですか。

必ず2桁で表記されるなら、(「3」は「03」または10桁目にスペースを入れた「 3」と入力)

 =IF(COUNTIF(D16,"*錠 ??錠*"),3,FALSE)

「*」は、文字数を限定しないワイルドカードで、
「?」は、文字数を指定するワイルドカードです。

従って、
「文字数を限定しないワイルドカード」+「錠+(スペース)+【2桁の文字】+錠」+「文字数を限定しないワイルドカード」
で絞り込みます。

※数値ではなく、値を拾いに行くので、エラー対策が必要かもしれません。


・・・余談・・・
全体の文字数と一つ目の「錠」と二つ目の「錠」の間の文字数を数えて…という面倒なこともできますが、
やっていることの説明がちょっと面倒なのでパス。
(やっていることが分からないと、理解できず問題の解決には至りません)
    • good
    • 0
この回答へのお礼

ありがとうございました。いまのところ 反応しません。いろいろやってみます。

お礼日時:2017/05/22 06:46

=IF(COUNTIF(D16,"*3錠"),3,FALSE)


 =IF(COUNTIF(D16,"* 3錠"),3,FALSE)
半角スペースで区切るのはダメかい?

当然D16セルには半角スペースで区切られた「1日分 3錠」「11日分 3錠」のような表現になっている必要がある。

・・・
何に対して行っているのかを明確にしたほうが良いと思う。
例にあげるとしても「11日分 3錠」とか、おかしな表現になってしまいます。
    • good
    • 0
この回答へのお礼

有難うございました。=IF(COUNTIF(D16,"* 3錠"),3,FALSE)としたらできました。 感謝です。神様です。

調剤薬局で働いていて一日なんのお薬 何錠何日分の文章行からそれぞれ一日量と日数量を掛け算して総量をとるつもりでおりました。例が不完全で申し訳ありませんでした。エクセルのプロ様とお見受けいたしましたが、ついでに教えてください。

一セル内で 「○○錠 3錠 3日分 」の場合 錠が二つありますが右側の錠の左の数字例えば2桁まで この場合3ですがそれを拾うにはどうすればよろしいですか。

お礼日時:2017/05/21 08:07

=IF(D16="3錠",3,FALSE)


でダメな理由は?
    • good
    • 0
この回答へのお礼

ありがとうございます。ダメな理由は例えば3錠も 13錠も 同じように拾ってしまうということで
それを区別するにはどうすればいいのかという質問でした。舌足らずで申し訳ありません。空白スペースを入れればいいのかな。と思いましたがそれもダメでした。

お礼日時:2017/05/21 07:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング