[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『文章のなかの数字だけを隣のセルに書き出したい』(エレナ)
こんばんわ。過去ログも検索したのですが見つけられなかったので質問させてください。
もし、過去にあったら誘導だけでも結構です。
A1セルに文章があり、その中に(野菜200)(果物50)というような数字が入っています。
A B C 〜
1 元の文章□□□□200□□□□50 〜
2 元の文章□□□□10□□□□□ー 〜
3 元の文章□□□□□ー □□□□□ー 〜
※上手く表にならなかったので□□□□をスペースの代用にしました
のような表を作りたいのですが思うようにできません。
B1に =MID(A1,FIND("菜",A1)+1,LEN(A1)) とすると B1セルが 「200)その後の文章全部」
という具合になってしまいます。
例では文章内に()2つにしましたが3つのところも0のところもあります。
例では0の部分を「ー」にしましたが空白がベストです。
よろしくお願いします。
EXCELのversion@2003&2007(どちらでもOKです)
OS@WinXP
◆少し、式が長くなりましたが、これでいかがでしょうか?
A B C D 1 (野菜200)(果物50) 200 50 2 (野菜500)(果物70)(魚600) 500 70 600 3 (野菜400) 400 4 (果物65)(魚950) 65 950 5
B1=IF(COLUMN(A1)>LEN($A1)-LEN(SUBSTITUTE($A1,")",)),"",LOOKUP(10^10,RIGHT(REPLACE(REPLACE($A1,FIND("♪",SUBSTITUTE($A1&")",")","♪",COLUMN(A1))), LEN($A1),),1,FIND("♪",SUBSTITUTE(")"&$A1,")","♪",COLUMN(A1)))-1,),COLUMN(1:1))*1))
★右と下にコピー (Maron)
改行とスペースを省いてコピペしてみたんですがB1もC1も空白でエラー(矛盾した数式)になっています。
途中のLOOKUPの数式で#VALUEになっていて( ̄~ ̄;)ウーン・・・
文章内の”(”を♪に置換しているのはわかったんですが
基本的な式が全く理解出来ていないので少し解説をしてもらえませんか?(泣)
エラーの原因が少しわかりました。例題同様に参照列をA列にすると一部は数字が出て来たのですが 列の挿入でB列に移動させると認識一部しか認識しなくなりさらにもう1列挿入すると 完全に空白ばかりになりました。あと、数字が出ないところは”(”が半角のところでした。 もう少し検証してみます('◇')ゞ
>例題同様に参照列をA列にすると一部は数字が出て来たのですが > 列の挿入でB列に移動させると認識一部しか認識しなくなり
回答側は、例題に合わせて案を作成します。 レイアウトが異なると、正しい結果が得られないことも起こります。
一般的に、列の挿入で、式のアドレスは自動的にズレます。 文章の入っている列が自動的にズレるのは構わないのですが、 Column(A1)となっているところは、ズレるとまずいので、 「A1」に修正してください。
以下は私の案です。よろしければこれもトライしてみて下さい。 (A列に文章がある場合) B1セル =IF(LEN($A1)-LEN(SUBSTITUTE(ASC($A1),")",""))<COLUMN(A1),"",LOOKUP(100000, RIGHT(LEFT($A1,FIND("♪",SUBSTITUTE(ASC($A1&")))"),")","♪",COLUMN(A1)))-1),COLUMN(1:1))*1)) (半平太)
こんばんわ。 columnの部分なのですね。 最初はA1の部分を一括置換して貼り付けて#VALUEになっていたので セルの挿入で試したのです。
ところで、半平太さんの案ですが、B列は3分の1程度が空白、 C列は「あいうえおかきくけこさすすせそたちつてと(野菜200)(果物50)」とした行の50だけ は取得できたのですが他は空白となってしまいました。
少しわかったのは()に(アートボード100)などカタカナでーが入っていると取得できないようです。 ひらがなで(あーとぼーど)は大丈夫でした。なぜなのかは全く見当がつきませんが・・
どちらにしてもA列でないと機能しないようなのでそのように変えてやってみます。 ありがとうございました。
> 少しわかったのは()に(アートボード100)などカタカナでーが入っていると取得できないようです。
濁点のあるカタカナは、半角に変換すると文字数が2文字になってしまうものがあることを見落としました。
(A列に文章がある場合) ↓ B1セル =IF(LEN(ASC($A1))-LEN(SUBSTITUTE(ASC($A1),")",""))<COLUMN(A1),"", LOOKUP(100000,RIGHT(LEFT($A1,FIND("♪",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($A1&")))", ")",")")," "," "),")","♪",COLUMN(A1)))-1),COLUMN(1:1))*1))
(半平太)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.