戻る  □VBAのサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 親トピックをトピックトップへ ]
このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 

このトピック参照回数 :
Re[5]: 別シートに低い価格順に販売された製品を抽出したい・・・

    [132547] Re[5]: 別シートに低い価格順に販売された製品を抽出したい・・・-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ asahishi -(2021/08/29(04:55))
    □U R L/

       月曜日の予定だったのですが先程表を弄る事が出来たので書き込みます・・・

       Excel2010 の環境でですが修正していただいた式で個数の 0 を表示させない様に出来ている事を確認しました。

       問題の製品名の空欄に関してですが日付名シートの J7 には

      |=IF(OFFSET(作業用!$L$4,ROW(A1)-1,0)<>"",OFFSET(作業用!$L$4,ROW(A1)-1,0),"")

      みたいな感じの式が入っていて下に向かってフィルコピーしていて作業用シートの製品名の指定が空欄だった場合 "" としていた事が原因の様でした・・・

       今の手元の表では製品34から製品40に当たるセルの部分が空欄になっていました・・・

       ねむねむさんの予想通りでした・・・

       何度も返信本当に有り難う御座いました。




    [132546] Re[4]: 別シートに低い価格順に販売された製品を抽出したい・・・-

    記事引用/メール受信=OFF■

    □投稿者/ asahishi -(2021/08/28(16:41))
    □U R L/

      早速の返信有り難う御座います。
      それとこちらの返信が遅れがちで済みません・・・
      こちらの情報が不足していたのが原因の様です・・・
      製品名等が入力されていないセルがあったかと思うのでそれが原因だと思われます・・・
      今ちょっと表を弄れる状況でないので今暫く確認に時間が掛かるかと思います・・・
      最短で明後日月曜日には実際の表を触れると思います・・・
      最終確認はもう少しお待ち下さい・・・
      済みません・・・




    [132545] Re[3]: 別シートに低い価格順に販売された製品を抽出したい・・・-

    記事引用/メール受信=OFF■

    □投稿者/ ねむねむ -(2021/08/27(15:11))
    □U R L/

      式を
      =IF(B5="","",IFERROR(VLOOKUP(B5,INDIRECT($G$2&"!J7:M100"),4,FALSE),""))
      としてみてくれ。
      考えられる可能性としては元データで製品名一覧で製品名が表示されていないところが
      空白セル(式も何も入力されていない)ではなく式で""になっていたり他の場所で""になっている所から
      コピー、値の貼り付けを行ったこと。
      個数が0で単価が空白だったのは上記の箇所で個数は空白セル、単価は""だったのでは?




    [132544] Re[2]: 別シートに低い価格順に販売された製品を抽出したい・・・-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ asahishi -(2021/08/27(14:58))
    □U R L/

      ねむねむさん早速の返信有り難う御座います。

      実際に表を使っている所での動作を確認しました。

      ただこちらの情報が不足していたせいか以下の個数の式に関して

      |=IFERROR(VLOOKUP(B5,INDIRECT($G$2&"!J7:M100"),4,FALSE),"")

      下にフィルコピーすると製品名が無い所に 0 が表示されるみたいでした・・・

      単価や製品名は大丈夫でした。

      式の意味がいまいち分かっていないせいもあってか取り合えず IF 文で 0 の時は
      表示しない様に変更しました・・・

      |=IF(IFERROR(VLOOKUP(B5,INDIRECT($G$2&"!J7:M100"),4,FALSE),"")<>0,IFERROR(VLOOKUP(B5,INDIRECT($G$2&"!J7:M100"),4,FALSE),""),"")

      式が長くなってしまいましたけど・・・

      日付名のシートのどの情報が 0 化させているのか少し気になるところですが・・・

      今回は本当に有り難う御座いました。




    [132543] Re[1]: 別シートに低い価格順に販売された製品を抽出したい・・・-

    記事引用/メール受信=OFF■

    □投稿者/ ねむねむ -(2021/08/27(13:58))
    □U R L/

      式は2016で確認したが2010でも使える関数のみなので2010でも大丈夫なはず。
      まず、集計シートのG2セルをシート名を求める作業セルとして使う。
      G2セルに
      =TEXT(D2*100+E2,"'0000")&F2&"'"
      と入力。
      次にB5セルに
      =IFERROR(INDEX(INDIRECT($G$2&"!J:J"),MOD(AGGREGATE(15,6,(INDIRECT($G$2&"!L7:L100")+ROW($7:$100)/1000)/((INDIRECT($G$2&"!M7:M100")<>"")*(INDIRECT($G$2&"!I7:I100")<>"合計")),ROW(A1)),1)*1000),"")
      と入力して下へフィルコピー。
      これはEnterのみでOK。
      単価は
      =IFERROR(VLOOKUP(B5,INDIRECT($G$2&"!J7:L100"),3,FALSE),"")
      個数は
      =IFERROR(VLOOKUP(B5,INDIRECT($G$2&"!J7:M100"),4,FALSE),"")
      で。
      なお上記式は元データが最大100行目としている。




    [132542] 別シートに低い価格順に販売された製品を抽出したい・・・-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ asahishi -(2021/08/27(12:54))
    □U R L/
      いつも質問ばかりで今回も質問になってしまうのですが宜しく御願いします・・・
      
      大体以下の様なシートを作成しています・・・
      
      主に使われる環境は Windows10 / Excel2019 になると思うのですが出来れば
      WindowsXP / Excel2010 辺りでも動作すると助かります・・・
      
      
      ・シート「0824(火)」の一部
      
          I      J        K      L    M     N
      
                               +----------------+
                               |    販売先1    |
        +--+------------+------+----+----+------+
       6|| 製品名一覧 |製造数|価格|個数|売上高|
        +--+------------+------+----+----+------+
       7| 1|製品1      |     8| 110|   3|   330|
        +--+------------+------+----+----+------+
       8| 2|製品2      |    11| 140|   3|   420|
        +--+------------+------+----+----+------+
       9| 3|製品3      |    11| 130|   3|   390|
        +--+------------+------+----+----+------+
      10| 4|製品4      |     5| 110|    |      |
        +--+------------+------+----+----+------+
                              ・
                              ・
                              ・
        +--+------------+------+----+----+------+
      48|42|製品42    |      | 130|    |      |
        +--+------------+------+----+----+------+
      49|43|製品43    |      | 130|    |      |
        +--+------------+------+----+----+------+・・・
      50|44|製品44    |      | 130|    |      |
        +---------------+------+----+----+------+
      51|     合計      |   208|   -|  30|  4360|
        +---------------+------+----+----+------+
      
      
      ・Sheet1 (2)
      
           B        C     D    E    F
        +--------+-----+----+----+----+
       2|令和    |  3年| 8月|24日|(火)|
        +--------+-----+----+----+----+
       3|        |     |    |    |    |
        +--------+-----+----+----+----+
       4|製品名  |     |    |単価|個数|
        +--------+-----+----+----+----+
       5|製品1  |     |    | 110|   3|
        +--------+-----+----+----+----+
       6|製品2  |     |    | 140|   3|
        +--------+-----+----+----+----+
       7|製品3  |     |    | 130|   3|
        +--------+-----+----+----+----+
       8|製品5  |     |    | 160|   3|
        +--------+-----+----+----+----+
       9|製品16|     |    | 150|   2|
        +--------+-----+----+----+----+
      10|製品17|     |    | 160|   2|
        +--------+-----+----+----+----+
      
      まず1つのファイル内(ブック?)に「0824(火)」の様に「日付(曜日)」という感
      じの名前のシートが多数存在します・・・
      
      日付名のシートの商品一覧ですが現状ではファイル(ブック?)毎には固定されて
      います・・・
      
      大抵ひと月分位ですが月を跨ぐ事もあると思います・・・
      
      この日付のシート群から特定の日付のシートを指定して個数が入力されている製品
      だけ抽出し更に単価が安い物から上に順番に並べて別シートに抽出したいのです・・・
      
      最終的には納品書にするみたいです・・・
      
      自分の力では個数が入力されている製品を抜き出す位が精一杯でした・・・
      
      自分が過去に請求明細書みたいな物を作成した事がありその時に作業用シートから
      個数が入力されている項目を抜き出す式をどこかから拾って来た事があったのでそ
      の式を流用しています・・・
      
      請求明細書では
      
      |=IFERROR(INDEX(作業用!B:B,SMALL(IF(作業用!D:D<>"",ROW(作業用!D:D)),ROW()-2)),"")
      
      みたいな式で抽出していたのですが(配列数式の為 CTRL + SHIFT + ENTER で決定
      しています・・・)これを抽出するシート名をセルの値から指定出来ないかと思い
      INDIRECT 関数を使ってみました・・・
      
      結果 Sheet1 (2) の B5 以降下に向かって
      |=IFERROR(INDEX(INDIRECT("'"&TEXT(D2,"00")&E2&F2&"'"&"!J:J"),SMALL(IF(INDIRECT("'"&TEXT(D2,"00")&E2&F2&"'"&"!M1:M50")<>"",ROW(INDIRECT("'"&TEXT(D2,"00")&E2&F2&"'"&"!M1:M50"))),ROW()-2)),"")
      
      と見苦しい式になってしまいました・・・(これも配列数式の為 CTRL + SHIFT +
       ENTER です・・・)
      
      単価の E 列は
      
      |=IFERROR(INDEX(INDIRECT("'"&TEXT(D2,"00")&E2&F2&"'"&"!L:L"),SMALL(IF(INDIRECT("'"&TEXT(D2,"00")&E2&F2&"'"&"!M1:M50")<>"",ROW(INDIRECT("'"&TEXT(D2,"00")&E2&F2&"'"&"!M1:M50"))),ROW()-2)),"")
      
      個数の F 列は
      
      |=IFERROR(INDEX(INDIRECT("'"&TEXT(D2,"00")&E2&F2&"'"&"!M:M"),SMALL(IF(INDIRECT("'"&TEXT(D2,"00")&E2&F2&"'"&"!M1:M50")<>"",ROW(INDIRECT("'"&TEXT(D2,"00")&E2&F2&"'"&"!M1:M50"))),ROW()-2)),"")
      
      みたいになっています・・・(いずれも配列数式で CTRL + SHIFT + ENTER です・・・)
      
      Sheet1 (2) の C2 等の年月日ですが数値だけが入力されていてセルの書式設定で
      ユーザー定義の種類の所が「0"年"」みたいな感じになっていて見た目上「3年」
      とかになっていますが入力されているのは数値だけです・・・
      
      曜日の所は
      
      |=TEXT(YEAR(VLOOKUP($B$2,OFFSET(作業用!$B$3,0,0,COUNTA(作業用!$B:$B)-1,3),3,FALSE))-1+$C$2&"/"&$D$2&"/"&$E$2,"(aaa)")
      
      みたいな式になっていてセルの書式設定の表示形式がユーザー定義の種類が (aaa)
      となっています・・・
      
      製品名・単価・個数の所の式を M:M みたいな指定にすると抽出に不要な合計部分迄
      引っ掛かってしまうみたいで M1:M50 と行番号を決め打ちする感じになって
      しまっています・・・
      
      M:M みたいな指定で合計部分を除外する方法があるならこれも知りたいです・・・
      
      長くなってしまいましたが上の様な日付名のシート群から指定した日付のシートの
      個数が入力されている製品だけ抽出し更に低い価格順に並べて出力するには
      どういう式を入れればいいのでしょうか・・・
      
      拙い説明にはなりますが不足している情報がある様でしたら補足しますので
      宜しくお願いします・・・



      ++++++++++++++++++++
      OS      ⇒OTHER
      Version⇒OTHER
      ++++++++++++++++++++



このトピック内容の全ページ数 / [0]

- Child Forum -
Edit:ゆう-G