[[20230306181355]] 『プルダウンを使った合計見積書作成のイメージにつ』(fammy) ページの最後に飛ぶ

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

 

『プルダウンを使った合計見積書作成のイメージについて』(fammy)

Excelのプルダウンの可能性と応活用に関してご教示ください。

シート1では見積書の印刷雛形と、プルダウンによる入力をする物とします。

シート2以降は下記のようなイメージです。

シート2:シート名「八百屋」
 データ内容(テーブル)は1行目トップは「項目」「価格」というインデックス文字のみで、
 2行目から縦列A,Bは以下のような並び
 キャベツ 250
 大根   300
 ゴボウ  150

シート3:シート名「果物屋」
 データ内容(テーブル)は1行目トップは「項目」「価格」というインデックス文字のみで、
 2行目から縦列A,Bは以下のような並び
 りんご 100
 バナナ 200
 なし  50
 すいか 500

シート4:シート名「金物屋」
 データ内容(テーブル)は1行目トップは「項目」「価格」というインデックス文字のみで、
 2行目から縦列A,Bは以下のような並び
 かなづち 1000
 ペンチ  1500
 バケツ  600
 ブラシ 700

このようにシート2〜以降はカテゴリ別の店名と、そこで扱っている商材及び標準価格の一覧表となっています。

これを元にシート1では、ユーザがまず最初に(店名選択として)シート名のプルダウンを選択し、
扱う店名を確定させた後、右隣のプルダウンでは選択したシート名の店名でのみ扱われている商品の一覧を、さらにプルダウンで選択します、そして選択した後はその右隣に選択した商品の標準価格が自動転記されるように組みたいのですが、そもそもシート名をプルダウンメニューで選択させ、その選択したシート名に存在するデータテーブルのプルダウンを行った後にindex(tablename,,1)のように価格データを反映させる手法が解り兼ねています。

シート2以降の各シートはシート自体(店名・カテゴリ)が追加されたり削除されるケースがあります。
また同様にシート2以降の各シートのデータ内容(行)も追加削除など更新される事にになります。

相応にググって見たのですが、本件とがっちするような情報が無く困っている次第です。
Excelに豊富な知見をお持ちの方にご教示戴きたくお願い致します。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


 まずシートを分けるって考え捨てませんか?
 こんな感じの表にしておいたほうが、追々楽ですよ
     |[A]   |[B]     |[C] 
 [1] |取扱店|品名    |価格
 [2] |八百屋|キャベツ| 250
 [3] |八百屋|大根    | 300
 [4] |八百屋|ゴボウ  | 150
 [5] |果物屋|りんご  | 100
 [6] |果物屋|バナナ  | 200
 [7] |果物屋|なし    |  50
 [8] |果物屋|すいか  | 500
 [9] |金物屋|かなづち|1000
 [10]|金物屋|ペンチ  |1500
 [11]|金物屋|バケツ  | 600
 [12]|金物屋|ブラシ  | 700

 見積もりのほうは
    |[A]   |[B] |[C] 
 [1]|取扱店|品名|単価
 [2]|八百屋|大根| 300
 こんな感じになっているとして、
 A2は3種類しかないなら単純にデータの入力規則-リストに
 八百屋,果物屋,金物屋
 と手打ち

 B2はSheet2に表があるとして入力規則-リストに
 =OFFSET(Sheet2!B1,MATCH(A2,Sheet2!A:A,0)-1,,COUNTIF(Sheet2!A:A,A2))
 これでA2と連動してプルダウン

 C2=VLOOKUP(B2,Sheet2!B:C,2,0)

 ただし、A2が書き換えられても、B2は書き換わらないから、動的に削除したい場合はマクロが必要です。
(稲葉) 2023/03/06(月) 18:52:45

稲葉さん、早速のコメントありがとうございます。

>まずシートを分けるって考え捨てませんか?

例示では「八百屋」「果物屋」「金物屋」の3シートとしましたが、実際にはこれらの「仕入先」相当のシートが20社以上有り、商品数も各仕入先で30点以上あるのです。
つまり・・・

>こんな感じの表にしておいたほうが、追々楽ですよ

