エクセルでMATCH関数結果をアドレスに使いたい
- エクセルでMATCH関数を使用して得た返り値をセルのアドレスに使用する方法について教えてください。
- 特定の日付がランダムに並んだ列で、別のセルに入力された日付と一致するセルを検索し、そのセルの下に入力された数値分、さらに下のセルの日付を返す計算式を入れたいのですが、うまくいきません。
- MATCH関数で得た数値をセルのアドレスに使用するための正しい計算式がわかりません。どなたかご教示いただけないでしょうか?
- ベストアンサー
エクセルでMATCH関数結果をアドレスに使いたい
エクセルでMATCH関数で得た返り値をセルのアドレスに使いたいのです。 具体的には、AF列の6行目から下に向かってランダムに2015/7/25,2015/7/23,2015/7/15.....の ように日付が並んでいます。G6には任意の数値(整数)が入力されてます。E6に任意の日付が入力されております。このとき、E6に入力された任意の日付に対しAF列に入力されているランダムな日付と一致するセルを検索し、そのセルのG6に入力されている数値分下のセルの日付値をF6セルに返すよう、F6セルに計算式を入れたいのです。F6セルには 「=AF(MATCH(E6,AF6:AF2473,0)+5+G6)」のように数式を入力してみたのですが、うまくいかないのです。MATCH関数で得た数値をセルアドレスの数値に使おうとして入れた式なのですが、「#NAME?」と出てしまってうまくいかないのです。すみませんが、ご存じの方いましたらご教示お願いできないでしょうか。よろしくお願い致します。
- katamogura
- お礼率84% (116/138)
- Excel(エクセル)
- 回答数3
- ありがとう数3
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
MATCH 関数でマッチしたデータの最初の行から数えた順位を求め、 OFFSET 関数で、データの最初の行から下へG6に入力されている数だけオフセットしたセルの値を求める。 前の質問(取り消された)の回答を載せておきますので、参考にしてください。 シート「ア」のA1 から下方へに日付が並んでいる。 シート「イ」のA1 に検索する日付が入力されている。 シート「イ」のB1 にどれだけ下へオフセットするかを決める数字が入力されている。 シート「イ」のA2 につぎの式が入力されている。(これが答え) =OFFSET(ア!A1,MATCH(A1,ア!A1:A23,0)+B1-1,0)
その他の回答 (2)
- bunjii
- ベストアンサー率43% (3589/8248)
>F6セルには「=AF(MATCH(E6,AF6:AF2473,0)+5+G6)」のように数式を入力してみたのですが、うまくいかないのです。MATCH関数で得た数値をセルアドレスの数値に使おうとして入れた式なのですが、「#NAME?」と出てしまってうまくいかないのです。 そのエラーはAFと言う名前を定義していないために起っています。 MATCH関数の戻り値をAF列の何行目したいと言うことであればINDIRECT関数でセル位置を指定しなければなりません。 =INDIRECT("AF"&MATCH(E6,AF6:AF2473,0)+5+G6) 但し、質問の文言には提示の数式内の+5について説明がありませんので、目的の値(日付)が返されるか否かは分かりません。
お礼
アドバイスありがとうございました!
- keithin
- ベストアンサー率66% (5278/7940)
=INDEX(AF:AF,MATCH(E6,AF:AF,0)+G6) のように、INDEX関数と組み合わせて利用します。 #参考 アナタのアイデアを活用すると =INDEX(AF:AF,MATCH(E6,AF6:AF2473,0)+5+G6) などのようにすることもできます。
お礼
こういう方法もあるんですね。 早速の回答、ありがとうございました!
関連するQ&A
- ■EXCELでこんな関数なんですが・・・教えて!!
たとえばA列のセルに任意の数値が入力されています。B列のセルにある条件で日付が入力されます。そして別のセルにB列の日付が入力されるごとに隣接するA列の数値を合計していく関数なんですが。よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- エクセル関数の詳しい方ご教示ください。
エクセルの詳しい方、ご教示ください。 A B C D E F G(表示したい列) 1行目 2 3 5 7 9 2 =知りたい関数 2行目 4 5 8 9 1 2 上記のようなランダムな数値データがあり、 ・Aの列に表示している数字の数だけ、 ・Bから右の列に移動した数字を、 ・Gの列に表示したい と、思っています。 例で考えると、 G1のセルは7 G2のセルは2 と表示されるイメージです。 Gにはどのような関数を使えばよいでしょうか?
- ベストアンサー
- オフィス系ソフト
- エクセルのMATCH関数について
エクセルのMATCH関数についての質問ですが、どうしてもエラーが表示され悩んでいます。どうか教えていただければと思います。 たとえば下記のような場合なぜかエラーが発生してしまいますがどうしてでしょうか? A列 B列 C列 D列 E列 F列 1行 A B A+B 戻り値 2行 2.0 1.0 1.2 2.2 2 3行 2.2 0.9 1.1 2.0 1 4行 2.4 1.1 1.3 2.4 #N/A 5行 2.6 1.0 1.4 2.4 3 使用している関数は、 E列2行 =C2+D2 F列2行 =MATCH(E2,$A2:$A5,0) E列3行 =C3+D3 F列3行 =MATCH(E3,$A2:$A5,0) E列4行 =C4+D4 F列4行 =MATCH(E4,$A2:$A5,0) E列5行 =C5+D5 F列5行 =MATCH(E5,$A2:$A5,0) です。ここでどうしても、F列4行にエラー値(#N/A)が発生してしまいます。どうしてでしょうか? E列4行とE列5行は同じ値にもかかわらず戻り値が違うのはどうしてでしょうか? また、不思議なことにE列4行に手入力で2.4の値を入力した場合は戻り値は3となり、正しい値を表示します。どうしてでしょうか? 以上、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excelの関数を用いた計算に関しての質問です。
Excelの関数を用いた計算に関しての質問です。 A1:F10の範囲の60個のセルにそれぞれ1~9の数字がランダムに入力されています。 G1とH1に異なる任意の数字を入力し、1から10の列のうちから G1とH1の数字が両方とも入力されている行の数を算出したいのですが、 よい計算方法が分かりません。 どなたか私にご教示いただけたら幸いです。
- ベストアンサー
- オフィス系ソフト
- Excel関数 A列の値とC列の値の間であればD列の値が抽出される関数
いつもお世話になっております。 F1にある数値を入れ、その数値が一覧表の中の範囲にマッチすればその数値を集計表シートのセルG1に反映したいのです。 例えば A B C D E F G 1 1 ~ 1000 70 1200 ? 2 1001 ~ 1500 85 3 1501 ~ 2000 92 というような表があるとします。 F1に「1200」と入力するとG1には「85」と出るようにするにはG1にどのような関数を入れたらいいでしょうか。 必要があれば左の数値と~、右の数値は便宜上3列に分けて入力しています。 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- Excel 項目別昇順関数
皆様方の知恵をお借りに参りました。 あれこれ、サイト巡りして問題解決にあたりましたが、途方にくれています。 私のスキルは、入門者レベルで、至らない点は多くありますが、どうかお許しください。 まず、表をご覧ください。 D列からG列までの間に、データ入力をしております。実際は、200行分前後のデータあります。 D列、G列、K列、M列、O列、Q列は、「ユーザ定義」の設定において、「数値」にしてあります。 日付は、ランダムに入力しています。 これを、表のように、「車両費」など項目別に「日付」を検索して昇順させ、並べて 表示させたいのです。尚、中には、「車両費」の内訳が「空白欄」になっているものもあります。 さらに、「車両費」の内訳(ガソリン代・高速代など ---F列)を「項目別」にして、同じように 「日付」を昇順させ、表のように、「日付」「金額」のみ並べて表示させたいのです。 (データ入力の列をベースとしてください。) お調べしましたところ、「配列数式」と呼ばれるものが必要なのかもしれません。 また関数は、INDEX関数、MATCH関数、SMALL関数などの組み合わせになるかしれません。 どなたか、表のように、表示させることのできる「関数」を教えてください。
- ベストアンサー
- オフィス系ソフト
- エクセルでのインデックス関数について
エクセルで任意の二列からセルの中身を引っ張ってきて組み合わせるものを作成しているのですが、うまくいきません。 以下のページを参考に作成しました http://okwave.jp/qa/q5883947.html 添付画像ではB、C列の2行目に結果が出るようにしてE,F列にランダムに取りたい値、G,H列に乱数を表示させています また、B2のセルには =INDEX($E$2:$F$100,MATCH(MIN(G$2:G$100),G$2:G$100,0),COLUMN(B1)) C2のセルには =INDEX($E$2:$F$100,MATCH(MIN(H$2:H$100),H$2:H$100,0),COLUMN(C1)) と入れてあります なぜエラーが出るのかが全くわからなく、困っています ご存知の方、どうかよろしくお願いいたします
- ベストアンサー
- Excel(エクセル)
- エクセル2010のSUMIFS関数について
A列に日付、C列に文字列、E列に数値があります。 仮に、日付は2013年4月だけ、文字列は”事務” だけに条件を絞ってE列の数値を合計する場合、エクセル2000では =SUMPRODUCT((C$1:C$1000="事務")*(TEXT(A$1:A$1000,"yyyymm")="201304")*E$1:E$1000) でうまくいきました。 こんどエクセルが2010になったので、あたらしくできたSUMIFS関数でやってみようと思い =SUMIFS(E:E,C:C, ”事務”,TEXT(A:A,"yyyymm"),”201304”) としましたが「数式が正しくありません」とエラーになってしまいます。 SUMIFS関数だと列のセル範囲を指定しなくていいので使いたいのですが・・・。 F列を作業列とし、ここにA列の日付をyyyymm形式の文字列とすれば =SUMIFS(E:E,C:C,"事務 ",F:F,"201304") で出来ますが、ほかにいい方法はないでしょうか?
- ベストアンサー
- その他MS Office製品
- Excel 検索に関する関数について教えてください
色々と試しましたが、どうしてもうまくいかないので教えてください。 A列に休日を除いた日付(生産カレンダー)が入っています。 日付は手入力です。 A列 2008/5/14 2008/5/15 2008/5/16 2008/5/19 2008/5/20 2008/5/21 B1セルに任意の日付が入力された時、C1のセルに任意に入力されている数値分だけ前の日付をA列を参照してD1セルに表示したいのです。 例えばB1セルに2008/5/20、C1セルに3と入力された場合、D1セルには2008/5/20の3つ上のセルの値、2008/5/15を表示させたいのです。 生産カレンダーは列でなく、行にしても可です。 LOOKUP系やOFFSETなども複合したりして試してみましたが、うまくいきません。 ご教授よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
この方法でやったら、うまくいきました!! 早速の回答ありがとうございました! (先ほど質問を途中で削除してしまい、すみませんでした。 質問の仕方があまりよくなく、わかりにくかったかなと思い削除してしまいました)