お世話になります。
エクセル365を使用しています。
<sheet1>
Aセル Bセル Cセル Dセル Eセル
商品 入荷日 配送日 経由地1 経由地2
いちご 2024/1/1 2024/1/10 千葉県 東京都
ばなな 2024/1/1 2024/1/10 長野県 秋田県
りんご 2024/1/3 2024/1/20 青森県 東京都
ばなな 2024/3/3 2024/3/24 福島県 山梨県
いちご 2024/6/5 2024/6/15 福島県 東京都
いちご 2024/7/12 2024/7/31 千葉県 長野県
・
・
・
・
(続く)
上記のような一覧があります。
sheet2で別のsheetより、商品・販売日・重さ・箱の大きさなどの管理台帳が表示されるようにしています。
・sheet2で表示されている「商品」の「販売日」が、shee1のB・Cセルの入荷日~配送日のどこの期間に該当するか
・該当した「商品」の、sheet1のD・Eセルを、sheet2に表示するようにしたい
例)
<sheet2>
Aセル Bセル Cセル Dセル
商品 販売日 経由地1 経由地2
いちご 2024/6/8 福島県 東京都
・「商品」いちご 「販売日」2024/6/8 = sheet1のBセル2024/6/5~Cセル2024/6/15の期間に該当する
・該当した、sheet1のDセル「福島県」を、sheet2のCセルに表示/sheet1のEセル「東京都」をsheet2のDセルに表示
といったことがやりたいのですが、それが可能な計算式を教えてほしいです。
よろしくお願いします。
- 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
- 今の自分の気分スタンプを選ぼう!
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No1です。
>参考のページなどを見ながら組んでみたのですが・・・
私の環境は2019なので、No1の参考ページ以上の情報は持ち合わせていないのですが・・・
(というか、MSの説明サイトなので、それ以上の解説もないでしょうけれど)
ご質問のはっきりしたレイアウト(行数等)が不明なのですが、検索値となる日付があるのはB列ではないのでしょうか?
以下は、あくまでも想像ですが、Sheet2のC2セルに
=FILTER(Sheet1!D:E,(Sheet1!A:A=A2)*(Sheet1!B:B<=B2)*(Sheet1!C:C>=B2),"")
とすれば、求める結果がスピルされませんか?
複数の結果が抽出されるような可能性には配慮していません。
日付は全てシリアル値(=エクセルの日付形式のデータ)で入力されているものと仮定しています。
No.2
- 回答日時:
データの抽出ならVLOOKUPが便利です
Sheet2から行きましょう。
まず、商品名を同じ並びにします
A列の「商品」の下に
=Sheet1!A2
※=を入力し、Sheet1の「商品」の一個下のセルを選択でも可
と入力し、セルをコピーしてSheet1の商品の数だけ下に張り付けてください
次に販売日が入荷日~出荷日の期間に収まっているかになります
そもそも参照する販売日がないと話にならないので、
販売日の隣に列を追加して判定する列を作りましょう
数式は
=IF(B2>=Sheet1!B2,IF(B2<=Sheet1!C2, "〇","出荷日を超過しています"), "入荷日より前です")
と入力し、セルをコピーしてSheet1の商品の数だけ下に張り付けてください
出荷日より小さければ「入荷日より前です」と返し、
出荷日より大きければ「出荷日を超過しています」と返す条件式です
覚えましょう
次にC列~の経由地ですが、
B列の処理で一列増やしたのでD列~になります
D列には
=VLOOKUP(A2,Sheet1!A:E,4,FALSE)
と入力し、
E列には、
=VLOOKUP(A2,Sheet1!A:E,5,FALSE)
と入力し、セルをコピーしてSheet1の商品の数だけ下に張り付けてください
VLOOKUPの使い方を軽く説明しますと
VLOOKUP(検索したいセル,検索範囲,検索範囲の左から何番目の列が欲しい,FALSE)
です。
今回で言うと、「Sheet1のA列~E列」の中の「Sheet1のA列」の値が「いちご」と同じだったら「Sheet1のD列」の値を取ってきてくれ
という意味になります。
VLOOKUPは[検索したいセル]と[検索範囲]の一番左の列の値とを比較します。
しかし、今回の表では「A列」の値が「いちご」のセルが無限にあるので、一番下にある「いちご」の「Sheet1のD列」の値を取って来てしまい話になりません。
そういう場合は、各商品に「ID」を振り分けるのが一般的です。
Sheet1とSheet2のどちらにも左端に新しく列を挿入し、
A列 B列
商品ID 商品 ・・・
とし、検索したいセルを商品IDに、セル範囲を一列大きくすると、任意の商品の経由地が取得できます。
列を追加したので↑の数式で指定しているセルの列も一個ずらさないとエラーになるので気を付けてください。
A→B B→C のように置き換えてください
No.1
- 回答日時:
こんにちは
365ならFILTER関数で抽出できると思いますが、複数該当した場合にどうするおつもりなのでしょうね・・・
https://support.microsoft.com/ja-jp/office/filte …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAコードで質問があります 2 2022/10/20 15:27
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
- Excel(エクセル) VBAにてエクセルをpdf化する方法 1 2023/03/10 16:20
- Excel(エクセル) WORKDAY関数 4 2023/06/08 13:23
- Excel(エクセル) エクセルの数式で教えてください。 5 2023/02/10 15:11
- Excel(エクセル) 関数を教えていただきたいです。 添付のような「data sheet」があります。 他に、「集計 sh 3 2023/11/02 17:11
- Visual Basic(VBA) VBAを教えていただきたいです。 添付のような「data sheet」があります。 他に、「集計 s 2 2023/11/07 12:51
- Excel(エクセル) Excel VBAについて【図形を組み合わせて作成した、料金別納表示の削除の仕方】 5 2023/11/16 01:27
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
貼り付けで複数セルに貼り付けたい
-
【エクセル】IF関数 Aまたは...
-
Excelで特定の文字列が含まれて...
-
エクセルで指定したセルのどれ...
-
Excelで数式内の文字色を一部だ...
-
Excelでのコメント表示位置
-
セルをクリック⇒そのセルに入力...
-
excelの特定のセルの隣のセル指...
-
【Excel】 セルの色での判断は...
-
エクセル 足して割る
-
エクセルで住所と建物名を分け...
-
EXCELで優先順位をつけて表示
-
エクセル オートフィルタで絞...
-
枠に収まらない文字を非表示に...
-
Excel2003 の『コメント』の編...
-
エクセル365 IF??計算式を...
-
エクセルのセルの枠を超えて文...
-
EXCEL VBA セルに既に入...
-
(Excel)数字記入セルの数値の後...
-
エクセルの一つのセルに複数の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
貼り付けで複数セルに貼り付けたい
-
エクセル 足して割る
-
Excelで数式内の文字色を一部だ...
-
Excelでのコメント表示位置
-
セルをクリック⇒そのセルに入力...
-
対象セル内(複数)が埋まった...
-
エクセルのセルの枠を超えて文...
-
【Excel】 セルの色での判断は...
-
EXCEL VBA セルに既に入...
-
(Excel)数字記入セルの数値の後...
-
エクセル オートフィルタで絞...
-
Excel2003 の『コメント』の編...
-
エクセルの一つのセルに複数の...
-
枠に収まらない文字を非表示に...
-
セルに特定の色が付いていたら...
-
excelの特定のセルの隣のセル指...
-
excelのCOUNTIF関数で、『範囲=...
-
エクセル “13ヶ月”を“1年1ヶ月...
おすすめ情報
早速の回答、ありがとうございます。
複数該当した場合どうするか、と危惧して下さりありがとうございます。
商品ごとに入荷後1カ月以内は再度入ってこない、3カ月は再度入ってこない・・・ことになっているので大丈夫だと思います。
教えて頂いたFILTER関数で、参考のページなどを見ながら組んでみたのですが・・・
=FILTER(Sheet1!A3:E34,('sheet2'!B2>=Sheet1!C3:C34)*('sheet2'!A2<=Sheet1!B3:B34)*(A2=Sheet1!A3:A34))
と入力してみたのですが #CALC! と表示されてしまいます。
日付範囲の <> の向きが違うのかと思い、それぞれの向きを逆にもしてみましたが #FALSE と表示されてしまいます。
式の書き方など教えて頂けると大変助かります。
早々の回答ありがとうございます。
とても分かりやすく、丁寧な解説で初心者の私でも理解しやすかったです。
再度の質問なのですが、sheet2の一覧がご提示いただいた一覧に変わるといった認識で間違いないでしょうか?
であれば、sheet2は「関係のない物は表示しない」としているので、ご提示の一覧はsheet3で表示、sheet3の中で該当した物を(判定が 〇 の物だけ)sheet2で表示する。
といった形になるのですが・・・
(sheet2は商品に関する管理内容が4行目以降ズラズラと続くので、〇ではなかったら空白とする、という式にもできません・・・)
sheet3の一覧の中から、Dセルが「〇」の、Eセル、Fセルを摘出して
sheet2のC2セル(経由地1)、D2セル(経由地2)に表示させる
この場合はどういった式にすればよろしいでしょうか?
教えて頂けると助かります。