• ベストアンサー

エクセルで最終値の検索

宜しくお願いします。 エクセルで下記のような表を作っています。   A   B   C   D    E    F   G    H   状況       3月  4月  5月  6月  7月  8月  9月 1     20%  50%  完成 2          10%  50%   ボツ 3          15%       50%    70% 表より、 1番の最終の値「完成」 2番の最終の値「ボツ」 3番の最終の値「70%」 を、A列の「状況」列に常に最終値を検索して 表示したいのですが、 どうすればよういですか?

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

  • ベストアンサー
  • Caryo_t
  • ベストアンサー率45% (112/246)
回答No.1

原始的な方法では(出したいセルがA3にあるとした場合)、 =IF(H3<>"",H3,IF(G3<>"",G3,IF(F3<>"",F3,IF(E3<>"",E3,IF(D3<>"",D3,IF(C3<>"",C3,IF(B3<>"",B3,""))))))) として、9月のデータから順に「有るか無いか」を調べていけば お望みの結果が出ます。

yudetako
質問者

お礼

ありがとうございます。 原始的なおかげで計算式が理解できました(^^) やっぱりIF関数が間違いないですね。

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

その他の回答 (4)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.5

NO2です。 >”#VALUE!”の文字の消す方法を教えてもらえないですか? ⇒次の方法で如何でしょうか。 =IF(COUNTA($B3:$H3),INDEX($B3:$H3,MAX(IF(COUNTIF($B3:$H3,"*"),MATCH("",$B3:$H3,-1)),IF(COUNT($B3:$H3),MATCH(MAX($B3:$H3)+1,$B3:$H3,1)))),"")

yudetako
質問者

お礼

ありがとうございました! 問題解決です。 助かりました。

全文を見る
すると、全ての回答が全文表示されます。
  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.4

シートの構成が、  1行目に "状況"   2行目に 3月  4月  5月  6月  7月  8月  9月  3行目のB列以降から実データ という構成になっていると仮定しています。 以下のようなマクロを実行すれば、各行のA3、A4,A5,・・・セルに 各行の最右の内容が設定されます。 Sub Macro() Range("a3").Select spRow = 3 For i = 1 To 10 ActiveCell.Offset(0, 100).Select Selection.End(xlToLeft).Select Selection.Copy Range("A" & spRow).Select ActiveSheet.Paste ActiveCell.Offset(1, 0).Select spRow = spRow + 1 Next Application.CutCopyMode = False End Sub

yudetako
質問者

お礼

ありがとうございます。 さすがのマクロでセルもスッキリです! 関数にするか、マクロにするか決めて行きたいと思います。 皆様ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

A:Hのセルの書式設定を [=1]"完成";[=0]"ボツ";0% としているなら A3=INDEX($B3:$H3,1,MATCH(MAX($B3:$H3)+1,$B3:$H3,1)) ※完成にしたい時は100%を、ボツにしたいときは0%を入力してください。

yudetako
質問者

お礼

ありがとうございます。 書式設定をするとスマートな式でいけるのですね。 今回はランダムな数字なので少し難しいみたいです。 こういうやり方もあるのかと驚きです。 勉強になりました!

全文を見る
すると、全ての回答が全文表示されます。
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 =INDEX($B3:$H3,MAX(IF(COUNTIF($B3:$H3,"*"),MATCH("",$B3:$H3,-1)),IF(COUNT($B3:$H3),MATCH(MAX($B3:$H3)+1,$B3:$H3,1))))

yudetako
質問者

お礼

ありがとうございます! おぉ!なんか複雑! 試しました。 行によって値の入らないのもあるのですが、 ”#VALUE!”の文字の消す方法を教えてもらえないですか?

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

