プロが教える店舗&オフィスのセキュリティ対策術

エクセル で
セル Fに ※※※K ※※※※※ (数字3つ+K+半角スペース+数字5つ)
の形が入ったら 
セル Bにそのままのその数字と文字を反映させる(F情報がBに入る) 
とゆう計算式をセルBに入れたいのですが。

(ちなみに※には必ず数字が入り 都度数字は変わります。 変わらないのは Kとゆうアルファベットと Kのあとに半角スペースが入る
とゆうことです)

A 回答 (8件)

No.5 の補足です



>数字3つ+K+半角スペース+数字5つ
ということですので、半角・全角の区別をしているようですね
数字については全角・半角が混在していてもOKと思いますが・・・
必要に応じて
LEN(F2)=10
LENB(F2)=10
を使い分けでください


また、大文字、小文字の区分が必要な場合
MID(F2,4,2)="K ") を EXACT(MID(F2,4,2),"K ")
    • good
    • 0

No6の回答の訂正と補足です。



前の回答の最後の部分のISERROR関数を削除して簡略化した数式は正しく作動しません。
また、後ろの文字も5桁だけ抽出する数式にしたほうがわかりよいかもしれません。

さらに以下の例のように、文字列に「/」や「.」などの記号が混ざっていると提示した数式は正しい結果を示しません。

123K 789.7
123K 78/08

これらの場合にも対応する数式にしたい場合は、以下のような数式にしてください。

=IF((ISNUMBER((LEFT(F2,3)&RIGHT(F2,5))/(INT(LOG10((LEFT(F2,3)&RIGHT(F2,5))*1))=7))*(MID(F2,4,2)="K ")*(LENB(F2)=10)),F2,"")
    • good
    • 0

皆さんの回答でほぼOKなのですが、文字数が変動した場合や「半角」の文字「10字」という条件も加味した数式なら、以下のような簡略化した数式になります。



=IF((ISNUMBER(LEFT(F2,3)*RIGHT(F2,6))*(MID(F2,4,2)="K ")*(LENB(F2)=10)),F2,"")

すなわち、左3文字と右5文字が数字で4文字目から「K 」と入力されていて、半角で10文字の場合のみF2セルの値を表示することになります。

上記の式はさらに以下のように簡略化することもできます。

=IF((LEFT(F2,3)*RIGHT(F2,6)*(MID(F2,4,2)="K ")*(LENB(F2)=10)),F2,"")
    • good
    • 0

何処まで考慮すればいいのかな?



=IF(AND(ISNUMBER(REPLACE(F2,4,2,"")*1),MID(F2,4,2)="k "),F2,"")

10桁未満、11桁以上の文字もあるのかな
=IF(AND(LEN(F2)=10,ISNUMBER(REPLACE(F2,4,2,"")*1),MID(F2,4,2)="k "),F2,"")


Fに  ※※K ※※※※※ (半角スペース+数字2つ+K+半角スペース+数字5つ)
なんてのもあるのかな

※/※K ※※※※※ (数字+/+数字+K+半角スペース+数字5つ)
なんてのもあるのかな



=IF(AND(LEN(F2)=10,COUNT(INDEX(MID(F2,ROW(A1:A10),1)*1,))=8,MID(F2,4,2)="k "),F2,"")
さて、そのほかに考慮すべきものがあるかな
    • good
    • 0

No.3です!


補足を読ませていただきました。

前回の数式をこの画面からB2セルにそのままコピー&ペーストしてオートフィルで下へコピーしてみてください。
(前回も書いたようにデータは2行目からとしています。)

たぶん希望に近い形になると思います。m(__)m
    • good
    • 0

こんばんは!



>ちなみに※には必ず数字が入り 都度数字は変わります。 変わらないのは Kとゆうアルファベットと Kのあとに半角スペースが入る
とゆうことです

の意味がよくわからないので・・・外していたらごめんなさい。

質問文だけですとNo.1さんの回答そのままだと思うのですが、
そんな簡単なコトではないのだと思いますのでこちらで勝手に判断しています。

F列のデータは数値+アルファベット+数値の組み合わせで色々な形のものが入り
その中で 3桁数値+K+半角スペース+5桁数値 の場合だけF列のデータをそのままB列に表示させたい!
ということだと解釈しての一例です。

データは2行目からあるものとします。
B2セルに
=IF(OR(ISERROR(LEFT(F2,3)*1),ISERROR(RIGHT(F2,6)*1),MID(F2,4,2)<>"K "),"",F2)
(Kの後に半角スペースがあります)
という数式を入れ、オートフィルで下へコピーではどうでしょうか?

以上、的外れなら読み流してくださいね。m(__)m

この回答への補足

みなさまご回答ありがとうございます。
質問の言葉が足りませんでした。すいません。
ちなみに F列には 日々3桁数値+K+半角スペース+5桁数値 の形以外の数字が入ることもあります。
例えば 460JJ3196 とか・・ そのようなさまざまな形が入る中で・・
3桁数値+K+半角スペース+5桁数値 の形が入ったら その形のものはセルBに反映させたいのです。
・・条件にあったものだけをBに反映させるような・・

補足日時:2010/12/21 23:30
    • good
    • 0

もうちょっと改善できるような気もしますが


こんな感じでしょうかね
=IF(LEN(F1)<>10,"",IF(MID(F1,4,2)<>"K ","",
IF(AND(ISNUMBER(LEFT(B1,3)*1),ISNUMBER(RIGHT(B1,5)*1)),B1,"")))
    • good
    • 0

そっくりそのまま反映させるだけなら


セルB1の計算式→=F1
セルB2の計算式→=F2
セルB3の計算式→=F3
と順番に設定すればいいのでは?
    • good
    • 0

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