プロが教えるわが家の防犯対策術!

プライスリストの価格についてですが、
品番と価格二つの項目がありますが、一部分商品の価格は値上げされたので、訂正したいのですが、商品は数千種類もあるので、どうやって5%値上げされた商品の価格を手間かからないように訂正できるのでしょうか?

「EXCELのデータの入れ替えについて」の質問画像

A 回答 (4件)

以下の手順です。


添付図参照です。データの配置も添付図のとおりとします。

◆手順
1.H3セルに『=IF(ISERROR(MATCH(A3,E:E,0)),B3,VLOOKUP(A3,E:F,2,0))』と入力して、H4セル以降の下方向にコピペします。
2.H列が修正後の値段になっているので、H3セル以降をコピーしてB3セルに値で貼付けます。

◆解説
MATCH関数でA列とE列を照合すると、値上げされていない品番は相手がいないのでエラーになります。
値上げされていないエラーの行はそのまま元の値段を読みます。値上げされたエラーでない行はVLOOKUP関数でE列F列から値上げ後の値段を読みます。
「EXCELのデータの入れ替えについて」の回答画像3
    • good
    • 0

先ず、


此のお題で MATCH構文を、
使い、

お示し 頂いた、
改定対象を 故意に、
削減し、

不具合隠しを 謀る、
等とは、
如何しても 容認し兼ねますね、

自戒ください。


質問者意図では、

昇順や、降順等を、
一切 気に掛ける、
必要無く、

時系列に 準じ、
発生した、
価格変動に 伴い、

例え、
同一品番の 価格改定が、
後から 現れようとも、

改訂意図を ストレス無く、
繁栄させる事で あって、

示されるものは、
全くもって、

此の 意図を、
汲めていないと、
するしか ないもの、

其の評価は -1万点ですね。


同胞の 回答者として、
元プロの ものとして、

恥ずかしさと、由々しさを、
感じる位です。


所で
マイナス評価から インスピレーションを、
受けて、
新方式の 式構造を、
編み出しました。


まぁ、
其処迄は 画期的でも、
ないのですがね。

一応、
著作権放棄は しません、

何処に 掲載された、
ものなのか、
其の際の 掲載アカウントが、
"nouble1"で あった事、
此等に付いて、
コメントを 制裁し続ける所を、
求めます。


違反する場合、
其れなりの 賠償等を、
求める場合が あります。


あのですね、
こうでも しないと、

此の形式を 継承した式を、

私が 私である事を、
証明しても 尚、

私が 起源である事を、
認められず、

間違いを 間違いと、
指摘しても、
耳も 傾けないのですよね。


其れ所が、
正気すら 疑われ出すのですよ、

実に、
此は きつい、

ご理解を くださいね。


さて、
前置きが 長くなりましたが、

一般式、
=IFERROR(OFFSET($E$2,-MIN(INDEX(($E$3:$E$32<>$A2)*10^10-ROW($A$1:$A$30),,)),1,1,1),$B2)


ファイル、
https://1drv.ms/x/s!AjviygfJDgV_3F22NYNBasfygJ8h


尚、
ファイルは 1度、
ローカルに 別名保存して、
其の保存ファイルを 扱うように、
してくださいね、

別名保存でないと、
意味が 無いですよ。


さすれば、
閲覧も、編集も、
叶うものと 思いますよ。

使うなら、理解した上でに、
してくださいね。


では、
構造ですが、

($E$3:$E$32<>$A2)*10^10-ROW($A$1:$A$30)
此の構造により、

該当しない項なら、
10^10が、

該当したならば、
最新データの 列番号×-1が、

返されます。


此を 元に、
OFFSET($E$2,-MIN(INDEX(($E$3:$E$32<>$A2)*10^10-ROW($A$1:$A$30),,)),1,1,1)
と する事により、

該当しない場合は エラーに、
該当する場合は、
其のデータを 読み出します。


更に、
IFERROR(OFFSET($E$2,-MIN(INDEX(($E$3:$E$32<>$A2)*10^10-ROW($A$1:$A$30),,)),1,1,1),$B2)
と する事により、

OFFSETが エラーを、
返す事を 利用して、

該当が 無い事を、
受け取り、

元データを 読む、
切っ掛けと しています。


如何でしょうか?

ご不明点が 残る場合、
其の旨、
お申し付け 頂ければ、

ご指示に 添い、
解説したく 思いますので、
宜しく お願いします。
「EXCELのデータの入れ替えについて」の回答画像4
    • good
    • 0

私がやるなら、ですが。


列番号が分からないので品番~値上げされた値段まででA列からF列とします。

C列にA列のコードをキーにしてEF列の範囲からVLOOKUP関数で値段を持ってきます。
当然、5や9の品番行には数値が入りますが他の行には#N/Aエラーが出ます。
オートフィルタでC列のエラーのみを抽出し上から下まで選択してデータをDELETEします。
これで、フィルタ解除するとC列には飛び飛びで値上げされた品番の値段だけが残ります。

C列をコピーしB列に、形式を選択して貼り付けで「値」を選択し下にある
□空白セルを無視する
にチェックを入れてOK

とすると値段がある部分だけ貼りついているかと思います。
    • good
    • 1

空いている列に、値上げされたリストの「品番」を、元のリスト側で該当するかを1品ずつ検査し、該当したら「1」を表示させる数式を入れる。


数式を入れた列にオートフィルタをかけて「1」の行だけを表示させる。
空いているセルに1.05を入力してそのセルをコピーする。
値段の列に対して1.05を「乗算して貼り付け」する。

端数が出るなら計算後にセルの表示を小数点以下を切り捨てるような処置をしましょう。


・・・別解・・・

空いているセルにIFERROR関数にVLOOKUP関数を入れて計算。
A列が品番、B列が価格
D列が価格改正の品番、E列が改正された価格
ならば、
C1セルに
 =IFERROR(VLOOKUP(A1,D:E,2,FALSE),B1)
と入力して、
C1セルを必要な行までコピーする。
その後、C列をコピーしてB列に「値として貼り付け」する。
「EXCELのデータの入れ替えについて」の回答画像1
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!