・・・という表にすると、仕入先と商品一覧が相当行の大きなシートになってしまい、かつ、仕入先毎の単価一覧シートの印刷なども印刷範囲を都度限定したりしなければならず、大変なので「仕入先シート」分割という手法にした次第です。

各仕入れ先シートのフォーマットに関しては統一されており、
「項目」「標準単価」「備考」のみの存在で、これらの仕入先データテーブルには名前を付けyaoya_area,kudamono_area等の名前付けは行ってあります。

ブック内の各シート名一覧をプルダウン選択した後に、その選択結果シートのデータ内容を更にプルダウンで選択して単価の転記がしたいのですが、VBAマクロなどを使わず、計算式や設定のみでは困難な話でしょうか?
(fammy) 2023/03/07(火) 11:11:56


 >・・・という表にすると、仕入先と商品一覧が相当行の大きなシート
 大きくていいじゃないですか。
 必要な時に必要な情報をフィルターなどで出す仕組みがあるんですから。
 追加も一番下の行に追加して、並び替えすればいいだけだし、
 削除も行単位で行えば何の問題もないかと。

 >仕入先毎の単価一覧シートの印刷なども印刷範囲を都度限定
 これは動的に計算式で変更できます。

 >単価の転記
 転記=「表示」のことですか?
 値をコピーすることですか?
 表示なら数式、値のコピーならVBAになります。

 VBAなしにできること(1シートにした場合)
 ・仕入先のプルダウンを重複しないリストに動的に変更する 作業列を用意することで計算式で可能
 ・品名のプルダウンを店名で絞る(但し、仕入先順に並び替えがされていて、空行がないこと)
 ・仕入先ごとの単価一覧の印刷範囲を動的に絞る

 VBAでしかできないこと
 ・品名を入力した状態で、仕入先を変更したときに、品名をクリアする

 VBAを使ったら簡単になること
 ・仕入先のプルダウンを重複しないリストに動的に変更する
 ・品名のプルダウンを店名で絞る 並び替えも空行も問題なし

(稲葉) 2023/03/07(火) 11:44:06


 訂正
 >VBAなしにできること(1シートにした場合)
 >・仕入先のプルダウンを重複しないリストに動的に変更する 作業列を用意することで計算式で可能
 >・品名のプルダウンを店名で絞る(但し、仕入先順に並び替えがされていて、空行がないこと)
 〜〜
 > VBAを使ったら簡単になること
 >・仕入先のプルダウンを重複しないリストに動的に変更する
 >・品名のプルダウンを店名で絞る 並び替えも空行も問題なし

 この部分はパワークエリで簡単にできそうです。
 ただし、データの変更があった場合は、手動でクエリを更新するか、一定時間ごとに自動でクエリを更新掛けるかしないといけないです。
https://analytic-vba.com/power-query/tips-power-query/non-duplicated-list/

 パワークエリほんと便利だなぁ・・・
(稲葉) 2023/03/07(火) 12:37:33

稲葉さん、再度のコメントありがとうございます。

>>・・・という表にすると、仕入先と商品一覧が相当行の大きなシート
> 大きくていいじゃないですか。
> 必要な時に必要な情報をフィルターなどで出す仕組みがあるんですから。
> 追加も一番下の行に追加して、並び替えすればいいだけだし、
> 削除も行単位で行えば何の問題もないかと。

ごめんなさい、説明不足でした。
私はこの見積もり表を作成する立場ですが、実際の利用者はExcel初心者で、フィルターやソートなどの機能を使えるレベルでは無いのです。
そのため、見積書に関しては項目・内容をプルダウンで選択させ、数量のみ手入力させる方式にしたいのです。

>>仕入先毎の単価一覧シートの印刷なども印刷範囲を都度限定
>これは動的に計算式で変更できます。

先に述べた理由から、単価一覧シートは仕入れ先毎にしておいたほうが、
実際の利用ユーザには解り易いと考えました。

>>単価の転記
> 転記=「表示」のことですか?
> 値をコピーすることですか?
> 表示なら数式、値のコピーならVBAになります。

失礼しました、こちらは「表示」です。
Sheet1の見積書上に取引先とその取り扱い項目を各々プルダウン選択した後に、単価が表示されれば良いだけです。
(その後、数量は手入力で、単価×数量は計算式で表示、縦計や消費税なども全て計算式で表示されるパターンです)

