ロックされたワークシート内のセルを移動することにより、数式や書式の破損を防ぎます


2

次のExcelテーブルを想像してください。

教室の座席

B6ある=ZÄHLENWENN(A3:C4;"<>")COUNTIF私は英語で、思う)ので、部屋に座って生徒の量をカウントします。先生は自分の名前A3:C4と式のカウントを挿入できます。また、灰色で占められていない座席をペイントする書式を設定します。

先生に名前を編集してもらい、式は編集しないように、ロックを解除しA3:C4た後にワークシートをロックしました。

充填例

しかし、オリーブがヴェレナの隣に座りたいとしたらどうでしょうか?教師がセルを移動しただけでは、できなくても書式設定を破ります。時には、移動したセルに依存する数式が後で混乱することもあります。

セルを移動した後の書式設定が壊れています

それでは、ユーザーがフォーマットや数式を破壊しないようにするにはどうすればよいですか?

@Rajesh Sの編集

先生の机がクラスの前の真ん中に立っており、どの生徒がその隣に座っているのかを知りたいと想像してください。式は、中に入れたB7だろう、=WENN(B3="";"—";B3)(あればB3である""、リターン"—"、それ以外のリターンがB3)。オリーブが座っているときB3、式は戻りますOlive。先生がオリーブを動かしたC4としても、数式は戻りますOlive

@RajeshSと明快さのために編集します:

セルの値を編集することではありません。私が言うときの動きを、私は意味、オリーブでクリック空いている席にドラッグして、そこにドロップします

@RajeshSの編集

これは私があなたの提案された解決策を得るためにしたことです:

  1. 新しいExcelワークシート
  2. セルA66に移動
  3. コルスパンA66:C66
  4. テキストを入力してください Desk position (row)
  5. セルA68に移動
  6. 条件付き書式=ISTLEER(A68)=$A$68:$C$69(塗りつぶしの色)
  7. セルA71に移動します
  8. テキストを入力してください Total students
  9. セルB71に移動
  10. テキストを入力してください =ZÄHLENWENN(A68:C69;"<>"&"")
  11. セルA73に移動
  12. コルスパンA73:C73
  13. テキストを入力してください Students position
  14. テキストを入力しNameOriginalそしてCurrentA74、B74とC74に
  15. テキストを入力しAdamOliveClausBertramおよびVerenaA75、A76、A77、A78、A79へ
  16. テキストを入力し12345および6B75、B76、B77、B78、B79、B80へ
  17. セルC75に移動
  18. 数式=KKLEINSTE(WENN($A75=$A$68:$C$69; ZEILE($A$68:$C$69)-ZEILE($A$68)+1); ZEILE($1:$1))を入力し{}、Shift + Enterで作成します
  19. C80まで式を拡大する
  20. 色付きの領域に生徒の名前を入力します
  21. A66:C66の形式を編集します(ロックフラグをオフにします)
  22. シートロックを適用します(ロック解除されたセルの選択を除くすべての権限をオフにします)
  23. これは、教師がテーブルを見つける方法です。最初のスクリーンショットとまったく同じです。
  24. 彼はオリーブをクリックしてC69にドラッグします
  25. 2番目のスクリーンショットのように、C75の列の値は1、2、1、2、2、1になりましたが、B68は条件付き書式で定義された色で塗りつぶされていません。彼が彼女を元の座席から削除し、新しい座席に再入力した場合、それは機能していました。そしてまさにこれが問題です。ユーザーがワークシートの一部を変更できるのは、セルを移動することで変更できないはずです。

あなたの机はデータ範囲A3:C4にあり、OPで述べたようにロックが解除されており、フォーミュラセルはその範囲外であるため、当然ロックされています!
ラジェシュS

しかし、ユーザーは自動書式設定を調整できません。ロックのためにグレー表示されます。彼がオリーブをベレナに移動させると、それでもフォーマットを台無しにします。
ボウイ

いいえ、フォーマットがセルに適用されるか、セルの範囲は、いずれかのフォーマットが削除または変更されるまで存在します。Cellの値を置き換えたり削除したりしても、それを損なうことはありません。
ラジェシュS

@RajeshS、私は例を編集して、ユーザーが編集可能な範囲内でセルを移動すると、それでも破損する式が編集可能な範囲外にあることを示しました。
ボウイ

25ポイントの最終編集は100%正しいです。ここで、データ範囲A68:C69が編集可能であり、それ以外の場合、教師が生徒の座り方を変更する方法は編集可能なゾーンでなければなりません。また、私のソリューションを使用するには、最初にセルから名前を削除してから、他のセルに名前を書き直す必要があります。DRAG&DROPメソッドは使用されていません。ドラッグアンドドロップはSHAPEまたはOBJECTSでのみ可能であり、プロシージャ全体を制御するためにVBAコードが必要です。私の解決策は式ベースです。
ラジェシュS

回答:


-1

今、私はあなたに比較的良い解決策を提案しています。以下のスクリーンショットを確認してください。

元の座席:

ここに画像の説明を入力してください

Verenaの横にある変更された座席オリーブ:

ここに画像の説明を入力してください

さて、これをすべて達成する方法。

  1. 生徒数をカウントするためにこの式を書く、= COUNTIF(A68:C69、 "<>"& "")
  2. 元の座席(データ範囲、A68:C69)を選択します。
  3. 条件付き書式を適用し、この式= ISBLANK(A68)を使用します。
  4. 私がやったようにデータを描画し、この式をC75(Red Cell)で記述し、最後までドラッグします。

    {= SMALL(IF($ A75 = $ A $ 68:$ C $ 69、ROW($ A $ 68:$ C $ 69)-ROW($ A $ 68)+1)、ROW($ 1:$ 1))}

注意:

それはだCSEフォーミュラそうで終了Ctrlキー+ Shiftキー+入力してください。

6つの座席(セル)があり、最後の座席(セル)は空白です。生徒の位置を確認してください。ベレナのセルが空白になった後、その席は6で、行は2です。

3つのフォーミュラすべてについて、必要に応じてデータ範囲を変更します

これがお役に立てば幸いです。


1
すべての努力に感謝しますが、実際、これはまったく役に立ちません。私の問題は、多くの数式と条件付き書式を備えたExcelシートがあり、シートがロックされていても、ユーザーが編集可能な領域内でセルを移動(ドラッグ/ドロップ)するときに、編集可能な領域の内側の書式と式を壊すことです。私はあなたの例のどの部分を使って問題を解決できるかわかりません。私にとっては、「異なるデータで異なることをする」だけです。
ボウイ

私の解決策は、オリーブが他の場所に移る場合、両方の編集をチェックするという主な問題に関係しています!! 保護は簡単です。演習に使用するデータ範囲を選択し、セル形式に移動して、[保護]タブをクリックし、[ロック]ボタンをオフにします。次に、[TABのレビューとシートの保護]を見つけます。
ラジェシュS

現在試行中。テーブルはどこから始まりますか、それはA66ですか?(downvoteは私ではなかった!!)
ボウイ

私はあなたとは異なる種類のエクセルを使用しているようです。私はあなたと同じようにしました。そして、オリーブを動かします(ドラッグ/ドロップ)。数式は壊れませんでしたが、実際のシートでは単一のセルを参照する必要があるため、あなたのように配列数式を使用することはできません。
ボウイ

データ範囲はA68から始まります。そして、私はExcel 2016のみを使用しています。それでも、あなたは答えを注意深く読んでいません。私がこれをすべて達成する方法を提案したことを読んでください、!!
ラジェッシュS
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.