• ベストアンサー

エクセル関数で列を挿入し同時に数式の列もずらしたい

KURUMITOの回答

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.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,""))

関連するQ&A

  • エクセルの関数の直し方

    現在、画像のような表を作成しておりますが、 1行目の前の行に5行挿入したいと考えております。 下の表からデータを製番・区分ごとに合計して上の表に表示されるようになっています。 5行挿入してタイトル等入れたいと思い、挿入してみると、 今まで下の表からの合計が上の表に表示されなくなってしまいます。 セル番号等確認はしてみたのですが、 どこがいけなくてうまく表示されないのかがわからなくて困っています。 どのように直したらいいかをご教示お願いいたします。 現在入っている関数は以下の通りです。 A2=IF(COUNT(Sheet1!$L$14:$L$38)<ROW(A1),"",INDEX(Sheet1!$B$14:$I$38,MATCH(SMALL(Sheet1!$L$14:$L$38,ROW(A1)),Sheet1!$L$14:$L$38,0),MATCH(A$1,Sheet1!$B$13:$I$13,0))) B2=IF(COUNT(Sheet1!$L$14:$L$38)<ROW(B1),"",INDEX(Sheet1!$B$14:$I$38,MATCH(SMALL(Sheet1!$L$14:$L$38,ROW(B1)),Sheet1!$L$14:$L$38,0),MATCH(B$1,Sheet1!$B$13:$I$13,0))) C2=IF(COUNT(Sheet1!$L$14:$L$38)<ROW(C1),"",INDEX(Sheet1!$B$14:$I$38,MATCH(SMALL(Sheet1!$L$14:$L$38,ROW(C1)),Sheet1!$L$14:$L$38,0),MATCH(C$1,Sheet1!$B$13:$I$13,0))) D2=IF(A2="","",SUMIFS(Sheet1!$G$14:$G$38,Sheet1!$B$14:$B$38,A2,Sheet1!$H$14:$H$38,B2)) E2=IF(C2="","",IF(ISERROR(VLOOKUP(C2,list!$S$3:$T$6,2,0)),"",VLOOKUP(C2,list!$S$3:$T$6,2,0))) H14=IF($E14="","",IF(ISERROR(VLOOKUP($E14,INDIRECT($J14),3,FALSE)),"",VLOOKUP($E14,INDIRECT($J14),3,FALSE))) I14=IF($E14="","",IF(ISERROR(VLOOKUP($E14,INDIRECT($J14),4,FALSE)),"",VLOOKUP($E14,INDIRECT($J14),4,FALSE))) J14=IF(ISBLANK(B14),"",IF(B14<="J121100144","旧","新")) K14=IF(AND(B14<>"",H14<>"-"),B14&"_"&H14,"") L14=IF(AND(K14<>"",COUNTIF(K$14:K14,K14)=1),COUNTIF($K$14:$K$38,"<"&K14)+1,"")

  • エクセルの関数について

    エクセルの関数について お世話になります。 エクセルの関数について質問をさせて頂きます。 チェック用の数式として、下記のような場合、 D2とH行に同じ数字があった場合はA2に○を この場合、 =IF(ISNA(MATCH(D2,H:H,0)),"","○") このような数式を使っております。 この数式を少しアレンジして、 D2とH行に同じ数字があった場合はA2に○を、 D2とI行に同じ数字があった場合はA2に×を、 このような数式を作りたいと考えております。 また、 I2とD列に同じ数字があった場合、J2に空白、 同じ数字が無かった場合に×が入る数式として、 [J2]=IF(ISNA(MATCH(I2,D:D,0)),"×","") このようなものを使っています。 こちらも少しアレンジをして、 I2もしくはH2とD列に同じ数字があった場合、J2に空白、 同じ数字が無かった場合に×が入る。 このような数式を作りたいと考えております。 こちらの2点、中々良い数式ができずに悩んでおります。 どなたか、エクセルの関数に詳しい方、良いアドバイスを 頂けると嬉しいです。 どうぞよろしくお願い致します。

  • エクセルの数式

    恐れ入りますが、次の数式を、「もし、何がどうなら、こうする。」のような日本語で説明して頂けませんでしょうか? (1) =IF(ROUND(SUM(I:I),0)>=J8,ROUNDUP(G8,0),INT(G8)) (2) =IF(K8<1000,IF(E8="なし",K8,0),0) (3) =IF(L8=0,F8,0)

  • 【エクセル】行挿入で数式もいっしょにコピーしたい

    こんにちは。 エクセルで現金出納帳を作成しています。 例えば・・・   A列   B列 C列 D列 E列 1 日にち  科目 収入 支出 残高 2 10/1  光熱費    10000 3 10/2  給料  200000   190000 4 ・・・・・・ E列には=IF(E2="","",IF(AND(C3="",D3=""),"",E2+C3-D3)) という数式を入れています。 後からデータを足したい時(例えば3行目に挿入)に、行挿入をすると 数式もコピーされ、以下の行の数式も更新されるようにしたいのですが、どのようにしたら良いのでしょうか。 ご回答宜しくお願い致します。

  • 【Excel】数式のコピー

    Excel2003を使用しています。 他人が作成した表の行数を増やして、数式もコピーしたいのですが、その数式は別シートを参照していて、行・列が連続していないので、単純にコピー → 貼り付けでは、正しい数式を貼り付けることができません。 現在は、とりあえず、コピー&貼り付けした後に、数式を修正しているのですが、規則性があるので、手作業で数式を修正する以外に何か良い方法はないでしょうか? Sheet1…参照するシート Sheet2…数式が入力されているシート Sheet2に入力されている数式は  C7 = Sheet1!B7  D7 = Sheet1!C7  E7 = Sheet1!D7  F7 = Sheet1!E7  G7 = Sheet1!F7  H7 = Sheet1!G7  I7 = Sheet1!B8  J7 = Sheet1!C8  K7 = Sheet1!D8     :     :  C16 = Sheet1!B25  D16 = Sheet1!C25  E16 = Sheet1!D25  F16 = Sheet1!E25  G16 = Sheet1!F25  H16 = Sheet1!G25  I16 = Sheet1!B26  J16 = Sheet1!C26  K16 = Sheet1!D26 以上が1ページ分で、C列~H列、I列~K列はそれぞれ参照する行が1行おきになっています。 Sheet1の1ページは26行ありますので、2ページ目のSheet2の数式は  C17 = Sheet1!B33  から始まり  D17 = Sheet1!C33     :     :  H17 = Sheet1!G33  I17 = Sheet1!B34  J17 = Sheet1!C34  K17 = Sheet1!D34     :     :  K26 = Sheet1!D52  までが、2ページ目となり、これが下方向へ続いています。 これらの数式を変更することなどで、コピー&貼り付けができないかと思い、質問させていただきました。 説明がわかりづらくて、申し訳ありませんが、よろしくお願いします。

  • エクセル 3列おきに列を挿入したい

    いつもお世話になります。 1行目に営業所コードがあり、そのコードを3列おきに表示するにはどうしたらいいでしょうか。   A  B  C  D  E  F  G  H  I  J   2   3   4   5   7   8  11  12  14  15              ↓   A  B  C  D  E  F  G  H  I  J   2          3         4         5 営業所コードは2~150の数字で、100ほどの営業所コードが存在します。 よろしくお願いします。

  • エクセルの関数の読み取り方を教えてください。

    エクセルで夜間の出勤時間の管理をしております。 以前在籍しておられた方が作られたようなのですが 関数初心者の私では読解するのが困難なので お教えいただきたく投稿しました。 完成されてる表を掲載できればいいのですが・・・ 関数を掲載させていただきますので その関数の読み取り方をお教えいただければ幸甚です。 A列 日付 B列 始業時間 C列 終業時間 D列 計算用退勤表記 E列 拘束時間 F列 労働時間 G列 深夜労働時間 H列 残業時間 I列 普通勤務 J列 深夜勤務 K列 普通残業 L列 深夜残業 D列 =IF(COUNT(B5:C5)=0,0,C5+IF(C5<=B5,"24:00",0)) F列 =IF(E5-$B$37<0,0,E5-$B$37) G列 =IF(COUNT(B5:C5)=0,0,MAX(0,"5:00"-B5)-MAX(0,B5-"22:00")+MAX(0,D5-"22:00")-MAX(0,D5-"29:00")-$B$37) H列 =IF(F5-$B$38<0,0,F5-$B$38) I列 =IF(D5-B5-H5-G5-$B$37<0,0,D5-B5-H5-G5-$B$37) J列 =IF(I5=0,0,$B$38-I5) K列 =IF(F5-I5-J5-L5<=0,0,F5-I5-J5-L5) L列 =IF(G5-J5<=0,0,G5-J5) 基本休憩時間 2:00(=B37) 所定労働時間 8:00(=B38) 深夜終了時刻 5:00(=B39) 深夜開始時刻 22:00(=B40) 深夜労働時間 5:00(=B41) 当番休憩時間 1:00(=B42) 表の内容はこんな感じなのですが。 これでわかりますでしょうか? 基本の時間は20:00~7:00 です また、万一勤務時間が17:00~4:00の場合 どこの計算式がどのようにわかりますでしょうか? 文字の羅列になって申し訳ございませんが 宜しくお願い申し上げます。

  • エクセル2003 IF ネスト 回避方法

    エクセルに詳しい方々 こんばんわ。 エクセル2003を使っております。 現在ある課題をもとに関数を組んでおりますが IFのネストに頭を悩ませております。 強引ではありますが現在組んた数式を貼り付けます。 *要はIF(COUNTIF・・・からの7式をどうにか短くしネストを回避したい です。 IF(OR(AND(E$150>=$ED$102,E$150<=$ED$103), AND(E$150>=$ED$104,E$150<=$ED$105), AND(E$150>=$ED$106,E$150<=$ED$107), AND(E$150>=$ED$108,E$150<=$ED$109), AND(E$150>=$ED$110,E$150<=$ED$111), AND(E$150>=$ED$112,E$150<=$ED$113), AND(E$150>=$ED$114,E$150<=$ED$115), AND(E$150>=$ED$116,E$150<=$ED$117), AND(E$150>=$ED$118,E$150<=$ED$119), AND(E$150>=$ED$120,E$150<=$ED$121), AND(E$150>=$ED$122,E$150<=$ED$123), AND(E$150>=$ED$124,E$150<=$ED$125), AND(E$150>=$ED$126,E$150<=$ED$127), AND(E$150>=$ED$128,E$150<=$ED$129), AND(E$150>=$ED$130,E$150<=$ED$131)), IF(COUNTIF($E$132:$E$138,E$152),$E$16, IF(COUNTIF($F$132:$F$138,E$152),$F$16, IF(COUNTIF($G$132:$G$138,E$152),$G$16, IF(COUNTIF($H$132:$H$138,E$152),$H$16, IF(COUNTIF($I$132:$I$138,E$152),$I$16, IF(COUNTIF($J$132:$J$138,E$152),$J$16, IF(COUNTIF($K$132:$K$138,E$152),$K$16,"")),"")

  • エクセルで挿入した列に関数が値を返しません。

     エクセルで列を挿入したセルに、関数を入力しても値を返しません。 関数を入力しても、数式バーに表示される数式がセルに表示されるだけで、答えは出ません。式はあっていて、違うセルに数式をコピーして張り付けると、値を返します。  また、挿入した列に元からある空白の列をコピーして貼り付け、関数を入力しても値を返します。  どこかで変な設定をしてしまったのでしょうか?  分かる方、どうか教えてください。

  • エクセルの数式コピーについて

    数式をセルに入れていくにあたっての質問です。 下記の数式を横のセルにコピーを連続でしていきたいのですが、下記の「J8:P8」の部分がドラッグで引っ張ると「K8:Q8」になってしまいます。 おこないたいことはドラッグして「J8:P8」→「Q8:W8」その横列は「X8:AD8」になるようにしていきたいですがいい方法はありますでしょうか。 詳しくお聞かせ頂きたくよろしくお願いいたします。 =IF(ISNA(MATCH("●",週間!J8:P8,0))=FALSE,"●","")