• ベストアンサー

多数のシートに同じ計算式を入れる。

多数のシートに同じ計算式を入れるのですが、 シートによって、行の長さが違います。 全てのシートを選択し=VLOOKUP(D:D,氏名!E:E,5,FALSE)といった式を、E7からフィルハンドルを使い E200くらいまで(どのシートも大体200行もない) ドラッグしているのですが、シートによっては100行くらいしか無いので、それ以降は、エラー#N/Aの表示になってしまいます。 全てのシートにエラー表示を非表示にすれば消えるのですが、最初から一番下の行まで、計算をするような 設定はできるのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • matrix4
  • ベストアンサー率16% (118/704)
回答No.1

何もないセルには、入れない(空白)ですから、 IF(Sheet1!A1="","",VLOOKUP(Sheet1!A1,Sheet1!$A$1:$C$65535,3,0)) これは、セルの範囲を65535行いっぱいに使ったときです. これ以外はVBAなどつかうしかないでしょう。

uk5050
質問者

お礼

なるほど、ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VLOOKUP関数

    VLOOKUP関数を使って、CODEの値に応じて氏名を表示する表を作っています。 式は =VLOOKUP(A2,Sheet2!$A$2:$C$41,2,0) というような感じなのですが、フィルハンドルをドラッグして式をコピーすると、全て同じ人の氏名が表示されてしまいます。 おかしいなと思って、関数が入っているセルをクリックして、[関数の挿入]ボタンを押すと、数式の結果の所には正しい答えが出ていて、[OK]ボタンを押すと正しい氏名に変わります。 どうして最初のフィルハンドルドラッグの時点で正しい表示が出ないのでしょうか?

  • Excel(エクセル)で非表示シートをVBAで計算するには?

    よろしくお願いします。 エクセルで1つのブックにAシート~Fシートまであるとします。 再計算させると、すべてのシートを再計算してしまうため時間がかかるので、マクロの自動記録を利用して「Aシート→Bシート→Cシート→Dシート→Eシート」と、必要なシートだけを順番に計算させる事で、処理時間短縮をさせる事をする事ができました。 EシートとFシートは表示させておいて、その他のA~Dシートは非表示にしました。 Eシートには、A~Dシートで計算した結果が表示されるようになっています。 ですが、A~Dシートを非表示にして作成したマクロを実行すると、エラーが出てしまい上手くできません。 A~Dシートを非表示にしていても、ブック全体を再計算させる事はできます。 非表示にしたシートをマクロで計算させるには、どのようにしたら良いでしょか? アドバイスをお願い致します。 登録したマクロは下記のようになっています。 Sub 計算() Sheets("Aシート").Select ActiveWorkbook.PrecisionAsDisplayed = False ActiveSheet.Calculate Sheets("Bシート").Select ActiveWorkbook.PrecisionAsDisplayed = False ActiveSheet.Calculate Sheets("Cシート").Select ActiveWorkbook.PrecisionAsDisplayed = False ActiveSheet.Calculate Sheets("Dシート").Select ActiveWorkbook.PrecisionAsDisplayed = False ActiveSheet.Calculate Sheets("Eシート").Select ActiveWorkbook.PrecisionAsDisplayed = False ActiveSheet.Calculate Sheets("Eシート").Select End Sub

  • VBA シートがなかったら「シートがない」と表示

    P1セルに「テスト」の名称を付ける。 P2セルにVLOOKUP計算式を入れる。最後尾までオートフィルでコピー。 といったコードです。 Sub テスト()  Range("P1").Select     ActiveCell.FormulaR1C1 = "テスト" nLast = Cells(Rows.Count, 1).End(xlUp).Row     Range("P2:P" & nLast).Formula = "=VLOOKUP(K2,履歴!D:E,2,0)" End Sub もし「履歴」というシートがなかったら、「シートがありません」というメッセージウィンドウを」表示したいです。 https://oshiete.goo.ne.jp/qa/1043563.html を参考に Sub テスト() On Error GoTo err_handle  Range("P1").Select     ActiveCell.FormulaR1C1 = "テスト" nLast = Cells(Rows.Count, 1).End(xlUp).Row     Range("P2:P" & nLast).Formula = "=VLOOKUP(K2,履歴!D:E,2,0)" err_handle: If Err = 9 Then MsgBox "シートAAAが存在しません。" Exit Sub End If End Sub と記述しましたが、エラーメッセージは表示しませんでした。 どのように追記したら良いでしょうか? 宜しくお願いします。

  • sheet2からsheet1へのデータの飛ばし方(エクセル関数)

    Sheet1 A  B C D E (列) ―――――――――――――――――――――――― 1| 番号  氏名   所属  入社  生年月日 2| 1000  斉藤   東京  10/4  (入力箇所) sheet2 A B C D (列) ――――――――――――――――――― 1| 番号  氏名  所属  生年月日 2| 1000  斉藤  東京  1988/11/1 sheet1のE行(生年月日)にsheet2を参照し、同じ番号の人の生年月日が表示されるようにしたいのですが、どのような式(関数)を入れたら表示されるでしょうか? ほかの似たような質問の解答を見てMatchやvlookupを使ってみましたが、できなかったので教えてください。 よろしくお願いします。

  • Excel 計算式を別シートで計算表示させる

    所定のSheetにある数値を別SheetにてVLOOKUP等で数値表示させる事はできます。 Sheet1のセルにある計算式をSheet2のセルより数値ではなくSheet1計算式を使って計算して数値表示させたい。 よろしくお願いします。 Sheet1 A B C D 2 3 5 10 D1に=A1+B1+C1の計算式 Sheet1 A B C D 1 2 5 8 D1にSheet1=A1+B1+C1の計算式を使って表示

  • 2つの文字列に合うデータの取出で質問の追加

    前回、下記の式にて解決したのですが、SHEETを別にしたく =IF(COUNTIF(A:A,E2&F2)=0,"",VLOOKUP(E2&F2,A:D,2,FALSE)) 旅館名 室番 氏名 をSHEET2に作って下記の様にしたのですがどうも、エラーになります。 =IF(COUNTIF(SHEET1!A:SHEET1!A,A2&B2)=0,"",VLOOKUP(A2&B2,SHEET1!A:SHEET1!D,2,FALSE)) シート間では、出来ないのでしょうか? 宜しくお願いします。

  • 計算するにはどうしたらよいですか?

    昨日下記のような質問をさせていただきました。 (Sheet1表1) A列 B列 C列・・・ 空欄 ポスター ハガキ ・・・ 写真 \20 \10 イラスト \15 \2 (Sheet2表2) A列 B列 C列 D列 E列 使用者 コード 用途 用途料金 印刷枚数 ウシ 11111 ポスター 空欄 1,500 カメ 22222 ハガキ 空欄 1,800 ハト 33333 買取 空欄 3,400 (Sheet3表3) A列 B列 コード カテゴリ 11111 イラスト 12345 イラスト 22222 写真 23456 イラスト 上記の表があり、Sheet2表2のD列の用途料金を求めたいです。 表1からもってくればいいのは分かります。 ただその表1の参照の仕方が分かりません。 カテゴリ(写真等)はVLOOKUPを使って表3を見に行けばいいのでしょうが、そこから用途(ポスター等)を探して金額を表示させるにはどうしたらいいですか?COLUMN関数なら列番号を返すのでいいかなと思ったのですが、引数に関数は使えるのでしょうか? 他にいい方法があるようでしたら教えて下さい。 よろしくお願いします! その際に Sheet2!表2D2=HLOOKUP(D3,Sheet2!$A$2:$H$4,MATCH(VLOOKUP(Sheet3!B3,Sheet1!$A$3:$D$402,2,FALSE),Sheet2!A$2:A$4,0) という式を教えていただき解決したのですが、実は表2D2欄は用途単価を導くのではなく、 IF(C3="買取",0,HLOOKUP(D3,Sheet2!$A$2:$H$4,MATCH(VLOOKUP(Sheet3!B3,Sheet1!$A$3:$D$402,2,FALSE),Sheet2!A$2:A$4,0)),FALSE) と先頭にIF関数がつき、表2E列に追加した「印刷枚数」という項目があり、最終的には「用途単価」*「印刷枚数」の料金を出すのです。で、教わった式に「*E2」を追加してもエラーになってしまいます。 最初からそのように質問しろって感じですよね。計算なら単純に計算式を加えればできると思ってたので・・・ たびたびで本当に申し訳ないですが、どのようにすればいいか、教えて下さい。よろしくお願いします!

  • 計算式

    シートが二つあり、 一つ目のシートには課と氏名の行があり 二つ目は月別があり 全ての行を文言や氏名や月が重複がでないように二つ目のシートに(月別、課、氏名)の合計数を出せる計算式はないでしょうか? 海外で暮らしてた為、日本語がわかりずらく申し訳ないです。。

  • エクセルのセル右下のダブルクリック

    sheet1のD1に、 「IF(ISERROR(VLOOKUP($B1,sheet2!$A:$F,6,FALSE)),"",VLOOKUP($B1,sheet2!$A:$F,6,FALSE))」 という式を入れています。 D列全てのセルにこの式を入れたかったので、D1のセル右下部分をドラッグしてペーストしましたが 行を挿入するとその行のD列には式が入っていませんよね。 これを解消する為にD1のセル右下をダブルクリックしてみるのですが、D2以降のセルにはペーストされません。 なぜですか? 行を挿入する個所が複数の為、いちいちその行のD列に式をペーストしなくても良い方法はありませんでしょうか。 この機能(セルの右下ダブルクリック)を使わないにしても、D列全てを範囲指定して式を入れるには、この式のどこを修正すればよろしいでしょうか? よろしくお願いします。

  • vlookup関数と文字列の足し算

    こんにちわ。 別シート(Sheet2)に住所録を作成し、作成シート(Sheet1)にVlookupで住所等をひっぱってこようと思っています。 (住所録は「データ」として名前登録しています) Sheet2 郵便番号 住所   氏名1   氏名2 999-9999 東京都~ 山田太郎 山田花子 その際、別々のセルにある氏名(2名分)を表示させる計算式として =VLOOKUP(B3,データ,3,FALSE)&"様"&" "&VLOOKUP(B3,データ,4,FALSE)&"様" として下記のような結果を出しています。 山田太郎様 山田花子様 このとき、氏名2に名前が入っていないと、 山田太郎様 様 となってしまうのですが、この「氏名2に文字列が入っていないときは”様”を表示しない」ということはできるのでしょうか? どなたかご教示ください。 よろしくお願いします。

専門家に質問してみよう