ここから本文です

参照文字列の変え方について

daf********さん

2019/6/2716:50:14

参照文字列の変え方について

あるセルにSUM(SUMIF(INDIRECT({1,2}&"!C:C"),"2 交通費",INDIRECT({1,2}&"!F:F")))という関数を組み、各シートのF列を計算しています。

シートの枚数が異なると上記の式は使えないため今の運用は、マクロで(例えば)A1にシート名を枚数分 1,2,3… と文字列で表示させて、A1をコピペし参照文字列の箇所を都度{1,2,3,…}と変えています。
※シート名は1~順番に数字のみを振ってあります。

コピペでなくマクロで参照文字列の箇所をA1の値に都度変えれるようにしたい考えているのですが、ご教示をいただけないでしょうか。
※A1の参照に拘りはなく、別の方法で 1,2,3… と変えられる方法があるならばその方法でも問題ありません。

よろしくお願いいたします。

閲覧数:
57
回答数:
3
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

ask********さん

2019/6/3009:08:10

1,2,3 のように入力してあるセルを、Sheet1のA1とします。
数式をセットするセルを、Sheet1のA2とします。

実データに合わせて修正してください。

Sub TEST()
Dim Str As String
With Worksheets("Sheet1") '★数式を入れるシート
Str = "=SUM(SUMIF(INDIRECT({/}&""!C:C""),""?"",INDIRECT({/}&""!F:F"")))"
Str = Replace(Str, "?", StrConv(2, vbWide) & Chr(32) & "交通費")
Str = Replace(Str, "/", .Range("A1").Value)
.Cells(2, 1).Formula = Str
End With
End Sub

質問した人からのコメント

2019/7/2 09:58:25

思った通りに計算できました。
大変参考になりました。
ありがとうございます。
その他の方もありがとうございました。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

mit********さん

2019/6/3009:35:46

A3セルから下方にシート名の1から順に数値を並べるとしてB3セルには次の式を入力して下方にドラッグコピーします。

=IF(A3="","",SUMIF(INDIRECT(A3&"!C:C"),"交通費",INDIRECT(A3&"!F:F")))

その後にお求めの合計をB2セルに表示させるとしてB2セルには次の式を入力すればよいでしょう。

=SUM(B3:B100)

A列およびB列は作業列として表とは離れた列に作って対応してもよいでしょう。

プロフィール画像

カテゴリマスター

gru********さん

2019/6/2716:57:52

row($A$1:$A$3) とやると {1;2;3} という配列が生成されることになってます。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる