人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルの関数を作って頂きたく思います。
○○-△△-□□-□□
というコードがあります。
最初のハイフンの後の、△△を下記のような要件で
抜き出しいのです。

最初のハイフンの直後の2文字が英字+数字→最初のハイフンの直後の1文字だけ
抜き出す
最初のハイフンの直後の1文字が数字→最初のハイフンの直後の3文字だけ抜き
出す
最初のハイフンの直後の2文字が英字→最初のハイフンの直後の2文字だけ
抜き出す

以上の要件で関数を作って頂けますでしょうか。
お忙しい所恐縮です。
一番良い回答にはイルカ賞を進呈させて頂きます。
よろしく、お願いいたします。


AA2-G10-180-D →G
AA2-3G1456-180-D →3G1
A52-GH456-180-D →GH

何か、要件上のお問い合わせ等ありましたら、
コメント欄にて、お聞きいただけると幸いです。

●質問者: martytaka
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:G10 イルカ賞 エクセル コメント欄 コード
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● きゃづみぃ
●34ポイント

=IF(ISERROR(MID(A1,FIND("-",A1)+1,1)*1),MID(A1,FIND("-",A1)+1,1) & IF(ISERROR(MID(A1,FIND("-",A1)+2,1)*1),MID(A1,FIND("-",A1)+2,1),""),MID(A1,FIND("-",A1)+1,3))

前のを ちょこちょこ 変えました。

1文字目が 数値の場合、3文字

1文字目が数値でない場合は その文字と

2文字目もチェック。2文字目が数値ならば 何も連結しない。

数値以外ならば その文字を 連結 というようにしています。

◎質問者からの返答

すげえ

ありがとうございました。


2 ● deflation
●33ポイント

ご質問の3つの条件に合わなかった場合はアスタリスク***を表示するようにしてあります。

=IF(AND(ISNUMBER(MATCH(MID(A1,FIND("-",A1)+1,1),{"a","z"},1)),ISNUMBER(MID(A1,FIND("-",A1)+2,1)+0)),MID(A1,FIND("-",A1)+1,1),IF(ISNUMBER(MID(A1,FIND("-",A1)+1,1)+0),MID(A1,FIND("-",A1)+1,3),IF(AND(ISNUMBER(MATCH(MID(A1,FIND("-",A1)+1,1),{"a","z"},1)),ISNUMBER(MATCH(MID(A1,FIND("-",A1)+2,1),{"a","z"},1))),MID(A1,FIND("-",A1)+1,2),"***")))

3 ● SALINGER
●33ポイント ベストアンサー

どうも英数字だけのようなので短くすると

=MID(A1,FIND("-",A1)+1,IF(ISNUMBER(MID(A1,FIND("-",A1)+1,1)*1),3,IF(ISNUMBER(MID(A1,FIND("-",A1)+2,1)*1),1,2)))

◎質問者からの返答

これもスゴイっす。

短くて最高です。

イルカ賞、迷います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