- ベストアンサー
この関数を解説してほしいです。
二つのセル(H103,H104)に○、△、×の記号が入っています。 ○が良い、△が普通、×が悪い、という意味です。 この二つのセルの評価の悪い方を総合評価として別のセルに 返したくて、ネットで検索するとこのような関数が出てきました MID("○△×",MAX(INDEX(FIND(H103:H104,"○△×"),)),1) とりあえず入力してみて確認すると、欲しい評価がかえってきますが 関数の解読ができずにいます。 仕事で使うものなので、きちんと意味を理解した上で使用したいので すが、わかりません。 どなたかわかるかた解説して頂けますでしょうか? お願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
=FIND(H103,"○△×") =FIND(H104,"○△×") でH103とH104の結果を、○=1,△=2,□=3という数字に置き換えてます。 =INDEX(FIND(H103:H104,"○△×"),) で上記の結果を配列として取得しています。 =MAX(INDEX(FIND(H103:H104,"○△×"),)) で配列の大きい方の値を取得しています。 =MID("○△×",MAX(INDEX(FIND(H103:H104,"○△×"),)),1) 配列の大きい方の値の示す記号を取得しています。 この数式で、特殊な使い方をしてるのがINDEX関数です。 通常は、セル範囲の行と列の位置の値を返す関数ですが 今回は配列を取得するために使われてます。
その他の回答 (1)
- bunjii
- ベストアンサー率43% (3589/8249)
=MID("○△×",MAX(INDEX(FIND(H103:H104,"○△×"),)),1) {=MID("○△×",MAX(FIND(H103:H104,"○△×")),1)} 上記の2つの数式は等価です。 その内、下の数式はFIND(H103:H104,"○△×")の返り値を配列としなければなりませんので確定時にCtrlとShiftを押しながらEnterの打鍵が必要です。 上の式ではINDEX関数で配列の返り値をMAX関数に渡せますのでEnterキーの打鍵のみで確定できます。 従って、上の式のINDEX関数は論理的な処理に係わっていません。 >○が良い、△が普通、×が悪い、という意味です。 >この二つのセルの評価の悪い方を総合評価として別のセルに返したくて 提示の数式はFIND関数でH103とH104の記号が"○△×"の文字列の何番目にあるかを2個の数値に置き換えて最大(大きい方)の値をMAX関数で割り出しています。 MID関数は"○△×"の中からMAX関数で割り出した大きい方の値の位置の1文字(1つの記号)を取り出しています。 尚、H103とH104に何も入力が無いときはMAX(INDEX(FIND(H103:H104,"○△×"),))の返り値が1となりますのでMID関数では"○△×"の1番目の1文字として"○"が返ります。
お礼
早いお返事ありがとうございます! 勉強不足な私でもなんとなく意味合いが わかり、突破口になるご説明でした。 ありがとうございました!