- ベストアンサー
Excel関数(IF)のネストで数式が確定できない問題について
- Excel関数(IF)のネストで数式が確定できない問題に悩んでいます。質問文章全体の100文字程度の要約文を3つ作成し、解決方法をご教授ください。
- Excel関数(IF)のネストで数式が確定できない問題について質問しています。セルD1に入っている文字から漢字の前部分を抜き出すためにIF文を使用しているのですが、ネストの制限により数式が確定できません。Excel2003 SP3を使用しています。
- Excel関数(IF)のネストで数式が確定できない問題に悩んでいます。セルD1に入っている文字から漢字の前部分を抜き出すためにIF文を使用していますが、ネストの制限により数式が確定できません。解決方法をお教えいただけると助かります。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>=IF(LENB(MID(D1,2,1))=2,LEFT(D1,1), >IF(LENB(MID(D1,3,1))=2,LEFT(D1,2), >IF(LENB(MID(D1,4,1))=2,LEFT(D1,3), >IF(LENB(MID(D1,5,1))=2,LEFT(D1,4), >IF(LENB(MID(D1,6,1))=2,LEFT(D1,5), >IF(LENB(MID(D1,7,1))=2,LEFT(D1,6),"数式を確認")))))) は確定できたと思います。ネストのレベルは7になります。 よって、これ以上の追加は2007以降のExcelを使うことになります。 しかし、規則性があるので =LEFT(D1,MATCH(2,LENB(MID(D1,{2,3,4,5,6,7,8},1)),0)) とすればよいでしょう。(エラー処理なし)
その他の回答 (4)
- KURUMITO
- ベストアンサー率42% (1835/4283)
E1セルには次の式を入力すればよいでしょう。 =LEFT(D1,LENB(JIS(LEFT(D1,7)))-LENB(ASC(LEFT(D1,7))))
お礼
回答ありがとうございます! JIS、ASCを使う手もあるんですね。 とても勉強になります! どうもありがとうございました!
- keithin
- ベストアンサー率66% (5278/7941)
>全角漢字のあとには、まだ文字が続きまして 半角の括弧,あるいは半角のスペースですね。 「半角」「全角」と続きますというご相談の情報提供がウソだったのでは,当然ダメです。 例えば =LEFT(A1,LEN(LEFTB(A1,7))*2-LENB(LEFTB(A1,7))) のように。
お礼
早速回答ありがとうございました! 入力した情報が間違っていました、 大変失礼しました。 教えていただいた数式で出来ました。 とても参考になります、ありがとうございました!
- keithin
- ベストアンサー率66% (5278/7941)
=LEFT(A1,LEN(A1)*2-LENB(A1)) で良いと思いますが。
補足
回答ありがとうございました! 実際のデータでは 全角漢字のあとには、まだ文字が続きまして 教えていただいた数式を試したところ 2.9.2締切期日 (営業第二要確認・未) というセルのところで、漢字も一緒に 表示されてしまいました。 でも参考になります!ありがとうございます!
- asciiz
- ベストアンサー率70% (6825/9705)
文字列は必ず 「半角英数字」+「全角漢字」ですか? それならば、別の式も考えられます。 =RIGHT(D1, LENB(D1) - LEN(D1)) バイト数で数えたときと、文字数で数えたときの差が、全角文字数ということになります。 「1.2.10.15終了」などにも対応できます。 右側部分に1バイト文字が混じると狂うので、英数字でも記号でも、全角で書いてもらわないと困りますが。 ところで"数式を確認"のエラーはどんなときに出しますか? 漢字部分が無いとき、なら、たとえば =IF(LENB(D1)=LEN(D1), "数式を確認", RIGHT(D1,LENB(D1)-LEN(D1))) このように書けるでしょう。
お礼
早々に回答してくださりありがとうございました! ちなみに"数式のエラー"は必要なものではなく、 IF関数の「偽の場合」を埋める為に入れたものでした。 回答してくださる皆様は色々な可能性を考えてくださるのに 分かりづらい質問でした。大変失礼しました! どうもありがとうございました!
補足
回答ありがとうございます! 文字列は必ず 「半角英数字」+「全角漢字」となります。 教えていただいた数式ですと、 「全角漢字」が抜き出されますが「半角英数字」を 抜き出したかったのです。 でも参考になりました!
お礼
早々に回答して頂いたおかげで助かりました。 自分でも配列が使いこなせるように勉強します。 本当にありがとうございました!
補足
教えていただいた配列で出来ました! ありがとうございました! IFが全部で6個だったので、 ネストレベルを超えていないと思ったのですが これでレベル7になるのですね・・・ どこを見てレベル7と判断すればよいのか、 よろしければ教えてください!