• ベストアンサー

エクセル データの抽出の仕方 教えてください

エクセル初心者です。 過去の質問を探してみたのですが、自分の探し方が検討外れのようで、何をどのようにすればよいか判らず、質問させて頂きます。 よろしくお願いします。 やりたいことは、”現在の作業状況と予定日を知りたい”です。 作業ごとに『準備』『作成』『提出』という作業項目があり、それぞれに「予定」と「実績」列があります。 そこで、予定に値があり、実績が空欄の場合、その作業と予定の値を、作業状況の状態、日付に挿入したいです。 A_|B__|C__|D__|E__|F__|G__|H__|I__|J__|K__|L ――――――――――――――――――――――――――――――――――― 作業|準備_____|作成_____|提出_____|説明_____|__|作業状況  ----------------------------------- __|予定|実績|予定|実績|予定|実績|予定|実績|__|状態|日付 ----------------------------------- 01__|4/10|完了|4/15|__|4/20|__|__|__|__|__|__ ----------------------------------- 02__|4/12|__|__|__|__|__|__|__|__|__|__ ※表の”_”は表の崩れを少しでも直そうとしていれただけなのできにしないで下さい※ 01の作業を例にとると、 「予定」4/15(D列)と「実績」空欄(E列)が条件を満たすので、 作業の『作成』(D、E列結合)と「予定」の4/15(D列)を 作業状況の「状態」(K列)、「日付」(L列)にその値を返し、 01の作業状況は、”作成で予定は4/15”になっているとわかる A_|B__|C__|D__|E__|F__|G__|H__|I__|J__|K__|L ――――――――――――――――――――――――――――――――――― 作業|準備_____|作成_____|提出_____|説明_____|__|作業状況  ----------------------------------- __|予定|実績|予定|実績|予定|実績|予定|実績|__|状態|日付 ----------------------------------- 01__|4/10|完了|4/15|__|4/20|__|__|__|__|作成|4/15 ----------------------------------- 02__|4/12|__|__|__|__|__|__|__|__|準備|4/12 上記のようなことがしたいです。 自分としては、以下のように考えていけばよいのかな?と思っているのですが、 これをエクセルの何を使ってやればいいのだろう…と悩んでいる状態です。 (1)空欄の列を探す (2)空欄の列が「実績」だったら、  ひとつ前の「予定」欄の値を、作業状況の「日付」欄に挿入  「作業」欄の値を、作業状況の「状態」欄に挿入   うまく説明ができなく申し訳御座いませんが、よろしくお願いします。

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

  • ベストアンサー
回答No.3

>IF文が7つ以上になった場合は、 「IF文が7つ以上」が仕様・制限ではありません。 「関数のネストが7つまで」が仕様・制限です。 =IF(式,真,IF(式,真,IF(式,真,IF(式,真,IF(式,真,IF(式,真,IF(式,真,偽))))))) はネスト7つで8通りの結果しか返しませんが、 =IF(式,IF(式,IF(式,IF(式,真,偽),IF(式,真,偽)),IF(式,IF(式,真,偽),IF(式,真,偽))),IF(式,IF(式,IF(式,真,偽),IF(式,真,偽)),IF(式,IF(式,真,偽),IF(式,真,偽)))) はネスト4つで16通りの結果を返します。 理論上は、ネスト7つで最大128通りの結果を返すことができます。

heliopsis
質問者

お礼

補足の質問について、上記のアドバイスを参考に自分なりに思考錯誤したのですが、上手くいかなかったので、ネスト制限いっぱいまでの式の回を一度、別セルにだして、その値を引き継いで計算することにしました。この度は有難うございました。

heliopsis
質問者

補足

ご教授有難う御座います。間違った覚え方をしておりました。 そこで、10の作業項目があるので、例に見習って自分で考えていたのですが、こんがらがってしまいうまく式が作れません。 質問時、4つの作業項目の場合だったのですが、10の作業項目がある場合、式はどうなるか、教えて頂けないでしょうか。 重ね重ねの質問で申し訳ありません。

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

その他の回答 (2)

noname#176215
noname#176215
回答No.2

■K3セル =IF(COUNT(B3:I3),IF(C3="",B$1,LOOKUP("ー",C3:I3,D$1:J$1)&""),"") ■L3セル =IF(K3="","",INDEX(B3:I3,MATCH(K3,B$1:I$1,0))) 全部埋まっている時に どう表示したいのか分かりませんが「終了」 などと表示したい場合は J1セルにその文字列を入れて下さい。