> VBAなしにできること(1シートにした場合)
> ・仕入先のプルダウンを重複しないリストに動的に変更する 作業列を用意することで計算式で可能

先に述べた理由から取引先シートは複数にしたいのです。

> ・品名のプルダウンを店名で絞る(但し、仕入先順に並び替えがされていて、空行がないこと)

複数シートであった場合、各々のシートにおいてデータエリアに「空行不可」は運用ルールとして適用可能です。

> ・仕入先ごとの単価一覧の印刷範囲を動的に絞る

こちらも複数シートありきでの可能性を模索している次第です。

> VBAでしかできないこと
> ・品名を入力した状態で、仕入先を変更したときに、品名をクリアする

ここまでは考えてなかったのですが、言われてみればこういう仕組みがあれば便利ですね。

> VBAを使ったら簡単になること
> ・仕入先のプルダウンを重複しないリストに動的に変更する
> ・品名のプルダウンを店名で絞る 並び替えも空行も問題なし

仕入先に関しては「複数シートありき」でご教示戴きたくお願い致します。
(fammy) 2023/03/07(火) 13:04:24


 私もパワークエリ初挑戦なので、お手柔らかにお願いしますね。

 ★一覧表シートの作成
 1)各仕入先の範囲をテーブルとして書式設定し、テーブル名を「T八百屋」「T果物屋」のように
   Tから始まるテーブル名に設定してください。
   逆に、仕入先シート以外のテーブルに、Tの文字は使用しないでください。
   変更後にファイルを上書き保存してください。
 2)データ>データの取得>その他のデータソース>空のクエリを選択してください。

 3)エディターが開いたら、ホーム>詳細エディターを開き、以下のコードをコピペしてください。
	let
	    ソース = Excel.CurrentWorkbook(),
	    並べ替えられた列 = Table.ReorderColumns(ソース,{"Name", "Content"}),
	    フィルターされた行 = Table.SelectRows(並べ替えられた列, each Text.StartsWith([Name], "T")),
	    #"展開された Content" = Table.ExpandTableColumn(フィルターされた行, "Content", {"項目", "標準単価", "備考"}, {"Content.項目", "Content.標準単価", "Content.備考"}),
	    置き換えられた値 = Table.ReplaceValue(#"展開された Content","T","",Replacer.ReplaceText,{"Name"})
	in
	    置き換えられた値

 4)右側のクエリの設定直下にある、クエリの名前を「PQ一覧」としてください。
 5)ホーム>閉じて読み込むをクリックすると、新しいシートにクエリで接続したテーブル情報が出力されます。

 ★仕入先の重複しないリストの作成
 6)1)〜2)を繰り返して、空のクエリを作ってください。
 7)エディターのホーム>詳細エディターを開き、以下のコードをコピペしてください。
	let
	    ソース = Excel.CurrentWorkbook(),
	    PQ一覧 = ソース{[Name="PQ一覧"]}[Content],
	    Name = PQ一覧[Name],
	    削除された重複 = List.Distinct(Name)
	in
	    削除された重複
 8)右側のクエリの設定直下にある、クエリの名前を「PQ仕入先一覧」としてください。

 ★見積書シートに仕入先一覧のプルダウンボックスを作る
 9)仕入先のプルダウンを表示させたいセルの入力規則>リストに
   =INDIRECT("PQ仕入先一覧[PQ仕入先一覧]")
   と入力してください。

 見積書シートの様式が分からなかったので、とりあえずここまでです。
 ここまで準備できたら、動的なプルダウンの作成と単価の取得に移ります。
(稲葉) 2023/03/07(火) 14:46:35

稲葉さん、おつきあいいただきありがとうございます。

> ★仕入先の重複しないリストの作成
> 6)1)〜2)を繰り返して、空のクエリを作ってください。

の部分で手詰まりとなりました。
カレントシート八百屋で実行すると、「PQ一覧」というシートが新規作成されましたが、「1)〜2)を繰り返して」の意味が解らず、同じ事をすると
「PQ一覧」は既に存在している・・旨のエラーでExcelに怒られました。
読み替えるべき部分があるのか等、理解できずですみません。
とりあえず「繰り返して」の前までの作成結果を、
自鯖のワークエリアの下記に保管してみました。

