
EXCELを使って、過去の書類管理をしたく、どんな関数を使えばよいか考えています。アドバイスをお願いします。
会社で大量の書類を保管しており、倉庫が2箇所、そこにダンボールに詰め込まれた書類が何百箱もあります。「日付順」と「書類の種類別」に保管してあり、箱の外側にも「いつ~いつまで」「何の書類」とマジックで書いてあります。
今回やりたいことは、エクセルで「日付」と「書類の種類」を入力すると、その書類がどこの倉庫のどこの棚のどの箱の中に入っているか表示されるようにしたいのです。
管理としては、セルの左側から以下の情報を入力する予定です。
[日付(範囲の始め)] [日付(範囲の終わり)] [書類の種類1] [書類の種類2] [倉庫名] [棚の場所] [箱の番号]
具体的な例として以下のような感じです。
[2005/05/11] [2005/05/23] [本体] [支払] [OKビル] [A-3] [12]
[2005/05/24] [2005/05/31] [周辺] [支払] [OKビル] [B-2] [08]
[2005/05/02] [2005/05/31] [本体] [取消] [WVビル] [W-10] [07]
No.11ベストアンサー
- 回答日時:
#4です。
再度ゴメンナサイ。F2に「正」の数式を入力して、右へH2までコピーしてください。
誤:
=IF(OR(ISBLANK($D$2),ISBLANK($E$2),ISBLANK(#REF!),ISBLANK(#REF!)),"",DGET(Sheet1!$A$1:$G$1000,F$1,$B$1:$E$2))
正:
=IF(OR(ISBLANK($A$2),ISBLANK($B$2),ISBLANK($C$2)),"",DGET(Sheet1!$A$1:$G$1000,F$1,$B$1:$E$2))
です。
No.10
- 回答日時:
#4です。
探す日付そのものを入力するだけにしたいなら、
例:
A B C D E F G H
1 検索日付 種類1 種類2 日付(始め) 日付(終り) 倉庫名 棚番号 箱番号
2 2005/05/27 周辺 支払 <=38499 >=38499 OKビル B-2 08
↑ ↑ ↑
入力 入力 入力
というフォーマットにして、
D2に、
="<="&$A$1
E2に、
=">="&$A$1
F2、G2、H2に、
=IF(OR(ISBLANK($D$2),ISBLANK($E$2),ISBLANK(#REF!),ISBLANK(#REF!)),"",DGET(Sheet1!$A$1:$G$1000,F$1,$B$1:$E$2))
とすれば、
ユーザーはA2、B2、C2に入力するだけで済みます。
なお、D列、E列が見えていて、見栄えが悪いと感じるなら、
D列、E列の列幅を0にしてしまえば良いでしょう。
No.9
- 回答日時:
ゴメンナサイ。
検索結果の表記が間違っていました。正しくは(言葉足らずも追加)
例:
A B C D E F G
1 日付(始め) 日付(終り) 種類1 種類2 倉庫名 棚番号 箱番号
2 <=2005/05/27 >=2005/5/27 周辺 支払 OKビル B-2 08
↑ ↑ ↑ ↑
入力 入力 入力 入力
のように指定すればOKです。
要するに、
「日付(始め)」(箱の開始日)は、探したい日付(2005/5/27)「以前」で、
「日付(終り)」(箱の終了日)は、探したい日付(2005/5/27)「以降」を探せば良いわけです。
2005/05/27
↓
+---------------+ ←箱に入っている書類の期間
2005/05/24 2005/05/31
2005/05/27より前の日付 2005/05/27より後の日付

No.8
- 回答日時:
Sheet1
A B C D E F G
1 日付始 日付終 種類1 種類2 倉庫名 棚場所 箱番号
2 2005/05/11 2005/05/23 本体 支払 OKビル A-3 12
3 2005/05/24 2005/05/31 周辺 支払 OKビル B-2 8
4 2005/05/02 2005/05/31 本体 取消 WVビル W-10 7
5
Sheet2
A B C D E F
1 日付 種類1 種類2 倉庫名 棚場所 箱番号
2 2005/05/27 周辺 支払 OKビル B-2 8
D2: {=OFFSET(Sheet1!$A$1,SMALL(IF((Sheet1!$A$2:$A$500<=$A$2)*(Sheet1!$B$2:$B$500>=$A$2)*(Sheet1!$C$2:$C$500=$B$2)*(Sheet1!$D$2:$D$500=$C$2),ROW(A$2:A$500),""),ROW(A1))-1,COLUMN(D1))} (配列数式)
No.7
- 回答日時:
#4です。
> 例えば、「2005/05/27」の「周辺」の「支払」はどこ?
例:
A B C D E F G
1 日付(始め) 日付(終り) 種類1 種類2 倉庫名 棚番号 箱番号
2 <=2005/05/27 >=2005/5/27 本体 取消 OKビル B-2 08
↑ ↑ ↑ ↑
入力 入力 入力 入力
のように指定すればOKです。
要するに、
「日付(始め)」は、2005/5/27「以前」で、
「日付(終り)」は、2005/5/27「以降」を探せば良いわけです。
2005/05/27
↓
+---------------+
2005/05/24 2005/05/31
2005/05/27より前の日付 2005/05/27より後の日付
No.6
- 回答日時:
私もある物品の所在場所を整理したシステムを仕事でやりました。
その際はACCESS(VBA)を使いました(指定された)。
ーー
情報の整理には
(1)計数を整理して加工(加算や平均や)して済むもの
(2)物品などが背後にあって、所在や在庫などを管理する必要のあるもの
(他画像や対話・教育などさまざまなものはありますが置いておいて)
エクセルは(特に関数は)(1)は得意だが、(2)は不得意です
。中間作業列を使ったり、シートが式だらけ(全セル式設定)になったりします。1式で抜き出すものも、式が技巧的で式の理解も難しく、普通のエクセル使いには理解や修正も難しい。
(どんなものがあるかはGoogleでimogasi方式でWEB照会するとOKWAVEの質問が多数出てその2,3を詳しく読むと、私以外の方が1つの式で条件に合った行を抜き出しする回答を挙げておられます。この質問も2条件抜き出しの課題で、毎日ぐらい質問があり、回答者には飽き飽きするほど多い)
検索やフィルタオプションしかそれにふさわしいものはほとんど無い。
ーー
結論として、質問者が関数しかやれないか、周りの使う人のレベルが高くないのでそうしたいのかも知れないが、苦しい。
少なくともエクセルVBAは中級以上できないと。
エクセル関数だけで社内の仕事システムを作ろうというのは、無謀です。入力システムの助力が関数だけでは貧弱ということもあります。
ーーー
アクセスかその併用をお勧めします。
ーーー
一番苦労するのが、書類の種類の分類でしょう。
エクセル云々の前に、頭で多数のケースを想定して、仕様的なものを
文章で整理してみることです。(特に検索時のことを良く考えて)
私の場合は備考欄があり、そこの文章メモの語句の検索が役立ちました。(それなしでは書類の種類だけでは用を成さなかった。)
分類が大きすぎたともいえます。
書類の分類の簡素複雑・適切な区分けはシステムの死命を制します。
それはパッケージ(箱のサイズなど)と表裏一体です。
7割はそちらの方へ精力を費やすべきです。
関数の質問に矮小化してはなりません。
入力データさえしっかりしていればアクセスなどにデータのエクスポートは簡単ですが。
(焼却を待つのみなのか)どれぐらい頻繁に収納書類を利用するかの頻度にも拠るが、「支払」なんて大雑把なものでは利用者にそっぽを向かれてしまうでしょう。
(倉庫に行って探さないと判らないとなる)
ありがとうございました。
私もおっしゃる通りだと思います。やはり普通に考えるとアクセスですよね。
ただし、このお手伝いさせていただいている部署ではアクセスがインストールされていなくて…(^_^;)
No.5
- 回答日時:
#4です。
下のような検索も可能です。
例:
A B C D E F G
1 日付(始め) 日付(終り) 種類1 種類2 倉庫名 棚番号 箱番号
2 >=2005/05/1 <=2005/06/30 本体 取消 WVビル W-10 07
↑ ↑ ↑ ↑
入力 入力 入力 入力
また、「種類1」や「種類2」は、入力規則でリストにして、ドロップダウン・リストから選択するようにも出来ます。
No.4
- 回答日時:
DGET関数が良さそうですね。
それには必ず列の表題が必要です。
データがSheet1として、
A B C D E F G
1 日付(始め) 日付(終り) 種類1 種類2 倉庫名 棚番号 箱番号
2 2005/05/11 2005/05/23 本体 支払 OKビル A-3 12
3 2005/05/24 2005/05/31 周辺 支払 OKビル B-2 08
4 2005/05/02 2005/05/31 本体 取消 WVビル W-10 07
という状態で、データが1000行まであるとして
別シートに
A B C D E F G
1 日付(始め) 日付(終り) 種類1 種類2 倉庫名 棚番号 箱番号
と記入し、
E2に
=IF(OR(ISBLANK($A$2),ISBLANK($B$2),ISBLANK($C$2),ISBLANK($D$2)),"",DGET(Sheet1!$A$1:$G$1000,E$1,$A$1:$D$2))
として右へコピー。
これで,
A2とB2に日付、C2とD2に種類を入れれば、E2、F2、G2に倉庫名、棚番号、箱番号が表示されます。
例:
A B C D E F G
1 日付(始め) 日付(終り) 種類1 種類2 倉庫名 棚番号 箱番号
2 2005/05/24 2005/05/31 周辺 支払 OKビル B-2 08
↑ ↑ ↑ ↑
入力 入力 入力 入力
となります。
見つからないと、E,F,Gはエラーになります。
この回答への補足
それぞれの関数について、これから勉強してみます。
質問の仕方が少し言葉が足りなかったかもしれません。
検索する時には、日付を範囲ではなく一日で指定します。
例えば、「2005/05/27」の「周辺」の「支払」はどこ?
という検索で、それに該当する3行目の
「OKビル」の「B-2」の「08」が結果として表示される。
という感じです。
ありがとうございます。とても参考になりました。
質問の仕方に少し不足していた部分があったようなので、補足に追加させていただきます。
No.3
- 回答日時:
仮にsheet1がデータで、A日付始め B日付終わり C列種類 D場所
として
sheet2が抽出結果として、抽出条件の、A1に日付はじめB1に日付終わり、C1に種類として
sheet1のF列に作業列
=IF(AND(A2>SHEET2!A$2,B2<SHEET2!B$2,C2=SHEET2!C$2),ROW(),"")
で下フィルして抽出したいデータに、行番号をF列に表示
sheet2には、A2に
=INDEX(SHEET1!A:A,SMALL(SHEET1!$F:$F,ROW(A1)),1)
右フィル、下フィルで、希望の抽出のデータを表示
では、いかがでしょうか。
No.2
- 回答日時:
この様な形式のデータの場合で、複数キーで検索・絞込となると、関数では難しそうに思います。
フィルターオプションの世界ではないでしょうか。参考URLには詳しく記載されています。参考URL:http://www11.plala.or.jp/koma_Excel/contents6/ma …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft 365 Basic サブスク...
-
access vbaでフォームを開くと...
-
Accessのクエリで、replace関数...
-
access2021 VBA メソッドまたは...
-
access2021 強制終了してしまう
-
access2019の起動が遅い
-
ACCESS VBA でのエラー解決の根...
-
Accessのフォーム上のテキスト...
-
【アクセス】レポート テキスト...
-
Access VBA [リモートサーバー...
-
「テキストデータで送ってくだ...
-
Accessでレポートを印刷する時...
-
Accessでフォームに自動入力し...
-
CSVファイルの「0落ち」にVBA
-
Microsoft365にAccessってあり...
-
Access DAOのExecuteメソッドの...
-
Access Error3061 パラメータが...
-
アクセス 削除するレコードを含...
-
Access の SetFocus について教...
-
Accessで、『"A"以外の場合"--"...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Microsoft 365 Basic サブスク...
-
ACCESS VBA でのエラー解決の根...
-
Accessのクエリで、replace関数...
-
access2021 強制終了してしまう
-
Arduinoで温湿度と時刻を1分ご...
-
access2021 VBA メソッドまたは...
-
Access Error3061 パラメータが...
-
Access VBA [リモートサーバー...
-
Accessのクエリの結果を、既存...
-
Accessのスプレッドシートエク...
-
Microsoft365にAccessってあり...
-
列が255以上のCSVファイルをAcc...
-
Access VBA を利用して、フォル...
-
実行時エラー3131 FROM 句の構...
-
CSVファイルの「0落ち」にVBA
-
Accessのレポートについて
-
Accessでレポートを印刷する時...
-
Accessでフォームに自動入力し...
-
accessデータを指定したExcel、...
-
Accessのリンクテーブルのパス...
おすすめ情報