• ベストアンサー

Excelで関数を別の関数に変える・・・

こんにちわ。 すでに組み込まれている関数を、別の関数に変えることって出来ますか? 1行目・・・=SUMIF(A会社.csv!S:Y,"積立",A会社.csv!X:X) 2行目・・・=SUMIF(B会社.csv!S:Y,"積立",B会社.csv!X:X) 3行目・・・ と、各行会社名が違うんです。 この関数 1行目・・・=IF(ISERROR(A会社.csv!A1),"",SUMIF(A会社.csv!S:S,"積立",A会社.csv!X:X)) 2行目・・・ と各行違う会社となるように、関数だけ変えたい場合の方法ってありますか? 教えてください。

noname#231028
noname#231028

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

  • ベストアンサー
  • yosifuji20
  • ベストアンサー率43% (2675/6115)
回答No.1

これは、その会社名を入れる別なセルを用意して、そこを式で参照すればよいのです。 例えば、G列あたりに G1 A会社 G2 B会社 G2 C会社 そして式を =IF(ISERROR(INDIRECT(G1&.csv!A1),"",SUMIF(INDIRECT(G1&.csv!S:S),"積立",INDIRECT(G1&.csv!X:X)) とします INDIRECT関数は、()の中の値と""でつながった文字列の場所(この場合はG1がA会社なので、A会社.csv!A1とおなじ意味)をしめす関数です。 この式を下方向にコピーすれば、それぞれのG列の相当する場所(2行目ならばB会社、3行目ならばC会社)を参照することになります。 INDIRECT関数は慣れが必要ですが、使い方を覚えれば非常に多彩なことが出来ます。一度研究されたら良いと思いますよ。

noname#231028
質問者

お礼

聞いたことも無い関数でした。 勉強になります。 新しいことを知り、Excelの幅が広がりました。 質問しておいて放置してしまいましたが、今月は今後のために、このデータの修正に取り組みます! ご丁寧にありがとうございました。

その他の回答 (2)

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.3

こんちくは。 他の人の回答を平たく言うと、「ちっと無理だから、今後のために作り替えたら?」 ってことです。 で。 実際のところ。 >>1行目・・・=SUMIF(A会社.csv!S:Y,"積立",A会社.csv!X:X) >>1行目・・・=IF(ISERROR(A会社.csv!A1),"",SUMIF(A会社.csv!S:S,"積立",A会社.csv!X:X)) んー。このレベルはちっと無理かなぁ。 count を counta にするような、文字の置き換えだけで済む変更。 なら、「Ctrl+H」の置換から可能なんですけどね。 以下は、出来るかどうか不明ですが、てきとーに。 1.表示モードを、「数式」に変更する。 http://kaisha-seturitu.net/xls/do/o_34.htm 2.数式になった行~を全部選択してコピー。テキストエディタに張り付ける。 3.テキストエディタを駆使して、変更後~の数式を作成する。 4.全選択してコピー。EXCELに貼り戻す。 5.「1」のモードを戻してやる。 数式が上手く適用されない場合はこんなん http://www.relief.jp/itnote/archives/003740.php 。。。とかかなぁ。。。 これで出来ればめっけもん。ってぐらいかな。 いや。自分で試しゃいいんだけどさ。うん-w-

noname#231028
質問者

お礼

質問しておいて長いこと放置しておりましたmm 今月も古い数式で面倒なことになる前に、教えていただいた方法を試してみます。ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

例えばシートのA1セルから下方に会社名が入力されているとしたら、A列の会社名のシートでの集計を行うとしたらA1セルに次の式を入力し下方にドラッグコピーしてはどうでしょう。 =SUMIF(INDIRECT(A1&".csv!S:Y"),"積立",INDIRECT(A1&".csv!X:X"))

noname#231028
質問者

お礼

丁寧にご回答いただいていたのに、放置してしまいごめんなさい。 こちらも試してみますね。 ありがとうございました。

関連するQ&A

  • SUMIF関数のエラーについて

    こんにちわ。教えてください。 会社ごとの請求データが1会社1シートになったExcelで送られてきます。 シートの中には日付別の請求金額が記載されているだけなので、別シートにSumif関数で合計をまとめています。 この合計をまとめるためのシートは、前月分をコピーして使用しているのですが、毎月請求が無い会社もあり、そういう場合はエラーになった会社を探すのに時間がかかってしまいます。 SUMIF関数式を入れたままで、条件の会社が無い場合でもエラーが出ないようにするにはどうしたらよろしいのでしょうか? ちなみに=SUMIF(A物流.csv!S:Y,"自動車",A物流.csv!X:X)という計算式を使用しています。同じファイルの別シートから引っ張ってきています。

  • エクセルの関数について、変ですか?

    以下の関数をセルに入力したのですが、 エラーというか「入力した数式は正しくありません」とメッセージが出てきます。 どこか変なところありますか? さっぱり分かりません。 =IF(A1=\"\",\"\",IF(NOT(ISERROR(SEARCH(\"a10\",A1,1))),\"####\",IF(NOT(ISERROR(SEARCH(\"b10\",A1,1))),\"$$$$\",IF(NOT(ISERROR(SEARCH(\"c10\",A1,1))),\"%%%%\",IF(NOT(ISERROR(SEARCH(\"d10\",A1,1))),\"$$$$\",IF(NOT(ISERROR(SEARCH(\"e10\",A1,1))),\"$$$$\",\"何それ?\")))))))

  • エクセルの関数について、変ですか?

    以下の関数をセルに入力したのですが、 エラーというか「入力した数式は正しくありません」とメッセージが出てきます。 どこか変なところありますか? さっぱり分かりません。 =IF(A1="","",IF(NOT(ISERROR(SEARCH("a10",A1,1))),"####",IF(NOT(ISERROR(SEARCH("b10",A1,1))),"$$$$",IF(NOT(ISERROR(SEARCH("c10",A1,1))),"%%%%",IF(NOT(ISERROR(SEARCH("d10",A1,1))),"$$$$",IF(NOT(ISERROR(SEARCH("e10",A1,1))),"$$$$","何それ?")))))))

  • if関数の順番 iserrorが認識されない

    タイトルは検索用のためぶっきらぼうですが、よろしくお願いします。 以下のように、A列からB列までの日数を求めるのですが、AやBに ””(空白)や #VALUE!エラー が入ることがあるので、IF関数で回避させています。      A    B      C列 2行  10/1  10/25    =B2-A1+1                 (C2は25となる)                  ↓                =IF(B2="","甲",B2-A1+1)                または                =IF(ISERROR(B2),"乙",B2-A1+1) ところが、 =IF(ISERROR(A2),"丙",IF(ISERROR(B2),"乙",IF(B2="","甲",B2-A2+1))) という複合式なら、甲、乙、丙はきちんと判別されるのに、 =IF(B2="","甲",IF(ISERROR(A2),"丙",IF(ISERROR(B2),"乙",B2-A2+1))) という風に順を変えると、結果は   #VALUE! になってしまいました。      A    B      C列 2行  10/1  #VALUE!   =IF(B2="","甲",IF(ISERROR(A2),"丙",IF(ISERROR(B2),"乙",B2-A2+1)))                (C2は #VALUE! となる。乙にならない) また、 =IF(OR(B2="",ISERROR(A2),ISERROR(B2)),"",B2-A2+1) でも、同じように #VALUE!エラーになってします。 関数の順番を変えただけで、なぜ ISERROR が正常に値を返さないのでしょうか?

  • Excelの関数の意味を教えてください。

    Excel関数初心者です。 以下のふたつの関数の式の意味を教えてください。 どの値を見に行って、それに対してどのような処理を行なっているのかを、できるだけ、わかりやすく教えてください。 (1)=IF(ISERROR(VLOOKUP(A2,B$1:C1,2,0)),"",VLOOKUP(A2,B$1:C1,2,0))&B2 (2)=SUMPRODUCT(1*NOT(ISERROR(FIND(B2,$C$1:$C$15))),$D$1:$D$15)

  • 関数について教えて下さい。

    =IF(ISERROR(VLOOKUP($A3,母日!$C$6:Y$40,23,FALSE)),"",VLOOKUP($A3,母日!$C$6:Y$40,23,FALSE)) の関数『6』『40』という数字を横にドラッグしただけでプラス44づづ増える関数式を教えてください。例えば、 =IF(ISERROR(VLOOKUP($A3,母日!$C$50:Y$84,23,FALSE)),"",VLOOKUP($A3,母日!$C$50:Y$84,23,FALSE)) =IF(ISERROR(VLOOKUP($A3,母日!$C$94:Y$128,23,FALSE)),"",VLOOKUP($A3,母日!$C$94:Y$128,23,FALSE))という具合です。 すみませんがお忙しいところスミマセン。宜しくお願い致します。

  • excelのtrend関数とsum関数について

    いくつかエクセルについて質問がありますので、知っている方がおりましたら、よろしくお願いいたします。 1.a1~d5まで数字が入っており、それぞれの行の平均を合計したいと思っています。途中の平均の式を出さずに合計を出す式って作ることができるのでしょうか? 2.y軸を日付としてtrend関数を使いたいのですが、x1の列に対応しているyとx2に対応しているyがそれぞれバラバラです。それでもtrend関数を使うことってできるのでしょうか? 3.a1~b13まで小さい順に数字が入っていて、それをc行にまとめて小さい順に並べたいのですが、min関数とif関数を組み合わせている関数ってあるのでしょうか? 関数辞典を買ってみても答えを見つけることができず・・・1,2に限っては別の所に計算して出しましたが、もし簡単にできる方法を知っている方がおりましたら、よろしくお願いいたします。

  • EXCEL 関数で教えてください。

    部品Aの業者が数社、部品Bの業者が数社・・・(続きます) 年度ごと、部品ごと、業者ごとに数値を出したいです。(表1を作成したい) SUMIFでは出るのですが、部品点数がかなりあるため、数式を変更する手間がかかってしまいます。。 サンプル表で C12セルに =SUMIF($M$3:$M$9,$B12,C$3:C$9) C16セルに =SUMIF($N$3:$N$9,$B16,C$3:C$9) 入れています。 A列に部品Aがあったら2行目の部品AからB列の業者名を探して数値を入れて行きたいのですが 関数でできるでしょうか。。 よろしくお願いします。

  • エクセル関数で困っています

    特定セルの数字を特定文字に変換したいのですが、希望表示にさせることが出来ません 現在は下記変更       希望    123⇒あかさ       123⇒あかさ    321⇒あかさ       321⇒さかあ    223⇒かさ         223⇒かかさ   希望通りに表示できる関数を教えてください よろしくお願いいたします。 現在の関数は下記を使用中  =IF(ISERROR(SEARCH("1",A20))=FALSE,"あ","")&IF(ISERROR(SEARCH("2",A20))=FALSE,"か","")&IF(ISERROR(SEARCH("3",A20))=FALSE,"さ","") 

  • エクセルの関数

    数種類の関数を組み合わせて作ったのですが、ANDでもORでも答えが同じになってしまいます。 どこに間違いがあるのか、教えて頂けると助かります。 =IF(ISERROR(AND(FIND("A",A5,1),FIND("B",A5,1)=FALSE)),"偽","真") =IF(ISERROR(OR(FIND("A",A5,1),FIND("B",A5,1)=FALSE)),"偽","真") 上記式はAND・OR以外はすべて同じのつもりです。 AND関数の場合の答えは、期待通りです。 OR関数の答えとして、A5のセルに『A又Bが含まれている』にも拘わらず、『偽』と表示されます。 (ORのそれ以外の答えは期待通りです。) OR関数で、『A5のセルに、A又はBがひと文字でも含まれている場合』を、『真』とするにはどうすればよいでしょうか? 宜しくお願いいたします。

専門家に質問してみよう