https://www.feelkind.com/~halcom/temp/excel/mitsumori.xlsm

>見積書シートの様式が分からなかったので

左端シート「見積一覧表」シートにイメージを追加してあります。

1.基本としてプルダウン等の操作は「見積一覧表」シート上で行います。

1.1列目の「仕入れ先名」列はプルダウン選択で、仕入れ先(別シート)名をプルダウンで選択出来る事とします。

2.2列目の「項目」は1列目でプルダウン選択した仕入れ先(別シート)名のシートに存在している(商品)「項目」のみがプルダウンで選択出来るように表示されてほしいです。

3.1,2列目のプルダウン選択が完了した時点で、「見積一覧表」の単価欄に、選択されたシートの項目に存在する単価が表示されてほしいです。

ユーザ(操作者)は原則としてほぼ「見積一覧表」シート以外は触りません。
「見積一覧表」シートでプルダウンして当該仕入れ先とその商品を選択する事で単価が表示されることが重要です。

このケースは「見積書」というより「積算書」といったほうが良いのかも知れません。

ご苦労かと恐縮なのですが、何卒ご教示戴きたくお願い致します。

(fammy) 2023/03/07(火) 16:29:26


 ★6)の指示事項について、誤り訂正
 6)の部分、私の間違えですごめんなさい。
 1)の名前付けは無視して、6)部分は2)の空のクエリ作成から始めてください。

 ★パワークエリのコードについて(コード修正もあるので、最後まで読んでからお願いします)
 > 3)エディターが開いたら、ホーム>詳細エディターを開き、以下のコードをコピペしてください。
 の ”ホーム>詳細エディターを開き”部分のやり方が間違っています。

 fammyさんがコピペしたのはfx(関数)を入力するところです。
 いまいち見やすいサイト見つからなかったのですが、
https://excel-excellent-technics.com/excel-powerquery-detailseditor-9347
 |その詳細エディターというのが下図のような感じ。
 と紹介されている図を見て確認いただけますか?

 ★コードの修正
 新しいブックで1からやり直してほしいのと、
 テーブルに空白があったので、3)のコードは以下のコードに差し替えてください。

	let
		ソース = Excel.CurrentWorkbook(),
		並べ替えられた列 = Table.ReorderColumns(ソース,{"Name", "Content"}),
		フィルターTから始まるName = Table.SelectRows(並べ替えられた列, each Text.StartsWith([Name], "T")),
		Tを空白に置き換え = Table.ReplaceValue(フィルターTから始まるName,"T","",Replacer.ReplaceText,{"Name"}),
		#"展開された Content" = Table.ExpandTableColumn(Tを空白に置き換え, "Content", {"項目", "標準単価", "備考"}, {"Content.項目", "Content.標準単価", "Content.備考"}),
		フィルター項目が空白以外 = Table.SelectRows(#"展開された Content", each [Content.項目] <> null and [Content.項目] <> "")
	in
		フィルター項目が空白以外

 ★見積書のプルダウンについては、承知しました。
 すでに準備できているので、まずパワークエリから頑張りましょう。

(稲葉) 2023/03/07(火) 16:56:50


 残りも書いておきます。
 あと、いただいたエクセル表では、項目名が「標準単価」ではなく、「単価」になっていたので、
 パワークエリの名称を直すか、元の表を直すかご対応ください。

 ★仕入先リスト
 見積一覧表シート B3:B16を選択して入力規則-リストに
 =PQ仕入先一覧!$A$2:$A$5 ←テーブルタイトルを除く行から、※テーブルで範囲指定されている行の最後まで
 または
 =INDIRECT("PQ仕入先一覧[PQ仕入先一覧]")
            ^^^^^^^^^^^^ ^^^^^^^^^^^^
          テーブル名[フィールド名]
https://it.sifr.me/study/excel-table-as-source-for-data-validation-list/

 ★仕入先に連動する項目リスト
 オフィスのバージョンが買い切りの2019で見てます。(=Filter関数などが使えない想定)
 C3:C16を選択して入力規則-リストに
 =OFFSET(INDEX(PQ一覧!$B$2:$B$17,MATCH(B3,PQ一覧!$A$2:$A$17,0)),0,0,COUNTIF(PQ一覧!$A$2:$A$17,B3))
 ↑のPQ一覧!$B$2:$B$17は、※テーブルで範囲指定されている行の最後まで

 ※入力規則に、直接テーブル形式の参照は使えないが、テーブルの範囲を指定しておくと
  テーブルの範囲拡張に追随して、参照範囲を拡張してくれる。
https://forest.watch.impress.co.jp/docs/serial/exceltips/1337483.html

 ★単価の表示
 D3=VLOOKUP(C3,PQ一覧!B:C,2,0) 
 でPQ一覧の項目名から単価を表示できます。
 ただし、別のシート(仕入先)で同じ項目があった場合、先に表示されたデータの単価のみしか拾えません。

 ★パワークエリの自動更新
 作成した二つのパワークエリ範囲のセルをクリックすると、右側にクエリ一覧が表示されます。
 表示されたクエリを右クリックして、プロパティ→「定期的に更新する」にチェックを入れて、時間を指定すると更新できます。
 「ファイルを開くときにデータを更新する」のチェックも入れておいたほうがいいと思います。
 それぞれのクエリで設定する必要があるので、忘れずに設定してください。

http://officetanaka.net/excel/function/GetAndTransform/18.htm

 ★補足
 パワークエリさえ設定できてしまえば、あとは仕入先が追加になった場合も、
 シートを追加して、Tから始まるテーブル名をつけてあげれば、自動で一覧表に追加されます。
 例えば万屋シートを作って、「T万屋」のテーブル名をつけてクエリを更新すると、
 PQ一覧に表示されます。

 今日はもう返事できないかもしれないので、ここまででお願いします。
(稲葉) 2023/03/07(火) 17:50:02

稲葉さん、再度のコメントありがとうございます。

> 1)の名前付けは無視して、6)部分は2)の空のクエリ作成から始めてください。

