- ベストアンサー
エクセル関数で列を挿入し同時に数式の列もずらしたい
数式で =IF(COUNTIF(E1:H1,1)=0,1,IF(MATCH(1,E1:H1,1)=1,1,"")) をJ1に設定してます。 その後 J列に列挿入すると K1に=IF(COUNTIF(E1:H1,1)=0,1,IF(MATCH(1,E1:H1,1)=1,1,"")) がコピーされますが (E1:H1)を列挿入することで(F1:I1)にすることは可能でしょうか 列を増やすことが多々あるため挿入する列数の応じた ずれ方をしていきたいです。 何分に勉強不足のためご教授よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
OFFSET関数を使うことでJ1セルから何列ずれたセルであるかを認識させればJ1セルに1列挿入された時点で式の中のJ1はK1セルに変わってK1セルからのずれの式となっていますので、ご要望のようなことができますね。 J1セルには次の式を入力します。 =IF(COUNTIF(OFFSET(J1,0,-5):OFFSET(J1,0,-2),1)=0,1,IF(MATCH(1,OFFSET(J1,0,-5):OFFSET(J1,0,-2),1)=1,1,""))
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
まず実際に行ってください: >(E1:H1)を列挿入することで(F1:I1)にすることは可能でしょうか E列に1列、空列挿入することで、ご質問に書かれている全くその通りの結果が得られます。 つまり「E列に列を挿入する」ことで、数式は丸ごと1列ずれた「FからI列」を参照するよう、自動で書き換わります。 その上で。 ご自分は本当は何をしたかったのか、もうちょっと「実際にエクセルを操作してみた上で」 ・自分で具体的にこのようにエクセルを操作したい ・その時に、どこ番地にいまどう記入されているセルが、「どういう理由で」こんな式に書き換わって欲しい と、目に見えるように「あなたの実際のエクセルをご自分の手で動かしながら」ヤリタイ事を正しく作文して、新たなご相談として投稿し直して下さい。