• ベストアンサー

エクセル関数で

shiotan99の回答

  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.5

こんにちは~ 同じ行に○は複数あるんですよね。 ○が複数ある場合、No.4さんの数式だとうまくいかないと思うのですが‥ ( 右端ではなく、左端の○を検索しますから ) それと、同じ行に △とか×も混在していますが、○だけが対象なのでしょうか? 要は↓が不明です。 ・記号が○とか△に関係なく、いちばん右端の記号を検索するのですか? それとも、△とか×は無視して、いちばん右の○を検索するのですか? ・記号はすべて手入力ですか、それとも数式を使って表示しているのですか? ********** 日付データが B3:K3、記号が B4:K4の範囲内にあるとします。 下の中から該当する数式を A4セルに入れてみてください。 ( コピー&ペーストしてください ) ********** ■ ○とか△に関係なく、いちばん右端の記号の場合 ◆記号は手入力 =INDEX($B$3:$K$3,,MATCH("*",B4:K4,-1)) または、記号が1つも入力されていない場合のエラーを非表示にするなら =IF(COUNTA(B4:K4),INDEX($B$3:$K$3,,MATCH("*",B4:K4,-1)),"") ◆記号は数式を使って表示させている( 空白は、数式の"" を使っている場合 ) =INDEX($B$3:$K$3,,MAX(INDEX((LEN(B4:K4)>0)*COLUMN(B3:K3)-1,0))) または、記号が1つも表示されていない場合のエラーを非表示にするなら =IF(COUNTIF(B4:K4,"*?"),INDEX($B$3:$K$3,,MAX(INDEX((LEN(B4:K4)>0)*COLUMN(B4:K4)-1,0))),"") ★ COLUMN(B2:K2)-1 の -1は、データが B列から始まっている場合です。C列から始まっていれば -2、D列から始まっていれば-3、‥のようにしてください。 ********** ■ △や×は無視して、いちばん右の○の場合 =IF(COUNTIF(B4:K4,"○"),INDEX($B$3:$K$3,,MAX(IF(B4:K4="○",COLUMN(B4:K4)-1,""))),"") と入れて、配列数式ですので Ctrl+Shiftキーを押しながら、Enterで確定してください。 数式が{ }で囲まれたらOK ★ 囲まれなかったら NGですので、F2キーを押して編集モードにしてから、もう一度Ctrl+Shiftキーを押しながら、Enterで確定してください。 ( 配列数式はこの式だけで、これ以外はフツーに Enterで確定です ) ★ COLUMN(B2:K2)-1 の -1は、データが B列から始まっている場合です。C列から始まっていれば -2、D列から始まっていれば-3、‥のようにしてください。 いずれの数式も、必要なだけそのまま下にフィルコピーすればOKです。 数式を入れたセルの表示形式は、《日付》にしてください。 範囲は、実際の表に合わせて変更してください。 補足される場合は、できるだけ具体的にお願いします。 データがどの列からどの列まであるのか、など。 また、上記数式でうまくいかなかった場合、どの数式を入力したのか、そのままコピーして提示してください。

ryu1961
質問者

補足

どうもありがとうございました。△や×は無視して、いちばん右の○の場合でしたので、そのまま試してみましたところうまくいきました。向学のために簡単に解説をいただけないでしょうか?よろしくお願い致します。

関連するQ&A

  • エクセルの関数(抽出)について

      1  2   3   4  5 A   あ   ko   ▲ ■  B   か   sa C   もへ  we D   あ   ty E   てろ   lii F   ぎ   loer G   か   ttg H   あ   rer 上のような表があったときに、A4のセル(▲)に「あ」と入れると、 A5のセル(■)に『rer』と入るような関数(又はそれに代わる方法)を ご教示ください。 やりたいこと: 2列目の中に、▲と完全一致する値(又は文字列。以下同じ。)が存在するとき、 同じ列の3列目の値を返したい。 ただし、2列目には完全一致する値が何度も登場する可能性があり、 2列目に▲と完全一致する値が複数存在する場合は、その内一番下の行 のものを選び、同じ行の3列目の値を■に返したい。 条件: ・可能であれば、2列目をキーにした並び替えなどは行いたくない。 ・現状のデータは、3000行程度のデータ量であるが、今後じょじょに増えていく。 以上です。 説明が明瞭でなく、イメージがお伝えできていないかも知れませんが、 どうかご教示頂きたく、なにとぞよろしくお願い致します。

  • エクセルVBAのコードの書き方を教えてください

    エクセルVBAの初心者です。 下記①-⑲のようなコードを書きたいのですが、どなたかお分かりになる方がいましたら、 ご教示いただけますと幸いです。 ① オートフィルターでシート[list]のA列に"●"がある特定の行だけを以下作業の対象にしたい ② ①で特定した行のE列セルの値を、シート[output]のB9セルにコピペする ③ ①で特定した行のF列セルの値を、シート[output]のB12セルにコピペする ④ ①で特定した行のG列セルの値を、シート[output]のB15セルにコピペする ⑤ ①で特定した行のH列セルの値を、シート[output]のB18セルにコピペする ⑥ ①で特定した行のI列セルの値を、シート[output]のB21セルにコピペする ⑦ ①で特定した行のJ列セルの値を、シート[output]のB24セルにコピペする ⑧ ①で特定した行のK列セルの値を、シート[output]のB27セルにコピペする ⑨ ①で特定した行のL列セルの値を、シート[output]のB30セルにコピペする ⑩ ①で特定した行のM列セルの値を、シート[output]のB33セルにコピペする ⑪ ①で特定した行のN列セルの値を、シート[output]のB36セルにコピペする ⑫ ①で特定した行のO列セルの値を、シート[output]のB39セルにコピペする ⑬ ①で特定した行のP列セルの値を、シート[output]のB42セルにコピペする ⑭ ①で特定した行のQ列セルの値を、シート[output]のB45セルにコピペする ⑮ ①で特定した行のR列セルの値を、シート[output]のB48セルにコピペする ⑯ ①で特定した行のS列セルの値を、シート[output]のB51セルにコピペする ⑰ ①で特定した行のT列セルの値を、シート[output]のB54セルにコピペする ⑱ ①で特定した行のU列セルの値を、シート[output]のB57セルにコピペする ⑲ シート[output]のB3:B59をテキストファイルを呼び出してコピペする ※このとき、上記②-⑱で記述したB9からB57のセルには改行が含まれる場合が  あるため、テキストファイルへのペースト時に""が表示されてしまうが、  もし可能であれば、この""が表示されないようにしたい。

  • エクセル関数について

    エクセル関数について質問です。 簡単に説明すると特定のセルに特定の数値を入力するとその行の別のセルの数値を別のセルに表示させたい。 たとえば     A      B       C 1  100            2  200      1      100 3  300      1      300 4  400 5  合計            400 上記の様になっていた場合 A列は定数で固定です。B列のセルに1と入力(1でなくてもよい)した行のA列の数値を Cに表示したいのですが、 C列にどの様な関数を使ったらいいんでしょうか?宜しくお願い致します。

  • エクセルの関数についての質問です。

    エクセルの関数についての質問です。 画像のように横に1、2、3…(100くらいまで続きます)縦にA、B、Cの行があります(端が切れちゃってますが、A2にA、A3にB、A4にCです) B2から横の列にはそれぞれ☆や○等いろいろな記号が入ります。 そしてこの記号には特定の値が決められています。☆=10、○=5、△=3 B3から横には、B2の記号にそった数字が入ります。(10やら5等) そこまではIF関数で式を作ったのですが、ここからが問題でして… B2から横に1から100まで、記号(B3から横に数字)を入力していった時のB3列の合計が仮に212とします。 合計した値が200を越えてしまった場合、B4からの列に数字を入力するようにしたいのです。 (200ギリギリ前くらいまではB3の列で、それを越える時からB4の列に入力します。その際、B3列に入る数字は消えます) なおかつ可能であれば、このB4からの列に入るのはランダムにできるといいのですが…(画像では○の数字を下ろしていますが、☆の数字をおろしても良いし、△の数字をおろしても良い) ●計算式によって入力された数字(B3列)を特定の数字を越えた場合、別の枠(B4列)に移す関数はありますでしょうか?? ●また、それをランダム(関数)で選ぶことは可能でしょうか?? よろしくお願いします。

  • エクセルの関数を教えて下さい。

    シート1の38列目のセルに、○(丸)印が入力されていて、シート2のセルに、シート1のそのセルが○印なら「合格」、空白なら「空白」と表示させたいです。 ちなみにシート2の他のセルには =VLOOKUP($A$10,"シート1の範囲",56,FALSE)と入力していて、そこはそれでOKなので、同じくVLOOKUPの検査値はA10のままで、○印なら「合格」、空白なら「空白」と表示させるやり方を教えて下さい。 シート1とシート2の行に番号をふって、その番号から検索できるようにしたいです。 分かりにくい文章で申し訳ありません。 どうぞ、よろしくお願い致します。

  • エクセルの関数についての質問です

    エクセルの関数についての質問です 独学でエクセルを勉強しておりますが以下のような表の中から該当する値を返すことは可能でしょうか。 方法はどのようなものでもアドバイスをいただければトライしてみようと思います。 以下のような元データの中から、行の条件と列の条件を満たすセルに表示されている値(%)を 表示させる関数。そもそも関数での解決は不可能かもしれませんが、もし方法があれば ご教示お願いします。       0000~1000  1001~2000  2001~3000 000~100    5%      5%      4% 101~200    4%      4%      3% 201~300    3%      2%      1% 行と列の値を入力するとその交差した値が表示させたい。 例)行の検索したい数値を110、列の検索したい数値を1200と指定した場合、表示させたい数値は"4%"。 ぜひぜひよろしくお願いいたします。

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

    例えば、A列の1行目からA列の100行目まで社員の名前が重複せずに100人分あります。B列1行目からW列100行目までにランダムに数字が入っています。数字は重複していません。この、数字(例えば5という数字)のセルの場所を特定したいのですが、関数でこの場所を特定する方法を教えていただけませんか? 結果的に必要なのは、5という数字が何行目にあるかだけですので、それだけ分かれば良いのですが。良い方法が見つかりません。 今回はマクロは一切使わない条件です。よろしくお願いいたします。

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

    日時が一致した列の指定したセルの値を 別セルに表示   A    B   C   D 1 7/1 7/2 7/3 7/4 2 256  264 273  286 3   8   7   13 4 5 6 7/3 7 ? A6(日付)と一致した列の3行目をA7に表示させる関数を教えてください。 勉強不足ですみませんがよろしくお願いします。

  • EXCELの関数?について

    セルA1の値と等しい値がB列のセルにあり,セルA2にA1と等しいB列のセルと同じ行にあるC列の値を表示させたいのですが可能でしょうか? わかりにくい説明で申し訳有りませんが・・ 例:下記の場合 A1の内容とB3の内容が等しいため,A2にC3の内容”Z”を表示させたいのですが,A2はどのように設定すればいいのでしょう?  |  A  |  B  |  C  | ---------------------- 1| AAA | AA  |  X  | 2|     | A   |  Y  | 3|     | AAA |  Z  | 4|     |     |     |

  • エクセルでこんな関数は?

    A2:B30に表1があります。 使用者がこのシートに入力するさまざまな条件により、A列がTRUEかFALSEになります。 表1ではA列がTRUEのとき、B列に文字列が表示されるようにB列に式が入れてあります。 A列がすべてTRUEになることはありません。したがってB列の文字列の表示は飛び飛びというか歯抜けのような表になっています。 このB列に表示された文字列を、表2(別シート)に上から歯抜けが無いように2行目以降に順番で表示させたいのです。 考えたのはどこかのセルに =B2&B3&B4&~略~&B30 として文字列をまとめ、(文字列の区切りがわかるように、それぞれの文字列の頭に※印をつけておく)、さらにこれを※印を目標に分割する関数はないか?ということなのですがわかりません。 あるいは他の方法でもかまいません。ただし、表1をおもてに出したくないので表1をソートするやりかたは使えません。 どうかお教えください。お願いします。