
例えば、下記の一覧(A表)よりA現場に現在ある機材の管理番号と機械名を抽出し別の一覧(B表)を作りたいです。
A表 B表 6/9時点
日付 管理番号 機械名 搬出元 搬入先 管理番号 機械名
6/5 1111 ブレーカー 会社 A現場 1111 ブレーカー
6/9 1112 クレーン B現場 A現場 1112 クレーン
7/1 1111 ブレーカー A現場 会社 ⇩自動更新
7/8 1112 クレーン A現場 会社 B表 8/1時点
8/1 1112 クレーン 会社 A現場 管理番号 機械名
1112 クレーン
管理番号1111で考えた時、6/5時点ではA現場にあるのでB表に表示され、7/1には会社に戻しているので表から消える。管理番号1112で考えた時、6/9時点ではB表に表示され、7/8には表から消え、8/1に再度表示される。といったように手入力で作成したA表から自動で現場ごとに作成したB表に機材の動きが反映されるようにしたいです。
また、会社の機材一覧とA表より、会社に残っている機材についても自動で抽出できるようにしたいです。(A表の搬入先が会社になっている機材と、機材一覧にはあってA表には入力されていない機材)
機材一覧 会社在庫 8/1時点
管理番号 機械名 シリアルNo. ○○番号 管理番号 機械名
1111 ブレーカー 123456 456 1111 ブレーカー
1112 クレーン 134569 457 1113 タンク
1113 タンク 125793 113
ちなみにエクセルは2016年のもので古いため、使えない関数もあります...。
上手く説明できずすみませんが、ご回答宜しくお願い致します。
A 回答 (8件)
- 最新から表示
- 回答順に表示
No.8
- 回答日時:
こんにちは
>この式に加えて、最新日の日付で抽出するためにはどの関数が使えますか?
一発で求めようとすると、関数式が複雑になるので、順に求めた方がわかりやすいと思いますけれど・・
(まとめて配列計算を行うと、計算負荷が増大しやすいこともあります)
日付順に抽出するので良ければ、ご提示の方法でROW()の代わりに日付を用いれば、日付の順序が抽出できますよね?
ただし、欲しいのは行番号なのでしょうから、「INT(日付)*10000+ROW()」などをソートキーとして用いれば、「日付順でかつ行番号情報を付した値」を得ることができます。
検索のインデックスとしては行番号が必要でしょうから、上記の値に対して
MOD(上記の値, 10000)
を求めれば、ROW()の部分だけを取り出すことが可能という仕組みです。
(上例では9999行迄の範囲を想定)
ただし、ご提示の式ではLARGE関数の代わりにSMALL関数を用いることはできないので、昇順でしか結果を求めることができません。
(条件に外れたものを0としているので、SMALLではそちらがヒットしてしまう)
一方で、エクセル2016なら、AGGREGATE関数が利用可能と思いますので、これを応用する方法を用いれば昇順、降順どちらにでも対応できます。
https://support.microsoft.com/ja-jp/office/aggre …
方法はご提示の式とほぼ同様ですが、条件に合致しないものをエラー値として無視する点が異なります。(これによって昇順・降順とも可能になります)
昇順の場合であれば、
=IFERROR(INDEX(検索対象列,AGGREGATE(15,6,ROW(セル範囲)/(条件式),ROW(A1))),"")
のような要領です。
日付順にソートしたい場合には、前述と同様の置換えをすれば可能になります。
※ 最新のバージョンならSORT関数とFILTER関数で簡単にできますけれどね。
No.6
- 回答日時:
各機材の最新の搬入先を確認するために、最新の日付のエントリを取得します。
これには、Excelの「VLOOKUP」関数や「INDEX」と「MATCH」関数の組み合わせが便利です。No.5
- 回答日時:
エクセルの機能がどんなのがあるか?などを抜きにして、ペンと紙を使っての手作業でやったら、どういう手順でやればいいか?を考えるのが最初だと思います。
そして、その手順をエクセルで実現するにはどうすればいいか?ってのを考えるのが次のステップです。
もし、手順がエクセルマクロの組み合わせなどで可能と思えば、次のステップとしてマクロを作ればいいだけ。
もし、マクロで実現するのが無理なら、エクセルVBAのプログラムを作ることになります。
自分で上記ができないなら、どこかの開発会社にお願いするとか、No.2さんの回答にあるように、仕事を有料でやってくれる方たちのいるサイトを通じて作業依頼をするのがいいでしょうね。
No.3
- 回答日時:
A表とB表を別シートに作って必要なセルをB表にコピーして不要データを関数で消すで出来ると思います。
具体的な表をアップして見て下さい。
具体的にアドバイス出来ると思います。
No.2
- 回答日時:
('ω') 分からなければ、ひとつずつ手入力でOK。
紙の上に作った表に書き写すのと同じです。
・・・
もっと詳しく使えるようになってから横着できる関数やマクロを使うようにしましょう。
要は、ご自身のレベル相応の使い方をしましょうという事です。
赤の他人から教えてもらっても良いのですが、それを信用した結果、嘘を教えられ会社に損害を与えたらどうなるかを考えたことはありますか。
・・・
あとね、この質問文は「私の成果として使ってやるから代わりに作れwww」って内容になってるってことに気付きましょう。
ここは
自力で解決するためアドバイスをもらう場所
です。
そんなわけで少なくとも、どこまで試行錯誤したのか
「思うようにできない」
というやり方について示しましょう。
そうすれば、
”思うようにできない理由”
や、
”改善点”
をアドバイスしてもらえます。
……まあ、中には「こんなの簡単だぜ」と己惚れた輩がそのまんまの回答をすることもありますけどね。
「教えて!goo」は「代わりにやれ、オレ様の成果として使ってやるwww」という【作業依頼】または、課題の【丸投げ】をする場所ではありません。
これは利用規約で明確に禁止されています。
【作業依頼】をしたいのであれば、有料サイトで代価を支払って委託しましょう。
(自分なら500円で請け負ったうえに解説まで付けて納品するかな)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VLOOKUP FALSEのこと
-
if関数の複数条件について
-
【関数】=EXACT(a1,b1) a1とb1...
-
エクセルシートの見出しの文字...
-
エクセルの文字数列関数と競馬...
-
【マクロ】数式を入力したい。...
-
同じ名前(重複)かつ 日本 ア...
-
excel
-
表計算ソフトでの様式の呼称
-
エクセルでフィルターした値を...
-
エクセルのライセンスが分かり...
-
【関数】3つのセルの中で最新...
-
【マクロ】【画像あり】❶ブック...
-
【マクロ画像あり】❶1つの条件...
-
Dir関数のDo Whileステートメン...
-
セルにぴったし写真を挿入
-
Excel 日付の表示が直せません...
-
エクセルに写真が貼れない(フ...
-
LibreOffice Clalc(またはエク...
-
【マクロ】【画像あり】4つの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
自動車レッカー移動について教...
-
ラフタークレーン運転士について
-
ホイストクレーンを 使用して...
-
ゲームセンター
-
ずっと前に『トリビアの泉』で...
-
クレーン免許の違いを教えてく...
-
エクセルで現場ごとに機材の移...
-
ホイストクレーンは免許が必要
-
緊急自動車では
-
変圧器絶縁油の危険物扱いにつ...
-
私の親のころは普通免許に大型...
-
クルマの運転で意図しない信号...
-
信号待ちの時に道を塞ぐ形で停...
-
T字路って交差点ですか? 駐車...
-
一般車が救急車の後ろに走行す...
-
甲種港湾・乙種港湾の違い
-
写真のようにiPadなどをホルダ...
-
工場敷地内において、ホイール...
-
自動車への給油
-
一般車がサイレンを鳴らしたら...
おすすめ情報
エクセルの使い方はわかるのですが、すみません。育休明けたばかりで、どう調べればいいのか上手く文章にすることができず、マニュアル本は読んでいませんが、ネットでかなり調べていろいろ試しましたが、思うようにできなかったので、こちらに投稿させていただきました。
=IFERROR(INDEX(抽出対象の列,1/LARGE(INDEX((条件式)/ROW(条件範囲),0),ROW(A1))),"")
この式に加えて、最新日の日付で抽出するためにはどの関数が使えますか?
理解力が乏しくてすみません。。。
ご回答していただいた内容で自分なりの解釈で下記の通りやってみましたが、うまく抽出できません。改めてアドバイス頂けると大変うれしいです。
=IFERROR(INDEX(機材貸出!B:B,1/AGGREGATE(15,6,MOD(INT(機材貸出!B4)*10000+ROW(機材貸出!$B$4:$B$30),10000)/INDEX((機材貸出!$I$4:$I$30=MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31))/ROW(機材貸出!$I$4:$I$30),0),ROW(A1))),"")