了解しました。

> の ”ホーム>詳細エディターを開き”部分のやり方が間違っています。

(snip)

https://excel-excellent-technics.com/excel-powerquery-detailseditor-9347
> |その詳細エディターというのが下図のような感じ。
> と紹介されている図を見て確認いただけますか?

なるほど、詳細エディターからの入力をするのですね。

> 新しいブックで1からやり直してほしいのと、

再度「mitsumori2.xlsm」というブックを作成し、
スケルトン的にデータとテーブルを作っておきました。
以降の操作はこのブック上で行っています。

> テーブルに空白があったので、3)のコードは以下のコードに差し替えてください。

(snip)

クエリ1と表示されたウインドウでご教示戴いたコードを入力「完了」すると、
「Power Query エディター」に戻りました。
この時の画面は下記です。

(プロパティ「クエリ1」の名前を「PQ一覧」に修正するのを忘れ、何度かやり直しました)

この後「ホーム>閉じて読み込むをクリック」すると、左端の「見積一覧表」シートの
更に左に「PQ一覧」というシートが作成され表示されました。
この時の画面は下記です。

> あと、いただいたエクセル表では、項目名が「標準単価」ではなく、「単価」になっていたので、
> パワークエリの名称を直すか、元の表を直すかご対応ください。
新しく作成した「mitsumori2.xlsm」では全シートの「単価」という語を「標準単価」に修正しました。

> ★仕入先リスト
> 見積一覧表シート B3:B16を選択して入力規則-リストに
> =PQ仕入先一覧!$A$2:$A$5 ←テーブルタイトルを除く行から、※テーブルで範囲指定されている行の最後まで
> または
> =INDIRECT("PQ仕入先一覧[PQ仕入先一覧]")

ここでハマりました。
「見積一覧表シート」が存在していませんでした。
文章の読解力が不足していて誤読しているのかも知れません、申し訳ありません。

先にご教示戴いていた・・

> ★仕入先の重複しないリストの作成
> 6)1)〜2)を繰り返して、空のクエリを作ってください。

・・は、今回の変更で

> ★6)の指示事項について、誤り訂正
> 6)の部分、私の間違えですごめんなさい。
> 1)の名前付けは無視して、6)部分は2)の空のクエリ作成から始めてください。

とありましたが、各仕入れ先シートにはテーブル定義を作成しないということでしょうか?
でもそれだとその後の「PQ一覧」などが正しく作成出来ないような気がします。

