質問: 8 を セルc3に入力します。 また最終納期:2021/5/18(h7)があるので納期セルd3を2021/5/18に更新します。 ただし表1にある商品名の中で表2に商品名がない場合は納入個数、納期は更新したくないです。 またc3:d8以外のセルは基本的にロックされており、編集できない状態になっております。 ここで二つ程悩んでいることがあります。 ・1:納入個数の関数の設定 例えばセルc3に =ifna(vlookup(b3,$f$3:$h$8,2,false), 5) + 5 と入力すれば解決しますが この数式を下の列にコピーしていくと "+5" という数字までコピーされていくのでセルc4:c8までの本来の納入個数が "+5" に上書きされてしまいます。 =ifna(vlookup(b3,$f$3:$h$8,2,false), c3) + c3 という数式を使いたいですが、循環参照でエラーになってしまいます。 ・2:納期の更新関数の設定 例えばセルd3に =vlookup(b3,$f$3:$h$8,3,false) と入力すれば商品aaaの納期の更新は解決できますがこの数式を下の列にコピーしていくと当然表2にない商品名は #n/a と表示されます。 ifnaなどを組み合わせて =ifna(vlookup(b3,$f$3:$h$8,3,false),d3) という数式を使いコピーしていき表2にない商品名は納期を更新せずにそのまま表示したいですがやはり循環参照でエラーになってしまいます。 2つの問題の共通点としてはc3:d8以外のセルは基本的にロックされているので元の納入個数や納期(c列,d列)を他に一時的に保存できないところにあります。 なにかよい関数や解決策はありませんか?
回答: こんばんは 関数では入力セルの値を変更することはできません。 どうしてもご説明のように処理したければ、マクロを使うしかないと思われます。 表2を入力し直したらどうなるかなど、検討すべき点はいろいろ出てくると思いますけれど。 代替案としては、別に「集計表」を作成しておいて、表1、表2をご説明のように集計することでしょうか。 こちらであれば、関数でも問題なく集計可能です。