heliopsis
質問者

お礼

補足の質問は分からないままですが(LOOKUPの仕様かな?と考え中です…)参考になりました。この度は有難う御座いました。

heliopsis
質問者

補足

回答有難う御座います。はじめてみる関数もあり勉強になります。 試していて悩んでしまったのですが、実績の欄に「完了」ではなく、日付を入れた場合(例えば 4/12 )、 #N/A と返ってきてしまったのですが、どうしてでしょうか?

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

K3セルに「=IF(($B3<>"")*($C3=""),$B$1,IF(($D3<>"")*($E3=""),$D$1,IF(($F3<>"")*($G3=""),$F$1,IF(($H3<>"")*($I3=""),$H$1,""))))」を、 L3セルに「=TEXT(IF(($B3<>"")*($C3=""),$B3,IF(($D3<>"")*($E3=""),$D3,IF(($F3<>"")*($G3=""),$F3,IF(($H3<>"")*($I3=""),$H3,"")))),"m/dd")」を、 それぞれ入力して、K3:L3セルを下方向へコピー。

heliopsis
質問者

補足

回答有難う御座います。早速試させて頂きました。 上記の場合だと、IF文が4つだったので大丈夫だったのですが、IF文が7つ以上になった場合は、IF文7つの計算式の値を何処かに格納して、その値を引き継ぎつつ、IF文の計算式を続けるみたいになると考えてよいでしょうか?

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