> 7)エディターのホーム>詳細エディターを開き、以下のコードをコピペしてください。
> let
> ソース = Excel.CurrentWorkbook(),
> PQ一覧 = ソース{[Name="PQ一覧"]}[Content],
> Name = PQ一覧[Name],
> 削除された重複 = List.Distinct(Name)
> in
> 削除された重複
> 8)右側のクエリの設定直下にある、クエリの名前を「PQ仕入先一覧」としてください。

の部分が「PQ仕入れ先一覧」の作成に関わる部分だと思うのですが、
こちらは・・・

> ★パワークエリのコードについて(コード修正もあるので、最後まで読んでからお願いします)
> > 3)エディターが開いたら、ホーム>詳細エディターを開き、以下のコードをコピペしてください。
> の ”ホーム>詳細エディターを開き”部分のやり方が間違っています。

・・・でご指摘いただいた手法で、「PQ一覧」の作成時と同様に、
「データ」->「データの取得」->「その他のデータソースから」->「空のクエリ」->「詳細エディタ」
の導線にて入力すれば良かったのでしょうか?

(とりあえずやってみました)

> 残りも書いておきます。

の章から、入力規則、リストの設定として

> ★仕入先リスト
> =INDIRECT("PQ仕入先一覧[PQ仕入先一覧]")

は正しく動いているように見えますが、

> ★仕入先に連動する項目リスト
> =OFFSET(INDEX(PQ一覧!$B$2:$B$17,MATCH(B3,PQ一覧!$A$2:$A$17,0)),0,0,COUNTIF(PQ一覧!$A$2:$A$17,B3))

こちらはおかしな事になっています。


ご教示戴いている内容の正しい流れを誤読してしまっているようにも思えます。

大変恐縮ですが、再度正しい流れを順を追ってご教示戴けませんでしょうか?

ちなみに、この時点までのExcelは下記になります。
https://www.feelkind.com/~halcom/temp/excel/mitsumori20230308AM.xlsm

> オフィスのバージョンが買い切りの2019で見てます。(=Filter関数などが使えない想定)

はい、オフィス(Excel)は2019を利用しています。

物わかりが悪くて本当に申し訳ないのですが、今しばらくご教示いただきたくお願い致します。

(fammy) 2023/03/08(水) 11:43:43


