【エクセル】行番号を変数とする方法について
- エクセルで行番号を変数として使用する方法について教えてください。
- VLOOKUP関数で特定の行番号以下の範囲を参照するために、ある文字列が含まれる行番号を取得し、それを他の関数に組み込みたいです。
- 具体的な例として、MATCH関数を使用して「TEST」という文字列が含まれる行番号を取得し、それをVLOOKUP関数で使用する方法を教えてください。
- ベストアンサー
【エクセル】 行番号を変数とする方法について
下表のようなデータがあったとします。 A B C D 1 2 TEST 3 4 5 合計 100 6 <目的>ある文字列が含まれる行番号以下の範囲を指定して、VLOOKUP関数を使用。 ある文字列が含まれるセル行番号は、毎回異なる。 <具体例> 1) MATCH関数で、「TEST」という文字が含まれる行番号を取得 この場合「2」 2) VLOOKUP関数で VLOOKUP("合計",A2:D5,2false) というように MATCH関数で得た行番号を他の関数に組み込みたいです。 どなたか、良い方法を教えて頂けないでしょうか? よろしくお願い致します。
- stayuphere
- お礼率100% (6/6)
- その他MS Office製品
- 回答数4
- ありがとう数5
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
たとえば =VLOOKUP("合計",OFFSET($A$1:$B$4,MATCH("TEXT",A:A,0),0),2,FALSE) などのように。 TESTから始まるのはいいとして,具体的にどこまでの範囲を対象としたらいいのかが不明です。 どうしても事前に範囲を想定できないというのなら =VLOOKUP("合計",INDEX(A:A,MATCH("TEST",A:A,0)):$B$65536,2,FALSE) なんて具合のチカラワザもできます。
その他の回答 (3)
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
そのまま組み込んだだけ(エラー処理なし)ですが =VLOOKUP("合計",INDEX(A1:A5,MATCH("TEST",A1:A5,0)):D5,2,0)
お礼
CoalTarさん ご教示頂いた方法で、数字を検出できました。 ありがとうございます!
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 VLOOKUP関数の検索範囲の開始セルを可変にするという事としていますので相違していましたら読み飛ばして下さい。 =IF(COUNTIF(A1:A4,"*TEST*"),VLOOKUP("合計",INDIRECT("A"&MATCH("*TEST*",A1:A4,0)&":D5"),2,FALSE),"")
お礼
mu2011さん 私の質問をずばり要約して頂き、ありがとうございます。 ご教示頂いた方法で、数字を検出する事ができました。
- mshr1962
- ベストアンサー率39% (7418/18948)
=VLOOKUP("合計",A2:D5,MATCH("TEST",A1:A4,0),FALSE) ただしA1:A5にTESTという文字がないとエラー表示になります。
お礼
早速の回答ありがとうございます。 vlookupの検索範囲開始位置を可変にしたかったのですが、 MATCH関数との組合せは勉強になりました。
関連するQ&A
- 列にある指定文字のその行の指定文字の合計数
ExcelでセルH1文字"う"がA列の文字とマッチした文字"う"の行B3:F3の文字"A"のみを合計しセルI1に数値3をつづいてH2文字に対してI2にA列文字"こ"の行"A"の合計数を入力したくI列に入れる関数をどなたか解る方宜しくお願いします。
- ベストアンサー
- Windows 7
- vlookup関数で検索値を含む文字列を検索する方法
vlookup関数で例えば E1のセルに=vlookup(D1,A:C,3,false)とした場合、D1が佐藤であれば、A列に「佐藤」がある場合には当然、「佐藤」がある行の3列目の値が返されますが、「佐藤」はなく「佐藤A」や「A佐藤」がある場合にもこれらがある行の値を返して欲しいのですが、いい方法はありませんでしょうか。*を使ってできると思ったのですがうまくいきません。上記例で、=vlookup("*佐藤*",A:C,3,false)とすればできますが、*佐藤*の部分はD1の引用を利用したいのです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 「自分のセルより1行上の行番号」を求める方法
初歩的な質問で申し訳ありません。 あるプログラムからデータをExcelに吐き出しています。 SUM関数を使って値の合計を表示したいのですが、 行数が不明なため、SUM関数をうまく作れません。 A列|B列 ────── No1| 13 No2| 21 No3| 8 No4| 40 ~ ~ ────── 計 |SUM(B2 : B?) ← ★ この★の部分の、「自分のセルより1行上の行番号」を求める方法を教えてください。
- ベストアンサー
- オフィス系ソフト
- 【エクセル】特定の文字列(番号)の行だけ抽出したい
現在資料を作っていて、またもや困ったことがあったので教えてください。 特定の文字が含まれる行のデータを抽出するにはどうしたらいいのでしょうか。 具体的にいうと ____|A|B|C|D|E| [01]|F|1|0|3|5| [02]|G|0|2|5|7| [03]|H|0|3|4|8| 中略 [21]|F|0|0|9|6| [22]|G|6|4|5|1| [23]|H|3|3|2|2| 中略 [31]|F|2|2|4|6| [32]|G|5|3|7|9| [33]|H|8|2|6|4| 以下略 *[]の中身は行番号 一番上段のA B C D Eは列の軸 |はセルの区切りを示している のような表でGのBのところ(行番号が10n+2のところのA列)だけのデータを合計したいのです。 つまり上の表でいえば =A2+A22+A32+A42+A52…(=0+6+5+…)ということをしたいのですが 数が600行近くあるので手入力だとかなり面倒くさいのです。 SUM関数を使うのかなとも思いましたが、それでもセルの指定の面倒くささは変わらないし… 何か簡単にできるようにする方法がありましたらご教授お願いします。
- ベストアンサー
- オフィス系ソフト
- 検索文字が何行目にあるか、行番号を取得したい
例えば、A1に「aiu」が入っていて、 B列のどこかの行に「aiu」があるのですが、 その行の番号を取得する関数を教えてください。 MATCH関数とfind関数を使えばいいのでしょうか? 使い方がわかりません。 よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- Excel INDIRECT
お世話になります。 INDIRECT関数で、 =INDIRECT("A1")は、=A1と同じように、A1セルを参照しますが、 =VLOOKUP(A1,B1:C19,2,FALSE)を、==INDIRECT("VLOOKUP(A1,B1:C20,2,FALSE)”)で囲むと#REF!エラーになります。 目的は、A2セルにSheet2!B1:C20の範囲を示す文字列を入れて、=INDIRECT("VLOOKUP(A1,"&A2&",2,FALSE)”)としたいと思っています。 #REF!エラーの原因を教えていただけないでしょうか。 よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- EXCELでデータが入っている最終行までの合計
現在、EXCEL2000で各月の全得意先の合計を求める式を作っています。 データは現在B列に得意先コード・C列に得意先名D列以降はVLOOKUP関数で別シートから求めた各月の得意先の売上金額を求めています。 D6セル:VLOOKUP(B6,'5月'!$B$6:$J$1500,9,0) 例えば、現在D6からD1149までにデータが入っており、別シートの得意先元リストの件数が増えれば、自動的に下の行にスライドするようになっています。その為、数行余分に予め関数を入れた空欄の行を作っています。 B6セル:OFFSET(元リスト!$B$6,ROW()-6,COLUMN()-2) 現在D1158にD6からデータの入っている最終行まで合計を関数で表示させたいのですがうまくいきません。ネットでも色々探しているのですが、私の検索の仕方が悪いのか中々見つかりません。 LOOKUP関数となにかを組み合わせて、得意先コード(B列)の空白になっている時、その一つ上のD列の行を参照できるようにできればいいんじゃないかとは思うのですが。 もし、いい方法があればご教示願います。
- ベストアンサー
- その他MS Office製品
- エクセル 表検索した合計の出し方について
既出でしたらすいません。 いろいろ検索していみたのですが見つかりませんでしたので、教えて下さい。というかできないのですかね? エクセル2007を使っているのですが、商品、単価、入り値を一覧の表にしてVLOOKUPでその一覧の番号から表検索して別の一覧を作れるようにしました。その新しい表の最後の行に単価と入り値の合計を出したいと思っています。ただ、その最後の行は一定ではなくどこになるかわかりません。(違う場所に合計用のセルを作るのではなくすでに関数がある場所に付け足したいのですが。。。) 以下がそのセルに入っている関数の例です。 =IF(I6="","",ROUNDDOWN(I6*F6+I6*IF(G6<10,G6/10,IF(G6<100,G6/100,G6/1000)),0)) I6にVLOOKUPで検索した単価が入るように関数を入れてあります。 F6、G6は数量を入力するようにしてあります。単価と数量の合計 この関数に付け加えるか、もしくは新しい関数でもいいので 「もし、A6に合計の文字列が入れば、I1~I5(合計の文字列が入る前のセル)までを足す」 というようなことができますでしょうか?
- 締切済み
- オフィス系ソフト
- VBA 指定値に最も近い値のセルの行番号は?
A列に数値が昇順で並んでます。指定の値に最も近い値が並んでるセルの行番号を知りたいのです。 WorksheetFunction.vlookupを使うと、値は分っても行番号はわからない筈です。 Cells.Find().Row を使うと、行番号はわかりますが「最も近い」値はわからない筈です。 マクロを組め!との御指摘があるかも知れませんが、便利な関数があるのならそれで済ませたいです。何かありませんか?無ければ諦めます。
- ベストアンサー
- Excel(エクセル)
お礼
keithinさん この度は、本当にありがとうございます。 お陰様で解決致しました。 事前に範囲を特定出来ないので「チカラワザ」はとても 有効です! 嬉しいです。