関連するQ&A

  • Excel マクロでの検索

    大量のデータ(約40000件)をDB(約3000件)から検索し該当する値を返す作業をしています。 マクロを今日初めて組んだのですが、うまく行きません。 だれか教えてください。 例:※同Sheet内での作業です。 DB(列1・2)     データ(列3・4)※ランダムに並んでます。   1  2      3     4 1 a  A      c   Cを返したい(cを1列より検索し2列の値を返す) 2 b  B      e   Eを返したい(eを1列より検索し2列の値を返す) 3 c  C      d   Dを返したい(dを1列より検索し2列の値を返す) 4 d  D      d   Dを返したい(dを1列より検索し2列の値を返す) 5 e  E      h   Hを返したい(hを1列より検索し2列の値を返す) 6 f  F      @   @が1列に無い場合は空欄でよい ・  ・ ・      ・     ・ ・  ・ ・      ・     ・ 今日、私は4列のワードを変数とし、1列より検索する方法をとりました。(Loopで組みました) Find.で組むと、不要なワードまで検索してしまう状況です。 例:aaaaで検索→aaaaaaがhitしてしまう。 同一ワードで検索する方法も試したのですが、エラーが出てしまいます。 自分なりにFindNextなども試してみましたが、無限Loopになってしまいます。 Loopを使わなくてもいいので、方法を教えてください。 本来自力で調べるべきですが、急ぎの仕事な為、ご協力ねがいます。

  • エクセルで表の検索方法を教えてください。

    エクセルで表の検索方法を教えてください。 添付画像のように A1:D16 に表があります。 A18:D18 に1行のデータがあります。 このデータが、表の何番目にあたるのか検索する方法を知りたいです。 すぐに思いつくのは、作業列を1列用意し、そこにA列からD列の各行の値を結合して表示させ、作業列の値で検索することですが、それ以外の関数での方法を知りたいです。

  • EXCELの関数について

    いつもお世話になってます。ありがとうございます。 excelの関数についてお聞きしたいことがあり質問しました。      A列 B列 C列 …        a   c   e  g  i 1行 2日 ○  △ □ ● ■ となっているデータを      A列 B列 C列 …      a   b   c  d   e  f  g  h  i … 1行 1日 2行 2日 3行 3日 こんなシートに自動的に打ち込めるようにしたいのです。      A列 B列 C列 …      a   b   c  d   e  f  g  h  i … 1行 1日 2行 2日○    △    □    ●    ■ 3行 3日 が完成図イメージです。 一番上の色々なデータから表を完成させたいのですがどうすればできるでしょうか。 vlookupやhlookupでは一行ずつの打ち直しが必要になってしまいます。 よろしくお願いします。

  • エクセル2010 検索と抽出

    エクセル2010を 使っています。 以前教えていただいた、数式を改変して応用したいのですが、うまくいきません。 やりたいのは画像の処理で、 B83の値を E列から探しその関連セルであるF列、G列の値を、C列D列に抜き出すという作業です。 改変した数式は以下の様なもので、C83に入力後、オートフィルで使おうと思っていました。 詳しい方、教えていただけませんか? =IFERROR(INDEX(F83:F162,SMALL(IF(E83:E162=B83,ROW(E83:E162)),ROW(A1))),"") (配列数式) 3キー打鍵 よろしくお願い致します。

  • EXCEL

    A-B-C-D-E-F-G 1-A-W-A-1-B- 2-B-A-N-2-C- 3-C-K-A-3-B- 4-D-A-I-4-E- 5-E-R-X-5-A- 例えば,エクセルで表のようになっている場合に, 列AにF1の値(表の場合は文字B)で検索をかけ,検索に該当した行(表の場合では行2)の列Dの値をG1に表示する方法はあるでしょうか?? 簡単に言うと,列Gに自動的にFに対応するDの数値を入力したいのです.自動的に列Gを下の表のようにすることは可能でしょうか? A-B-C-D-E-F-G 1-A-W-A-1-B-2 2-B-A-N-2-C-3 3-C-K-A-3-B-2 4-D-A-I-4-E-5 5-E-R-X-5-A-4 投稿すると文字がずれてしまって表が見難くてすいません. どなたか,ご教授よろしくお願いします.

  • 複数列を1列に表示させて追加する方法。

    どなたかご存じでしたらご回答をお願いします。 エクセルシートのA列~J列に値が入っており、それぞれの最終行に値を追加しております。 【質問】  A列~J列まで値の入ったエクセルシート(各種値)を別エクセルシート(纏め)のA列に  1つに纏め、エクセルシート(各種値)のA列~J列の最終行に追加されるたびに  エクセルシート(纏め)の最終行に追加する方法が知りたいです。 ●エクセルシート(各種値)  A   B  C  D  E  F  G  H   I   J                :  111 222 333 444 555 666 777 888 999 000  123 456 789 112 223 334 445 556 222 778 <= 最終行追加! ●エクセルシート(纏め)  A   :  111  222  333  444  555  666  777  888  999  000  123 <= A列最終行  456 <= B列最終行  789 <= C列最終行  112 <= D列最終行  223 <= E列最終行  334 <= F列最終行  445 <= G列最終行  556 <= H列最終行  222 <= I列最終行  778 <= J列最終行 【注意事項】   ・A列~J列に入っている値には同じ値が入る場合があります。(重複あり)   ・使用するエクセルは2010です。 以上、よろしくお願いします。    

  • エクセルのマクロでこういう場合は?

    エクセル97です。 Sheet1の E3:J29 に表があります。 E列、F列は文字列、G列は数値、H~J列には式が入っています。 この表の G列の値が空白や0でない行だけをコピーして、Sheet2 のB2 以下に切れ目なく表の「値」を貼り付けるにはどうのようなマクロを書けばいいのでしょうか?(G列が空白や0の行はSheet2の表では一切無視され、空白行ができないようにしたいのです。) よろしくお願いします。

  • エクセルの条件付き書式に関して

    エクセルにて勤務表を作りたいと考えております。 E列に開始時間、F列に終了時間が入っておりH列からZ列まで8:00~17:00まで30分刻みで時間がプロットしてあります。 開始時間・終了時間と同じ値のH列からZ列を塗りつぶしたいのですが、条件付き書式で可能なのでしょうか? 塗る方法があれば方法をご教示頂ければと思います。 (例) E2=10:00、F2=16:00 H1=8:00、I1=8:30・・・Z1=17:00

  • Excelでマクロを使用した削除に関して

    マクロ初心者です。 Excelにて、以下のような表データがあるとします。     A列 B列 C列 D列 E列 … 1行      51  50  52  51    2行  50  a   b   c   d 3行  51  e   f    g   h    4行  52  i    j    k   l この表の中で、A列と1行目の値が同じになる交点となるセルの値"以外"を 削除して以下のように表示させたいのですが、 その方法がわかりません。     A列 B列 C列 D列 E列 … 1行      51  50  52  51    2行  50      b       3行  51  e          h    4行  52          k    単純な行削除・列削除ではないため、 頓挫しています。お知恵を拝借したく、よろしくおねがいします。

  • Excelの入力式について

    Excelの入力式について教えてください。 たとえば、A1セル~F1セルに数値が入っていて、G1セルA1+B1の値、H列にC1+D1の値 I列にE1+F1の値としたい場合、 G1セルに数式を入れてH列にコピーするとB1+C1になってしまいます。 上手くやる方法はないのでしょうか。 1列ずつわざわざ空白列を作るのは嫌ですし、たくさんあったら数式を打ち込むのも大変です。。。

このQ&Aのポイント
  • ドライバーがインストールできない問題を解決する方法をご紹介します。
  • MP490のドライバーをWindows10にインストールする方法について解説します。
  • キヤノン製品のドライバーが正常にインストールできない場合の対処法についてご紹介します。
回答を見る

専門家に質問してみよう