[[20140908114339]] 『指定範囲内で最大値の数字(文字列)を参照したい』(キリカ) ページの最後に飛ぶ

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

 

『指定範囲内で最大値の数字(文字列)を参照したい』(キリカ)

A1セルからA5セルにはIF関数を使用して表示した数字が入っています。
数字は0から12と99、そして00の15種類があります。
A1セルからA5セルの中で最も大きい数字をB1セルに表示させたいのですが、00を表示する為、数字は数値ではなく文字列として表示させています。
数値であればMAX関数で対応するところですが、文字列での比較方法がわかりません。
なお、数字の大小は
00 < 0 < 1 < 2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < 10 < 11 < 12 < 99
として表示させたいです。
文字列での比較方法はありますでしょうか。

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


 普通に。

 =IF(COUNTBLANK(A1:A5)=5,"",IF(COUNTBLANK(A1:A5)+COUNTIF(A1:A5,"*00")=5,"00",MAX(A1:A5)))
 
(GobGob) 2014/09/08(月) 12:21

 修正。

 =IF(COUNTBLANK(A1:A5)=5,"",IF(COUNTBLANK(A1:A5)+COUNTIF(A1:A5,"*00")=5,"00",MAX(INDEX(A1:A5*1,))))
 
(GobGob) 2014/09/08(月) 12:21

ありがとうございます。
やりたいことはできたのですが、式でわからないところがあり教えてください。

"*00"ですが、"00"ではできないのが何故かよくわかりません。
ワイルドカードとして使っているのはわかるんですが、"00"の前に付く文字は無いので単純に"00"で良いように思いましたが。実際にワイルドカードを外すと"0"しかない時も"00"になってしまいました。

また、INDEX関数の*1もどういう意味があるのかわかりません。検索してみたのですが答えらしき物が見つけられませんでした。

お手数をお掛けしますが、後学のため教えてください。

(キリカ) 2014/09/08(月) 13:18


 別案で。

 表示だけの問題なら、A1:A5 と関数のセルを選んで、セルの書式のユーザ設定で
 [=-1]"00"
 として、00 を表示したいときは -1 を入力。他は数値に戻して関数は

 =MAX(A1:A5)

(Mook) 2014/09/08(月) 13:23


 ⚫︎ワイルドカードにしないと00を0(数値含む)と認識するから。
 ⚫︎A列00以外も文字列ならMAX関数機能しないから*1して数値化。
   INDEXにしてるのは配列数式になるからCTRL+SHIFT+ENTER回避。

(GobGob) 2014/09/08(月) 19:42


 補足。

 ワイルドカードをつけると『○○を含む』みたいに
 文字列として処理するんですな。

(GobGob) 2014/09/08(月) 19:50


コメント返信:

[ 一覧(最新更新順) ]


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