• ベストアンサー

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

エクセル初心者です。 過去の質問を探してみたのですが、自分の探し方が検討外れのようで、何をどのようにすればよいか判らず、質問させて頂きます。 よろしくお願いします。 やりたいことは、”現在の作業状況と予定日を知りたい”です。 作業ごとに『準備』『作成』『提出』という作業項目があり、それぞれに「予定」と「実績」列があります。 そこで、予定に値があり、実績が空欄の場合、その作業と予定の値を、作業状況の状態、日付に挿入したいです。 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