画像はどうやって貼り付けたん。
(画像) 2023/03/08(水) 12:10:51

 >> ★仕入先に連動する項目リスト
 >> =OFFSET(INDEX(PQ一覧!$B$2:$B$17,MATCH(B3,PQ一覧!$A$2:$A$17,0)),0,0,COUNTIF(PQ一覧!$A$2:$A$17,B3))
 >こちらはおかしな事になっています。
 リスト入力するところに、[空白]=Offset になってましたよ。空白消したら素直に表示されました。
 _=OFFSET(
 ↑この部分
 Wiki整形ルールで行頭に空白入れているので、お気をつけ下さい。

 他は大丈夫そうだけど・・・
(稲葉) 2023/03/08(水) 12:19:57

 画像さん、ページ上部にある差分ボタンで見ればわかるが

 https://www.feelkind.com/~halcom/temp/excel/fig3.jpg
 とURLが書かれている。
 上記のURLは頭に半角スペースを入れているために文字列となっている。
 行の先頭から始めるか頭に半角スペース以外の文字があると画像表示になるようだ。
 下記は
 あいうえおhttps://www.feelkind.com/~halcom/temp/excel/fig3.jpg
 を先頭スペースなしで書き込んでいる。
あいうえお
(ねむねむ) 2023/03/08(水) 12:56:41

稲葉さん、追加コメントありがとうございます。

まず、「単価」を「標準単価」に、し忘れてた部分があったようなので修正しました。

また誤読もあったようなので、再度ご教示戴いた内容を熟読し、入れ込んでみました。

>>こちらはおかしな事になっています。
> リスト入力するところに、[空白]=Offset になってましたよ。空白消したら素直に表示されました。
> _=OFFSET(

確認しました、すみません、修正したら正しく動作しました。

> ★単価の表示
> D3=VLOOKUP(C3,PQ一覧!B:C,2,0) 

#N/Aエラーを防ぐ為に「D3=IF(C3<>"",VLOOKUP(C3,PQ一覧!B:C,2,0),"")」としてみました。

以上を適用した物が下記です。

https://www.feelkind.com/~halcom/temp/excel/mitsumori20230309PM.xlsm

これで大丈夫そうでしょうか?

テーブルシートの追加も試してみました。
「車屋」シートを追加、「T車屋」テーブルを追加して、一旦保存、再読み込みしたらプルダウンに車屋も登場して価格表示が出来るようになりました。

https://www.feelkind.com/~halcom/temp/excel/mitsumori20230309PM2.xlsm

どうやら希望通りの挙動になっていると思います。

>画像はどうやって貼り付けたん。

特に意識してなかったのですが、インターネット上の自鯖に上記Excelブックの提示URLと同様に、.jpgの画像ファイルを置いてそのURLを書いたら、こちらのQAシステムが自動的に変換表示してくれるように思えます。

一般的な画像アップローダ等でも、URLにアクセスするとダイレクトに画像が表示されるような時には同様に実画像表示となるのかも知れません。

実は先ほど一旦コメント記載したのですが、プレビュー後に保存し忘れ、本コメントは再度書いてます(^^;)
何か書き忘れ等がないと良いのですが。。

先に見た際は、クエリの更新(自動更新?)に関してのご教示もあったように見えたのですが、
今見ると無くなっています(何故?)

導線がクエリを選択して右クリック・・・とされていましたが、
この手法では出ない模様です。
リボンの「クエリ」メニューからプロパティを選択したらたどり着けたようです。

本件、これで完成したと思って良いでしょうか?

これでクローズできるようならご丁寧なご教示をいただき大変感謝しております。
本当にどうもありがとうございました。

何か追加のツッコミがあれば再度ご教示戴ければ幸いです。

(fammy) 2023/03/09(木) 16:10:53


 一応これで終わりのつもりだったんですが、あとは実際に動かしてみて、過不足あればってところです。

 ただ、項目名でVLOOKUPで単価取得しているので、本当に八百屋と果物屋でだぶりないですよね?
 八百屋と果物屋に いちご があれば、より左側のシートの八百屋からの価格しかとらないように
 なってますけど、大丈夫ですよね?

 そこだけ心配です。
(稲葉) 2023/03/09(木) 16:16:40

稲葉さん、早速のご返信ありがとうございます。

>一応これで終わりのつもりだったんですが、あとは実際に動かしてみて、過不足あればってところです。

現時点では過不足等は無いと思っています。
現実的なシートに組み入れて調整しましたが、今のところ問題無さそうです。

>本当に八百屋と果物屋でだぶりないですよね?
>八百屋と果物屋に いちご があれば、より左側のシートの八百屋からの価格しかとらないようになってますけど、大丈夫ですよね?

はい、制限事項として考えます。
実際には仕入れ先は八百屋と果物屋というより、八百屋と文具屋ぐらいの相違があるので同一品目は多分無いですし、あり得た場合には品名を括弧書きなど、何らかの相違製を持たせるようにして運用してみます。

今回は本当に御世話になりありがとうございました。
改めてお礼申し上げます_(_ _)_

追伸:
このシステム、一般的な積算表として多方面の方が使えるように思います。
もし何らかの機能拡張など施せるようであれば別途ご検討頂ければ幸いです。
(fammy) 2023/03/09(木) 18:03:20


 いやいやいやいや・・・
 シート分けて管理するなんて本来ありえないし
 テーブル名を決められた名前にするとか作った人以外まずわからなくなりますよ。
 本来は定型フォーマットを集計するような使い方が一般的でしょうし・・・
https://youseful.jp/microsoft/excel/powerquery-1/

 インプット用のデータベースは、やはり一つの表にまとめて管理がいいと思います。
 そうすればこんなまどろっこしいことしないで済むし。
 入力も標準機能使えばできないこともない気がします。
https://www.pc-koubou.jp/magazine/31560

 次に躓いたときはご検討ください。
(稲葉) 2023/03/09(木) 18:15:28

>シート分けて管理するなんて本来ありえないし
意味わかんねー。

(わかんね) 2023/03/09(木) 20:48:57


コメント返信:

[ 一覧(最新更新順) ]


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