[[20200514114212]] 『「特定のページから各ページのセルを表示したい」』(ゆゆ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『「特定のページから各ページのセルを表示したい」』(ゆゆ)

「特定のページから各ページのセルを表示したい」

はじめまして、EXCEL初心者です。よろしくお願いいたします。
Sheet1に製作完了済のデータがあり、Sheet2、Sheet 4、Sheet 6に商品名などを表示させたいです。
毎月Sheet1にデータを貼り付けると、各ページのセルが表示されるようにしたいです。

Sheet1(300行くらいあります)一覧表

    A    B   C    D    E   F
1  商品名  材質 納品日 担当者 納品先 品番
2  パネル  P   5/1  山田  事務所  20
3  (空白)  K   5/1  山田  事務所  50
4  ローラ  F   0   山田  事務所  20
5  (空白)  P   5/10 山田  事務所  30
6  パネル  J   5/3  佐藤  施設B  20
7  ライト  P   5/1  佐藤  施設B  20
8  ローラ  P   5/1  加藤  農園   40
:  :   :   :   :   :   : 
100 パネル  P   5/1  山田  事務所  20
101 パネル  P   5/1  山田  事務所  20
:  :   :   :   :   :   : 
 毎月、行列と最終行は変動します

        ↓↓結果↓↓

 Sheet2(50〜100行くらいあります)
    A    B    C   D   E
1  パネル   P   5/1  山田
2  付属品   K   5/1  山田
3  説明書   P   5/10  山田
4  パネル   P   5/1  山田
5  パネル   P   5/1  山田
:  :    :   :    : 
:  :    :   :    : 
50 事務所              【1/2】
―――――――――印刷範囲ここまで――――――――――――

            空白

―――――――――印刷範囲ここまで――――――――――――

    A    B   C    D    E
100  :   :   :   :    
101  :   :   :   :    
    :   :   :   :    
    :   :   :   :    
150 事務所               【2/2】

・A列50行と150行には、納品先が入力固定された状態
 (Sheet4には施設B、Sheet6には農園)
・印刷範囲を超える場合のみ
 Sheet2、4、6 のE列50行と150行には、【1/2】【2/2】手入力しています

【実現したいこと】
・Sheet1一覧表の行列や最終行は、毎月変動するため自動的に取得したい
・Sheet2、4、6納品先と一致しているデータのみ各セルに表示
 ランダムに表示されているSheet1 E行(納品先)を上から順に表示
 最終的に印刷するためA49以降は、A100へ自動的に移動してほしい
 可能であればA100へ移動した際に自動で【1/2】【2/2】も表示させたい
・商品名が空白であれば
 F行が50なら付属品、30なら説明書と表示したい
・納品日が「0」は表示しないようにしたい

説明が下手ですみません。

=IFERROR(INDEX や OFFSET 、MATCH(LARGE ,,,COUNTなど
色々と試行錯誤しているのですが、なかなか良い数式が組めません。
お恥ずかしながら、マクロを組んだことが無いので
出来れば関数で教えていただけると幸いです。どなたかよろしくお願いいたします。

< 使用 Excel:Office365、使用 OS:unknown >


 >A列50行と150行には、納品先が入力固定された状態

 この部分はフッターで対応できないんですか?

(コナミ) 2020/05/14(木) 12:13


何度か試してみましたが、フッターでの対応はできませんでした。
印刷時に専用の用紙を使用するのですが
どうして印刷時にもマス目にずれが生じてしまいます…

(ゆゆ) 2020/05/14(木) 13:29


何度もすみません…。
追加で実現させたいことを記載させていただきます。
※これは、もし実現したら嬉しいな、くらいな感じです。

基本的には、Sheet1の一覧表には

    A    B   C    D    E   F
1  商品名  材質 納品日 担当者 納品先 品番

この状態なのですが、ごく稀に
BとDが入れ替わっている場合があります。

もし可能であれば1行目の単語を読み取って、自動で反映してくださると
とても有難いです。。。
(ゆゆ) 2020/05/21(木) 15:42


 数式が長くなるので、名前定義を活用してスリム化を図ります。

 Ctrl + F3キー押下で名前定義ダイアログを出し、以下の定義を行う。
 ※名前のアルファベットは半角にしてください。

 <名前>   <参照範囲ボックスに下式を入力>

 上終          =IFERROR(AGGREGATE(15,6,ROW(Sheet1!$C$2:$C$400)/((Sheet1!$C$2:$C$400<>0)*(Sheet1!$E$2:$E$400=!$A$50)),49),400)
 下A           =INDEX(Sheet1!$A:$A,上終+1):Sheet1!$A$400
 下BD          =INDEX(Sheet1!$B:$B,上終+1):Sheet1!$D$400
 下C           =INDEX(Sheet1!$C:$C,上終+1):Sheet1!$C$400
 下E           =INDEX(Sheet1!$E:$E,上終+1):Sheet1!$E$400
 下F           =INDEX(Sheet1!$F:$F,上終+1):Sheet1!$F$400
 上A           =Sheet1!$A$2:INDEX(Sheet1!$A:$A,上終)
 上BD          =Sheet1!$B$2:INDEX(Sheet1!$D:$D,上終)
 上C           =Sheet1!$C$2:INDEX(Sheet1!$C:$C,上終)
 上E           =Sheet1!$E$2:INDEX(Sheet1!$E:$E,上終)
 上F           =Sheet1!$F$2:INDEX(Sheet1!$F:$F,上終)

 各シートに以下の数式を入力する

 (1) A1  セル  =IF(B1="","",FILTER(IF(上A="",IF(上F=50,"付属品",IF(上F=30,"説明書","")),上A),(上E=$A50)*(上C<>0),""))
 (2) B1  セル  =SORTBY(FILTER(上BD,(上E=A50)*(上C<>0),""),MATCH(Sheet1!$B$1:$D$1,{"材質","納品日","担当者"},0))

 (3) A100セル  =IF(B100="","",FILTER(IF(下A="",IF(下F=50,"付属品",IF(下F=30,"説明書","")),下A),(下E=$A50)*(下C<>0),""))
 (4) B100セル  =SORTBY(FILTER(下BD,(下E=A50)*(下C<>0),""),MATCH(Sheet1!$B$1:$D$1,{"材質","納品日","担当者"},0))

 (5) E50 セル  =IF(A100="","","【1/2】")
 (6) E150セル  =IF(A100="","","【2/2】")

(半平太) 2020/05/21(木) 21:31


ありがとうございます。
参考にしながら、入力していこうと思います。
おふたりとも、本当にありがとうございました(*^^*)
(ゆゆ) 2020/05/22(金) 17:30

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.