• ベストアンサー

この関数を解説してほしいです。

二つのセル(H103,H104)に○、△、×の記号が入っています。 ○が良い、△が普通、×が悪い、という意味です。 この二つのセルの評価の悪い方を総合評価として別のセルに 返したくて、ネットで検索するとこのような関数が出てきました MID("○△×",MAX(INDEX(FIND(H103:H104,"○△×"),)),1) とりあえず入力してみて確認すると、欲しい評価がかえってきますが 関数の解読ができずにいます。 仕事で使うものなので、きちんと意味を理解した上で使用したいので すが、わかりません。 どなたかわかるかた解説して頂けますでしょうか? お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

=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関数です。 通常は、セル範囲の行と列の位置の値を返す関数ですが 今回は配列を取得するために使われてます。

hikaruhappa
質問者

お礼

早いお返事ありがとうございます! 勉強不足な私でもなんとなく意味合いが わかり、突破口になるご説明でした。 ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

=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文字として"○"が返ります。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • この関数の意味?

    =MAX(INDEX(LEN($A1:$A10),)) これで、A1:A10内の各セルの最大文字列数がわかるようです。 MAX、INDEX、LENの各関数の意味は分かりますが、なぜこれで範囲内の最大文字列数がわかるのか不思議です。 どなたか、お馬鹿なわたくしめにもわかるようにご教示いただけませんでしょうか?

  • 文字抽出関数で対象が2個あって困っています。

    検索でいろいろ調べたのですが、HITせず困り果てています。 仕事で、1つのセルに箱のサイズを入力しています。 別の用件で、サイズから体積を出すように指示があったので 計算する為に1つずつのセルに分けようと・・・ LEFT関数とFIND関数を使って横幅の数値は抜き出すことは出来たのですが、 縦幅と奥行きの数値が抽出できません。 セルには、800×1500×300 と入力してあります。 FIND関数やMID関数では1つの×は見つかるのですが 2つあるのでどうしても上手く抽出が出来ません。 どなたか、ご教授お願いします。 宜しくお願いします。

  • エクセル関数を教えてください

    以前こちらで回答を頂き、活用させていただいてます。 今回の質問についてもおねがいします。  ※今回の質問 セル内の4桁の数字(1から0までの数字を使用した4桁;例えば1249)を、別のセル内に、関数(1234567890をそれぞれ2458761390へ変換する関数)で変換された4桁(例えば2489)で表示したいのですがその際に使用する関数を教えてください。参考に前回の質問と回答を参照します。 よろしくお願いします。 ※前回の質問 セル内の3桁の数字(1から8までの数字を使用した3桁;例えば124)を、別のセル内に、関数(12345678をそれぞれ24587613へ変換する関数)で変換された3桁(例えば248)で表示したいのですが、その際に使用する関数を教えてください。エクセル上に表示する数字は1から8までのうちの3桁で、12345678をそれぞれ24587613へ変換したいです。 ※回答 =SUM(FIND(MID(A1,{1,2,3},1),71823654)*10^{2,1,0}) =SUM(MID("24587613",MID(A1,{1,2,3},1)*1,1)*10^{2,1,0})

  • この関数教えてください!!

    「セル番地A1からA20の範囲内で○が入力されている場合の○の数」を出すときの関数⇒『=COUNTIF(A1:A20,"○")』なのは分かるのですが、 1.「A1からA20とF1とF20の範囲内で○が入力されている場合の○の数」を出す場合の関数。 2.「sheet1のセル番地A1からA20とF1とF20の範囲内、sheet2のセル番地A1からA20とF1とF20の範囲内、sheet3のセル番地A1からA20とF1とF20の範囲内で○が入力されている場合の○の数」をsheet4に出す場合の関数。 を出す関数を教えていただけないでしょうか? 全然わからなくて困っています(T_T) また回答くださる皆さんはどうやって関数を覚えたんですか? 私も初歩的なことはわかるのですが上記のような状態になると全然わかりません(ーー;) 「:」が範囲を表す記号。 とか細かく載ってる本ってありますか? 「解かるexcel」「出来るexcel」など本当の初歩を書いてる本は全部わかるのですが、もう少し上のことを書いてるオススメ本を教えてくださると助かります。 他の人が作成した表の関数をみながら、自分の仕事に役立ててるのですが関数の意味がわからなくて悪戦苦闘してます。「ここが×▲○ならば空白にする」とか関数をみただけで意味を解かるようになりたいのですm(__)m

  • index・match・vlook関数を使う??

    H1セルの社員名の「田中よしこ」さんが、H2セルの現レベル「技術A」だった時に、A1:E8にある表の○がついている個所の社内研修をうける必要があります。 H1セルとH2セル内には関数が入っており、社員名が変わると、現レベルも“技術A~D”の表示が出るようになっています。 H5:H8セル内に、該当する必要研修の一覧を出すには、どのようにしたらよいのでしょうか? INDEX関数やVLOOK関数、MATCH関数について、サイトで色々見てみましたが良く分かりません。 どなたか、どうぞよろしくお願い致します!!

  • FIND関数の値が#VALUE!の場合の非表示

    エクセルで、セルの値に「virus」の文字列がある場合、「virus」と書く関数をFINDとMID関数で作ってみました。 =MID(C3,FIND("virus",C3),FIND("virus",C3)+4) この式だけだと、FINDの結果が無いときに、「#VALUE!」の文字が出てきます。この「#VALUE!」の文字を非表示にしたいと思い、IF文や条件付書式を試すのですが、「#VALUE!」は、長さ0の文字列””でもNULLでもないため、数式になりません。 良い方法をご存知の方教えてください。 よろしくお願いします。

  • この関数の解説をお願いします。

    お世話になります。下記関数の解説をお願い致します。 {=IF(ROW(F1)-1<COUNTIF($F$1:$F$3000,$U$2),INDEX($G$1:$G$3000,SMALL(IF($F$1:$F$3000=$U$2,ROW($F$1:$F$3000),9999,ROW(F1))),"")} U2に「ヨーロッパ」と入力するとF列のデータベースから「スペイン34、フランス33、イギリス44」など表示されるようになっています。 上記関数の解説をお願いします。 また{}を先頭につけている意味も教えて下さい。数式をいじろうとするとエラーがでます。 他人にいじらせないようにしてる気もします。 数式はコピペが出来なかったので写し間違えがあるかもしれません。 恐れ入りますがその際はながして頂ければと思います。 宜しくお願い致します。

  • EXCEL関数 MAX関数と複合的に・・・・

    EXCEL関数に関する質問です LAFT関数で抽出した数値群をMAX関数で最大値を導きたいのですが、「0」が帰ってきてしまいます。 1.1-1.1 1.6-2.5 2.4-4.7 と縦に3つ並んだセルのそれぞれ「-」より左の数値を、 関数 =LEFT(A1,FIND("-",A1)-1) で 1.1 1.6 2.4 と必要な数値を抽出し そのあとこの3つの数値の中の最大値を求めるために 関数 =MAX(B1:B3) を使ったのですが答えは「0」となります。 違う関数を使ってもOKですので、最大値の答えを得る方法を教えてください。

  • Excel関数を解説して教えて下さい。

    どなたか教えて下さい。 Excelで特定の列の中で一定の範囲が指定されているセルの任意のセルに値を入力し、その範囲の中に入力された最終行 (最下段) の値を取り出すために下記のようにExcelのLookup関数を使用して必要とする値を取り出しています。 =Lookup (10~10,特定の列の最上段のセル:特定の列の最下段のセル) これで間違いなく特定の列で定められた範囲に記載された値の最下段の値を取り出せますが、 10~10と設定する意味と、どうして最下段の値が取り出せるのか、この関数を解説して教えて下さい。 また、この場合の最上段の値を取り出す際の関数も教えて下さるようお願いいたします。

  • エクセル関数、文字列の抽出

    A1セルの中にたとえば「コーヒー、お茶、紅茶、コーラ、ビール、ワイン」と有るとします。B1にビールとワイン、C1にコーヒー、紅茶と抽出したいのですが、どなたかご存知の方ぜひ教えてください。MID関数とかFIND関数とかを試したのですがうまくいきませんでした。宜しくお願いします。

このQ&Aのポイント
  • エクセルで作成したカレンダーをはがき印刷する方法を紹介します。
  • カセット1にはがきをセットしても認識されない場合の対処法についても解説します。
  • キヤノン製品の場合、はがき印刷をする際には特別な設定が必要な場合があります。
回答を見る