[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『文字列を計算したい』(社畜の血)
シート1 計算シート
A B C D E F
1 バナナ 田中 仕入れ/0.8 100 200 125
2 さくらんぼ 林 定価*1.2 100 200 240
3 りんご 山田 仕入れ/0.9 100 200 111
4 バナナ 田中 仕入れ/0.8 100 200 125
5 ライチ 大谷 定価*1.3 100 200 260
6 ライチ 大谷 定価*1.3 100 200 260
7 マンゴー 鈴木 仕入れ/0.9 100 200 111
8 パパイヤ 筒香 仕入れ/0.8 100 200 125
シート2 青果店一覧
A B C
1 バナナ 田中
2 さくらんぼ 林
3 りんご 山田
4 洋ナシ 岸田
5 ライチ 大谷
6 パパイヤ 筒香
7 マンゴー 鈴木
8 みかん 田中
シート3 価格付けメモ
A B C
1 田中 仕入れ/0.8
2 林 定価*1.2
3 山田 仕入れ/0.9
4 岸田 仕入れ/0.7
5 大谷 定価*1.3
6 筒香 仕入れ/0.8
7 鈴木 仕入れ/0.9
お世話になっております
よろしくお願いします
現状
A列は品物、B列は青果店名、C列は価格付けのメモ、D列は仕入れ価格、E列は定価、F列は計算結果を入力しています
B1には=VLOOKUP(A1,Sheet2!A:B,2,FALSE)
C1には=VLOOKUP(B1,Sheet3!A:B,2,FALSE)
F1には=D1/0.8
という数式が入力されています
F列の計算は手動で入力しています
やったこと
ps://daitaideit.com/excel-calculate-char/
このサイトを参考にやってみたのですが、シート1のA列は毎回並びが変化するのでうまくいきませんでした
やりたいこと
F列の計算を手動から自動にしたい
< 使用 Excel:Excel2019、使用 OS:Windows10 >
計算方法が仕入れの場合は必ず割り算、定価の場合は必ず掛け算だとして。 =INT(IF(LEFT(C1)="仕",D1/REPLACE(C1,1,4,""),E1*REPLACE(C1,1,3,""))) ではどうだろうか? (ねむねむ) 2022/05/31(火) 14:40
ありがとうございます
例に漏れがありました
大変申し訳ありません
計算メモを確認しました
仕入れの場合、割り算、掛け算があります
定価の場合も、割り算、掛け算があります
定価そのままという場合もあります
よろしくお願いします
(社畜の血) 2022/05/31(火) 14:59
仕入れそのままはないとして、力業。 =IFERROR(INT(IF(LEFT(C1)="仕",D1,E1)*IF(ISERROR(FIND("/",C1)),REPLACE(C1,1,MIN(FIND({"/","*"},C1&"/*")),""),1/REPLACE(C1,1,MIN(FIND({"/","*"},C1&"/*")),""))),E1) ではどうだろうか? (ねむねむ) 2022/05/31(火) 15:22
仕入れそのままはないですね
すみませんでした
ありがとうございます
やりたいことが実現できました
(社畜の血) 2022/05/31(火) 15:53
Evalをなんとかして改変してみました。あくまで参考扱いで。
1 一行目に見出しを挿入 商品 担当 式 仕入れ 定価 計算結果
2. 対象範囲を「テーブル」化する
3. 名前を定義 仕入れ D2〜D9までを選択した状態で、名前を定義する ・名前を「仕入れ」とする ・参照範囲は、デフォルトの テーブル1[仕入れ] のまま定義する。 定価 も同様。 4. マクロを標準モジュールに入れる Function Eval(rng As Range, n As Long) '数式文字列を計算する Dim ary As Variant ary = Evaluate("=" & rng(n)) Eval = ary(n, 1) End Function 5.F列に以下の式を挿入 =Eval([式],ROW()-1)
【備考】 ・テーブルなので、データを追加した場合でも、自動の修正は不要です。追随します。
・Application.Evaluateメソッドは、テーブルの構造化参照を評価できない、ようだ。 これができれば、もっと簡単にできるのだろうが。 this row を示す @ が評価できないようだ。 ・このため、計算は冗長になっているので、計算効率は多分悪い。 ・同様の試みをされた方がいるだろう。備忘録としてメモを残します。 (γ) 2022/05/31(火) 16:02
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.