[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『文字列の英字と数字を見分ける方法』(ゆか)
該当関数があるなら是非教えて下さい。
『1123456A2J010』
『123456B2_1234』
英字、数字、アンダーバーが混ざったもので、
10桁目が英字の時、
10桁目が数字の時で見分けたいのですが、何か良い関数はありますか?
< 使用 Excel:Excel2010、使用 OS:Windows10 >
Mid関数:省略
Value関数:文字列として与えられた数字を数字として認識する。
IsNumber関数:数字ならばTrueを、数字以外ならばFalseを返す。
です。
(高橋) 2019/03/15(金) 20:50
A列______________B列____C列
123456A2_J110____11111___○
123456A2_J120____11111___○
123456A2_J120____11112___×
123456A2_J230____22222___○
123456A2_J231____22222___○
123456A2_1230____33333___○
123456A2_1330____33333___○
上記のように
10桁目が英字だったときに、11桁目が同じ数字の時は
隣の列セルが同じ数字になった時は○を返し、同じ数字になっていない時は×を返します。
10桁目が数字の時には11桁目が違う数字でも、
隣の列セルが同じ数字の時は○を返し、同じ数字になっていない時は×を返します。
こんな場合分けを関数でも出来るのでしょうか。
(ゆか) 2019/03/15(金) 21:46
>上記のように >10桁目が英字だったときに、11桁目が同じ数字の時は 11桁目の数字はどこと比較するのでしょうか? 10桁目の英字と一致しないのは明らかですし、「隣の列セル」がB列だとしても、 >11桁目というからには一文字でしょうし、それはどこのことなのでしょうか?
(チオチモリン) 2019/03/15(金) 22:34
11桁目で比較するのは自身1つ下のセルの11桁目です。
10桁目がJで11桁目が1
下の行で10桁目がJで11桁目が1だったら、
隣のセルの中身が同じか比較する
といったことをやりたいです。
(ゆか) 2019/03/15(金) 22:52
>隣のセルの中身が同じか比較する というのも >1つ下のセル ですよね。 そうすると ↓ のようになると思いますが、C列の表示と一致しません。
10桁目 11桁目 B列 123456A2_J110 11111 ○ J 英字 1 同数字 同数字 123456A2_J120 11111 ○ J 英字 1 同数字 異 123456A2_J120 11112 × J 英字 1 異 異 123456A2_J230 22222 ○ J 英字 2 同数字 同数字 123456A2_J231 22222 ○ J 英字 2 同数字 異 123456A2_1230 33333 ○ 1 数字 2 異 同数字 123456A2_1330 33333 ○ 1 数字 3 ? ?
cas 10桁目 11桁目 B列 1 英字 同数字 同数字 → ○ 2 〃 〃 異 → × 3 〃 異 → ? 4 〃 〃 → ? 5 数字 同数字 → ○ 6 〃 異 → ×
case 3 の場合の表示もわかりませんし、 下の行と比較するなら、最終行は判定できないと思いますけど? (チオチモリン) 2019/03/16(土) 09:34
大変分かりづらいもので申し訳ありません。
左の123456A2は商品名、11111等の列は商品の場所を表しています。
case3の場合は11桁目が違うので、case1と2とは商品が異なります。
case1が同じもので同じ場所にあることを示し、2が同じ商品だけど間違った場所にあることを示し、
case3が上の商品とは違う商品を示していて、場所については下のcase4と同じかを見ています。
case5と6は数字の場合です。
IF関数で表せるのが理想ですが、マクロでもやり方があれば是非教えて欲しいです。
(ゆか) 2019/03/16(土) 16:35
10桁目が英字だったときに、11桁目が同じ数字でない時の結果表示は何かということなんですけど?
_____ _______________ ______ _____ |_____|_______A_______|___B__|__C__| |___3_|123456A2_J110 11111 ○ |___4_|123456A2_J120 11111 ○ |___5_|123456A2_J120 11112 × |___6_|123456A2_J230 22222 ○ |___7_|123456A2_J231 22222 ○ |___8_|123456A2_1230 33333 ○ |___9_|123456A2_1330 33333 ○
4行目は case2に相当するので×ではないかと思いますし
5行目は case3に相当すると思いますが ○なのか×なのか説明がないように思います。
ので、ほかの方からもレスがつかないのではないかと思います。
7行目をみると、○になっていますが、10桁目が異なりますので、10桁目も次行との比較もあるように思いますし
9行目が○なのも?です。
ルールが明確で無い以上、数式にしろマクロにしろ組み立てようがないです。
(チオチモリン) 2019/03/16(土) 18:31
出来上がりから逆算すると・・
上行または下行のいずれかと合致すれば、「〇」なのじゃないですかねぇ。
C2セル =IF(IF(IF(B1<>B2,0,IF(COUNT(-MID($A1,10,1))=COUNT(-MID($A2,10,1)),IF(COUNT(-MID($A1,10,1)),1,IF(MID($A1,11,1)=MID($A2,G$1,1),1,0)),0)),1,IF(B2<>B3,0,IF(COUNT(-MID($A2,10,1))=COUNT(-MID($A3,10,1)),IF(COUNT(-MID($A2,10,1)),1,IF(MID($A2,11,1)=MID($A3,G$1,1),1,0)),0))),"○","×")
下にコピー
<結果図> 行 ______A______ __B__ __C__ 1 No Val Judge 2 123456A2_J110 11111 ○ 3 123456A2_J120 11111 ○ 4 123456A2_J120 11112 × 5 123456A2_J230 22222 ○ 6 123456A2_J231 22222 ○ 7 123456A2_1230 33333 ○ 8 123456A2_1330 33333 ○
(半平太) 2019/03/16(土) 21:34
半平太さん、
そうです。上のセルと下のセルを比べていずれかと条件合致する時は○を返したいです。
また大変申し訳ないのですが、もう一つ条件があります。
同じNoが無かった時は◎を返したいです。
同じNoがあり、場所が同じ場合は○を、
同じNoがあり、場所が違う場合は×を、
同じNoがない時は◎を返したいです。
9___123456A2_2330_____44444___◎
本当に申し訳ありません。。
(ゆか) 2019/03/16(土) 22:36
>もう一つ条件があります。 >同じNoが無かった時は◎を返したいです。
>同じNoがあり、場所が同じ場合は○を、 >同じNoがあり、場所が違う場合は×を、 >同じNoがない時は◎を返したいです。
同じNoとは「A列内で見て」と言うことですか?
そうだとすると、 それだけで「もう一つの条件」ですよね?
説明の後段3行が、いままでと同じ条件なのか分からないんですが・・ 「場所が同じ」の「場所」とは何を指しているんですか?(連続行?、文字位置?)
(半平太) 2019/03/17(日) 07:20
言い方が悪くて本当に申し訳ないです。
場所とは「Val」のことを指していました。
行 ______A______ __B__ __C__ 1 No Val Judge 2 123456A2_J110 11111 ○ 3 123456A2_J120 11111 ○ 4 123456A2_J120 11112 × 5 123456A2_J230 22222 ○ 6 123456A2_J231 22222 ○ 7 123456A2_1230 33333 ○ 8 123456A2_1330 33333 ○ 9 123456A2_2000 44444 ◎
【2と3について】
・2と3行目は10桁目が同じ英字「J」で11桁目が同じ数字「1」ということで同じ商品(No条件Ok)を意味しています。さらに商品置き場が「11111」で同じ場所(Val条件OK)にあるということで「〇」を返しています。
(2は下と、3は上の行とNo,条件OKで、Val条件OkなのでJudgeは〇)
【4について】
・4は3行目と4行目で10桁目が同じ英字「J」で11桁目が同じ数字「1」ということで同じ商品(No条件OK)を意味しています。しかし商品置き場が「「11112」で異なる場所(Val条件NG)にあるので「×」を返します。
4行目と5行目は10桁目が同じ英字「J」で11桁目が違う数字「1と2」なので、違う商品(No,条件NG)を意味します。
(4は上の行3とNo,条件OKだが、Val条件NGなので、Judgeは×)
【5について】
・5は4行目と5行目は10桁目が同じ英字「J」で11桁目が違う数字「1と2」なので、違う商品(No,条件NG)を意味します。
5行目と6行目で10桁目が同じ英字「J」で11桁目が同じ数字「2」なので、同じ商品(No条件Ok)を意味しています。さらに商品置き場が「22222」で同じ場所(Val条件OK)にあるということで「〇」を返しています。
(5は下の行とNo,条件OKで、Val条件OkなのでJudgeは〇)
【6について】
・5行目と6行目で10桁目が同じ英字「J」で11桁目が同じ数字「2」なので、同じ商品(No条件Ok)を意味しています。さらに商品置き場が「22222」で同じ場所(Val条件OK)にあるということで「〇」を返しています。
・6と7行目は10桁目が「Jと1」で違うので違う商品(No,条件NG)
(6は上の行とNo,条件OKで、Val条件OkなのでJudgeは〇)
【7について】
・6と7行目は10桁目が「Jと1」で違うので違う商品(No,条件NG)
・7行目と8行目は10桁目が同じ数字「1」なので同じ商品(No条件Ok)を意味しています。さらに商品置き場が「33333」で同じ場所(Val条件OK)にあるということで「〇」を返しています。
(7は下の行とNo,条件OKで、Val条件OkなのでJudgeは〇)
【8について】
・7行目と8行目は10桁目が同じ数字「1」なので同じ商品(No条件Ok)を意味しています。さらに商品置き場が「33333」で同じ場所(Val条件OK)にあるということで「〇」を返しています。
・8と9は10桁目が違う数字「1と2」で違う商品(No,条件NG)
(8は8上の行とNo,条件OKで、Val条件OkなのでJudgeは〇)
【9について】
・8と9は10桁目が違う数字「1と2」で違う商品(No,条件NG)・8と9は10桁目が違う数字「1と2」で違う商品(No,条件NG)
10行目がないので上下ともNo,条件NGで同じ商品がないので、Judgeは◎と
この説明で伝わるでしょうか。
また、私からも質問なのですが、
C2セル =IF(IF(IF(B1<>B2,0,IF(COUNT(-MID($A1,10,1))=COUNT(-MID($A2,10,1)),IF(COUNT(-MID($A1,10,1)),1,IF(MID($A1,11,1)=MID($A2,G$1,1),1,0)),0)),1,IF(B2<>B3,0,IF(COUNT(-MID($A2,10,1))=COUNT(-MID($A3,10,1)),IF(COUNT(-MID($A2,10,1)),1,IF(MID($A2,11,1)=MID($A3,G$1,1),1,0)),0))),"○","×")
G$1が出てくるんですが、こちらは11のことですか?
(ゆか) 2019/03/17(日) 09:22
>G$1が出てくるんですが、こちらは11のことですか?
すみません、11のことです。m(__)m
詳しくご説明頂きましたが、 この条件はまだ生きていますよね? ↓ >10桁目が英字だったときに、11桁目が同じ数字の時は >隣の列セルが同じ数字になった時は○を返し、同じ数字になっていない時は×を返します。
>10桁目が数字の時には11桁目が違う数字でも、 >隣の列セルが同じ数字の時は○を返し、同じ数字になっていない時は×を返します。
生きているとして・・
「場合分け」が複雑なので、作業列を使います。(一つの数式にまとめたい時は、そちらでやってください)
(1) E2セル =MID(A2,10,1) (2) F2セル =MID(A2,11,1) (3) G2セル =AND(E2=E3,OR(COUNT(-E2),F2=F3)) (4) H2セル =AND(E1=E2,OR(COUNT(-E1),F1=F2)) (5) I2セル =B2=B3 (6) J2セル =B1=B2
(7) C2セル =IF(OR(G2,H2),IF(OR(AND(G2,I2),AND(H2,J2)),"○","×"),"◎")
<結果図> 行 ______A______ ___B___ __C__ _D_ ___E___ ___F___ _______G_______ _______H_______ _______I_______ _______J_______ 1 No 置き場 Judge 10桁目 11桁目 下と同一商品か 上と同一商品か 下と同一場所か 上と同一場所か 2 123456A2_J110 11111 ○ J 1 TRUE FALSE TRUE FALSE 3 123456A2_J120 11111 ○ J 1 TRUE TRUE FALSE TRUE 4 123456A2_J120 11112 × J 1 FALSE TRUE FALSE FALSE 5 123456A2_J230 22222 ○ J 2 TRUE FALSE TRUE FALSE 6 123456A2_J231 22222 ○ J 2 FALSE TRUE FALSE TRUE 7 123456A2_1230 33333 ○ 1 2 TRUE FALSE TRUE FALSE 8 123456A2_1330 33333 ○ 1 3 FALSE TRUE FALSE TRUE 9 123456A2_2000 44444 ◎ 2 0 FALSE FALSE FALSE FALSE
(半平太) 2019/03/17(日) 10:36
返信遅くなってごめんなさい。
ありがとうございました‼‼
今日私も確認して、出来ました‼凄いです。作業列を作って頂いたことで私にも理解出来ました。
説明もろくに出来ない中、根気強く教えて頂きありがとうございました。本当に助かりました。
(ゆか) 2019/03/18(月) 22:45
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.