関連するQ&A

  • Excelでのデータ抽出

    Excelに複数シートがあり、各シートには以下の内容が記載されてます。  A列 伝票No.  B列 日付  C列 担当者  D列 型番    ・    ・    ・ B列で任意の日付を検索し該当する値があれば、その行(A~D…列)を別シートにコピーし抽出したいのです。 VBAを使ってやりたいのですがどうしたらよいでしょうか? よろしくお願いします。

  • エクセルでのデータ抽出について

    初めて質問させていただきます。 2つの銘柄の株価データをエクセルにコピペした後、日付と時刻が同じものを行を揃えて抽出したいのですが、いろいろ試してみましたがわかりません。 具体的には次のようにしたいのですが・・・。 【元データ】  A列     B列    C列    D列    E列    F列 ・ ・ 2007/11/9  9:20:00  520  2007/11/9  9:25:00  1544 2007/11/9  9:15:00  514  2007/11/9  9:20:00  1520 2007/11/9  9:10:00  513  2007/11/8  15:00:00  1430 2007/11/9  9:05:00  509  2007/11/8  14:55:00  1425 2007/11/9  9:00:00  501  2007/11/8  14:50:00  1427 2007/11/8  14:55:00  497   2007/11/8  14:45:00  1431 ・ ・ 【抽出後】 ・ ・ 2007/11/9  9:20:00  520  2007/11/9  9:20:00  1520 2007/11/8  14:55:00  497  2007/11/8  14:55:00  1425 ・ ・ どなたか宜しくお願いいたします。

  • ブランクのみ抽出させる

    Win10 のOfice356 Excelは2016だと思います。 各列に 日付 ・バン詰めNo. ・車名・フレームNo.・納車先・到着予定日・...・...・ と列はO列まであります。 別BOOKに可能ならそれがいいですし、できないなら別シートでもいいのですが、 バン詰めが終わってない空欄状態の行を列を限定して一覧を作りたいです。 B列が空欄で、Bの他に欲しい列がA C D G J K N であるとします。 私が今行っている作業は、オートフィルターでバン詰めNo.の空欄を絞り込み、 上記記載の列以外の列を非表示状態にしてctrlタブで列を選択して別BOOKに コピペさせてます。 その方法以外に関数等使って何かないでしょうか? VBAは全くわかりません。 マクロもどこまでどのような作業が記録できるのかよくわかりません。

  • 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を使わなくてもいいので、方法を教えてください。 本来自力で調べるべきですが、急ぎの仕事な為、ご協力ねがいます。

  • エクセルのデータ抽出の仕方について

    100を超えるエクセルファイルがありその中から一つの数値を抜き取り データ作成作業をしています。 ファイルの個数が多く何とか時間をかけずに行いたいと思っているのですが どなたか知恵を貸していただけないでしょうか。 以下、エクセルファイルを簡単に並べました ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ A B C D E 1 21 22 23 24 25 2 31 32 33 34 35 3 41 42 43 44 45 4 51 52 53 54 55 5 61 62 63 64 65 6 71 72 73 74 75 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 図で示すと多数あるエクセルファイルの例えばセル「3E」の「45」と言う数値(この数値は シートによって異なります)を抜き取りたいのです。 あまり時間がございません。 どなたか御回答いただきますようお願い致します。

  • 【エクセル】歯抜けの空白欄に上段と同じ値を入れたい

    エクセル(2010)で ある表に ところどころ空欄があり、 そこに上段と同じ値を入れたいです。 随時発生する作業のため マクロ(もしくはVBA)が組めればと考えておりますが、 初心者につき、ご教示いただけますでしょうか。 A列:項番 B列:大項目 C列:中項目 D列:小項目 E列:備考 ※1行目:項目名、2行目以降:値 という表で、 A列のナンバリング・D列の小項目 以外は 上と同じ扱いとなるため空欄となってしまっていますが、 アクセス(DB)に取り込むため、空欄の無い形にしたいのです。 ※ちなみに、A列・D列は空欄が無い状態=最終行以下は空白です。 よろしくお願い致します。

  • excel vbaでVlookup的な集計したい

    お世話になります。 デスクトップに[集計]というフォルダ作って、その中に[集計.xls]というファイルがあります(画像参照) さらに[個別]というファイルダ内に[実績A.xls]というファイルがあります。 実際には実績B.xls、実績C.xlsと複数ファイルが存在します。 集計.xlsにボタンを作ってクリックすると下記のような動きを実現したいのです。 [個別]フォルダ内の実績A.xlsファイルを開いて[集計.xls]のA列(支店名)、B列(商品番号)と合致したデータを次のように挿入していきたいのです。 集計.xls  実績A.xls C列  ← D列の値 D列  ← E列の値 E列  ← F列の値 F列  ← G列の値 この作業を実績A.xlsファイルの全シートに対して実施したいのです。(マスターというシートは抜かして左から右へ)。全シートREADし終わったら閉じて次の実績B.xlsファイルを開いて、また同じ作業を繰り返し、[集計.xls]もA2のデータから再びREAD、という動きです。 わかりにくい説明で大変恐縮ですが、業務で求められ困っております・・ どなたかご教授いただけますでしょうか。 何卒よろしくお願い致します。 Excel2013 Windows7

  • エクセルでのデータ抽出方法について

    Excel2010で、IDと氏名を結びつけたリスト表を作成しようと考えています。 例として以下のようなエクセル表があったとします。 ※列A・列B→ID及び氏名   列D・列E→列A・列Bから抽出したい情報        【列A】    【列B】    【列C】    【列D】    【列E】      【行1】   11111   山田 太郎    -      11119    (※「山田 九郎を」入れたい) 【行2】   11112   山田 二郎    -      11112    (※「山田 二郎を」入れたい)     【行3】   11113   山田 三郎    -       11118    (※「山田 八郎を」入れたい)     【行4】   11114   山田 四郎    -       11114    (※「山田 四郎を」入れたい) 【行5】   11115   山田 五郎              【行6】   11116   山田 六郎                【行7】   11117   山田 七郎           【行8】   11118   山田 八郎 【行9】   11119   山田 九郎         : D列は既に入力済み(確定)で、IDが割り振られている人の氏名をE列に挿入したい場合の エクセルの操作方法について教えていただきたく、よろしくお願いします。

  • エクセル2010 検索と抽出

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

  • エクセルについて。

    知人にできるかどうか頼まれました・・・。 私自身、一般的なことなら使いこなせるのですが、そこまで極めていないので、できるできないの境界線がよく分かりません。 可能なら、方法をご教授お願いします。 例えば・・・。 列A、行1~3に日付。 列B、行1~3に各Aの値。 が書かれてあったとします。 で、D4に日付。E4にその日の値を表示させたいと思います。 (D4にA1がくれば、E4にはB1という風に) 知人としては、D4の日付を変更すれば、ぱぱっとE4の値も対応して変更されるようにしたいらしいのですが・・・。 関数をいじったりしましたが、そこまではどうもできません。 何か、よい方法をご存知の方、よろしくお願いします。

専門家に質問してみよう