[[20181224110312]] 『数値と文字列の大小比較し出力』(まさ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『数値と文字列の大小比較し出力』(まさ)

数値と文字列を含んだものの大小を比較して、小さいものを出力したいです。

例えば等級が大きいものから、特級、1級、2級、3級、不合格の順番であるとします。
列Aと列Bにこの等級があり、小さい方の等級を列Cに出力したいのですが、どうしたら
よいでしょうか?

※数字だけの等級ならIF関数ですんなり出来たのですが、文字の等級が絡むと、よく分かりません。
回答よろしくお願いいたします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 こんにちわ

 作業列を設けてはいかがですか?
 D列に等級を順番に並べ、判断するのが良いかと思います。

 1)D列を新たに作る
 2)C列にE1の数式を入れる
 3)必要範囲までコピー

     |[A]   |[B]   |[C]   |[D]   |[E]                                             
 [1] |特級  |特級  |特級  |特級  |=INDEX(D:D,MAX(MATCH(A1,D:D,0),MATCH(B1,D:D,0)))
 [2] |特級  |1級  |1級  |1級  |                                                
 [3] |特級  |2級  |2級  |2級  |                                                
 [4] |特級  |3級  |3級  |3級  |                                                
 [5] |特級  |不合格|不合格|不合格|                                                
 [6] |1級  |特級  |1級  |      |                                                
 [7] |1級  |1級  |1級  |      |                                                
 [8] |1級  |2級  |2級  |      |                                                
 [9] |1級  |3級  |3級  |      |                                                
 [10]|1級  |不合格|不合格|      |                                                
 [11]|2級  |特級  |2級  |      |                                                
 [12]|2級  |1級  |2級  |      |                                                
 [13]|2級  |2級  |2級  |      |                                                
 [14]|2級  |3級  |3級  |      |                                                
 [15]|2級  |不合格|不合格|      |                                                
 [16]|3級  |特級  |3級  |      |                                                
 [17]|3級  |1級  |3級  |      |                                                
 [18]|3級  |2級  |3級  |      |                                                
 [19]|3級  |3級  |3級  |      |                                                
 [20]|3級  |不合格|不合格|      |                                                
 [21]|不合格|特級  |不合格|      |                                                
 [22]|不合格|1級  |不合格|      |                                                
 [23]|不合格|2級  |不合格|      |                                                
 [24]|不合格|3級  |不合格|      |                                                
 [25]|不合格|不合格|不合格|      |                                                

 でいかがでしょう?
(稲葉) 2018/12/24(月) 11:28

 実際の運用とか制限は色々あるでしょうけど、
私だったら、表示形式で処理すると思います。
例えば
   実際の数字 
等級 = 0    表示形式 = 等級
1級  =  1     表示形式 = #級
2級  =  2     表示形式 = #級
3級  =  3     表示形式 = #級
不合格= 4    表示形式 = 不合格

 とすれば、普通の数式で出来ますよね?

 要は、見た目とExcelとでは違うということです

 最初に、変えるのがちょっと面倒かも?です。
(SoulMan) 2018/12/24(月) 11:30

 どこかに対応表作ってVLOOKUPで参照した数値で大小比較するのでも。。。^^;
特級    1
1級    2
2級    3
3級    4
不合格  5

(隠居じーさん) 2018/12/24(月) 11:42


 SoulManさん
 なるほど、勉強になりました。

 [=0]"特級";[<4]#"級";"不合格"
 こういうことですね。

 そうすればMAX関数のみで対応できますね。
(稲葉) 2018/12/24(月) 11:44

 F16 → G20 に 表があると仮定して C列に

 =IF(VLOOKUP($A1,$F$16:$G$20,2,0)<VLOOKUP($B1,$F$16:$G$20,2,0),B1,A1)

 ^^:
 でも、できなくはないみたいな。。。程度で。。。お聞き流しください
 割り付け番号が逆でしたらお許しを
 m(_ _)m
(隠居じーさん) 2018/12/24(月) 11:56

 いやいやぁ、稲葉さんに比べたら
私なんか全然ですからねぇ(笑)
恐縮です
これからもよろしくお願いします😃
(SoulMan) 2018/12/24(月) 12:03

皆さまいろいろな回答ありがとうございます!
大変勉強になります。
表示形式で処理する場合の手順、やり方をご教授いただけますか??
(まさ) 2018/12/24(月) 12:54

 今更ですが、今回の例でお遊び。

 =IF(SUBSTITUTE(B1,"特",0)>SUBSTITUTE(A1,"特",0),B1,A1)

 >例えば等級が

 この「例えば」を昇降順で設定すると楽かも。
(GobGob) 2018/12/24(月) 12:57

 殆ど稲葉さんの受け売りですけど、

 特級   → 0
 1級  → 1
 2級   → 2
 3級   → 3
 不合格 → 4
 と置換して

 表示形式を
[=0]"特級";[<4]#"級";"不合格"
として

 後は、数式でお好みにでしょうか?
(SoulMan) 2018/12/24(月) 13:06

 すでにSoulManさんから回答ございますが、参考サイトなども載せておきます。

 セルの書式設定【条件付き書式】
https://excel-master.net/cells-worksheets-control/conditional-format/

 置換
https://dekiru.net/article/12053/

 1)A:C列を選択する
 2)選択箇所のいずれかを右クリック>セルの書式設定
 3)「表示形式」タブ>ユーザー定義
 4)種類:(T)のボックスに [=0]"特級";[<4]#"級";"不合格" と入力
 5)OK
 6)選択状態のまま、Ctrl+H
 7)検索する文字列:特級
   置換後の文字列:0
   すべて置換
 8)7)を1級(1)〜不合格(4)まで繰り返す
 9)C1セルに =MAX(A1:B1) と入力し、必要な範囲のコピー
(稲葉) 2018/12/24(月) 13:07

非常に分かり安い説明ありがとうございます!
解決しました!
この等級通りだと表示形式で解決できたのですが、
特級のつぎに中級があり、1級、2級、3級、不合格の場合だと
表示形式の条件が2つ以上になり表示形式では無理でした。

中級が増えた場合の解決方法はありますでしょうか??
(まさ) 2018/12/24(月) 16:19


(稲葉) 2018/12/24(月) 11:28
 の投稿を参考にしてください。
(稲葉) 2018/12/24(月) 16:23

 表示形式のユーザー設定って

 条件1;条件2;その他;文字列

 数値3つ+文字列じゃなかったっけ? (うろ覚え)
(GobGob) 2018/12/24(月) 17:16

 GobGobさん
 その認識でよいと思います。

 特級 0[=0]
 1級   1[<4]
 2級   2[<4]
 3級   3[<4]
 不合格4その他

 特級 0[=0]
 中級  ?
 1級   1[<4]
 2級   2[<4]
 3級   3[<4]
 不合格4その他

 となった場合、表示形式の設定だけじゃ、すべてを数字に置き換えできない=簡単に比較できない
 という意味で「無理でした」になったのではないかと・・・

(稲葉) 2018/12/24(月) 17:38


 いざとなれば、ホーム→条件付き書式で表示形式を決めるという手もありますね。
 質問者さんはご自身で修正できないなら、条件分けは最初に全て
 提示していただければ、手間が省けるかと。
(コナミ) 2018/12/25(火) 07:54

説明不足で申し訳ありませんでした。
みなさまのご教授により解決することが出来ました!
Excelの知識をもっと深めていきたいと思います。
ありがとうございました!!
(まさ) 2018/12/25(火) 09:50

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.