No.2ベストアンサー
- 回答日時:
こんばんは!
具体的な範囲が判らないので、やり方だけ・・・
↓の画像でA1~D10セル内データでG1セルに入力したデータの
「行番号」と「列番号」を表示するようにしてみました。
尚、範囲内に重複データはない!という前提です。
画像ではG2セルに
=SUMPRODUCT((A1:D10=G1)*ROW(A1:A10))
G3セルに
=SUMPRODUCT((A1:D10=G1)*COLUMN(A1:D1))
という数式を入れています。
※ 該当データがない場合は「0」が表示されます。m(_ _)m
ありがとうございます。
出来ました。機能としては十分です。しかし、これはどういう理屈で計算出来ているのでしょうか?sumproductは調べましたが分かりませんでした。
・A1:D10=G1は論理式の扱いなのか?どういう動作?
・ROW(A1:A10)は10個のセルの行番号を示すの?
・両者が掛け算されており、配列としては1個だと思いますが、sumproductの引数として1個の配列を使うのはナニ?
すみませんが、教えて下さい。
No.7
- 回答日時:
回答No.6の補足として別の角度から検討してみました。
貼付画像はExcel 2013で行ったものですがExcel 2003にも組み込まれた関数で処理しています。
行番号
H4=MOD(MIN(IF((A2:E11=H2),ROW(A2:A11)+COLUMN(A2:E2)*1000,"")),1000)
列番号
H5=INT(MIN(IF((A2:E11=H2),ROW(A2:A11)+COLUMN(A2:E2)*1000,""))/1000)
この2つの式は入れ子のIF関数で配列値を返す必要があるため数式バーへ入力後Ctrl+Shift+Enterで確定してください。
左上から右下へ検索して最初に見つかったセルが結果として返されます。
I4とI5の計算式はMIN関数をMAX関数に置き換えたもので、左上から右下へ検索して最後に見つかったセルが結果として返されます。
検証(別解)はSUMPRODUCT関数を使うことで式の確定時に通常のEnterキーのみで確定する扱いにしてみました。
行番号
L4=SUMPRODUCT(LARGE((INDEX(A2:E11,,SUMPRODUCT(LARGE((A2:E11=L2)*COLUMN(A2:E2),COUNTIF(A2:E11,L2))))=L2)*ROW(A2:A11),COUNTIF(INDEX(A2:E11,,SUMPRODUCT(LARGE((A2:E11=L2)*COLUMN(A2:E2),COUNTIF(A2:E11,L2)))),L2)))
L5=SUMPRODUCT(LARGE((A2:E11=L2)*COLUMN(A2:E2),COUNTIF(A2:E11,L2)))
この数式は論理が複雑なのでお勧めできません。
No.6
- 回答日時:
>平たく言うと何番目に見つかったか。
MATCH関数は指定範囲(1列または1行)の中から検索値の位置を検出します。
何番目かは指定できませんので検索値と同じ値のセルが複数のときは最初に見つかった位置になります。
>これにaddressをかけてなぜセル位置が分かるのでしょうか?
MATCH関数は複数列または複数行を対象にできませんので検出範囲は限定されています。
今回の質問で「指定範囲内で文字列を検索し」とのことですが複数行×複数行の場合は別の方法を使います。
また、「見つかったセルの行番号、列番号」は「A1」や「R1C1」のようにセルのアドレスとして検出したかったのではないのでしょうか?
条件が曖昧だったので勝手解釈の検証結果を提示しました。
尚、ADDRESS関数は行番号と列番号を指定することでセルの位置が返されます。
今回の検証では列は固定で行番号をMATCH関数で検出した結果を提示しました。
MATCH("第3項",B1:B14,0) → 4
ADDRESS(4,2) → $B$4 引数の2番目はB列(第2列)を意味します。
ADDRESS(4,2,4) → B4 引数の3番目は省略すると上記のようになり、$を除いた形式にするときは4を指定します。
複数列×複数行からの位置検出ではSUMPRODUCT関数を使えますが検索値と同じ値が複数のとき無指定で優先的に選択することができませんので条件の提示が必要です。
No.5
- 回答日時:
No.2です。
数式の意味が知りたいというコトですので・・・
画像の場合で説明しますと。
大前提としてデータ範囲内には重複データはない!というのは前回書いた通りです。
(万一同じデータが複数ある場合はとんでもない数値になります)
行方向の
>=SUMPRODUCT((A1:D10=G1)*ROW(A1:A10))
の意味
必ず範囲指定した行数と ROW(A1:A10) の行数は一致させる必要があります。
A1~D10セル内にG1と一致するデータがある場合(画像では範囲指定内の5行目)ですので、
5行目だけが「TRUE」=1 となり 他の行はすべて「FALSE」=0となります。
配列数式のSUMPRODUCT関数で、ROW(A1:A10) をかけていますので、
TRUEの5行目=1 × 行番号(A5)の結果が表示されます。
列に関しても同じ意味です。
※ 注意点 ※
万一 仮にデータ範囲がA1セルからではなく、C3セルから始まる範囲が前回のような表がある場合は
=SUMPRODUCT((C4:F13=G1)*ROW(A1:A10))
のように範囲指定した行数と同じ数だけ1行目(A列でなくても構いません)から同じ行数分だけ掛け算します。
この程度でよろしいでしょうかね?m(_ _)m
ありがとうございます。
これは今までに経験のない使い方です。
A1:D10=G1 まずこれは論理式で結果は配列となりFalse,F,F,F,True,F,F,F,F,F
ROW(A1:A10) これは行番号の配列1,2,3,4,5,6,7,8,9,10
両者を掛け算すべく*を使った時点でTrueとFalseはそれぞれ1と0に変わり、結果は配列となり、0,0,0,0,5(行番号),0,0,0,0,0
sumproductなので0+0+0+0+5+0+0+0+0+0=5が戻り値になる。
なかなか奥が深い使い方ですね。
No.1
- 回答日時:
>マクロでなく関数で出来るでしょうか?
ADDRESS関数を使うとセルの列記号と行番号を取得できます。
貼付画像はExcel 2013で検証した結果です。
MATCH関数を使って目的の値で行番号を取得し、ADDRESS関数に渡してセルの位置を取得しました。
=ADDRESS(MATCH("第3項",B1:B14,0),2,4)
ありがとうございます。
machを調べましたが、指定範囲にある検索文字列を探し「相対的な順番を返す」関数だったと思います。平たく言うと何番目に見つかったか。これにaddressをかけてなぜセル位置が分かるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【初月無料キャンペーン実施中】オンライン健康相談gooドクター
24時間365日いつでも医師に健康相談できる!詳しくはコチラ>>
-
excelで検索値の入っているセル番地を取得するには?
Excel(エクセル)
-
セル番号を返す関数
Excel(エクセル)
-
EXCELで指定した文字列のアドレスを取得したい
Excel(エクセル)
-
-
4
エクセルで条件に一致したセルの隣のセルを取得したい
その他(Microsoft Office)
-
5
値が入っている一番右のセル位置を返す方法
Excel(エクセル)
-
6
excelの特定のセルの隣のセル指定について
その他(Microsoft Office)
-
7
セル番地を返してくれる関数
Excel(エクセル)
-
8
EXCELで、特定の文字を含むセルを抽出したいのですが。
Excel(エクセル)
-
9
Excel 書式を関数で判断。
Excel(エクセル)
-
10
EXCELで検索した値の下のセルの値を表示したい
Excel(エクセル)
-
11
エクセル 特定の文字を含むセルを かえす
Excel(エクセル)
-
12
エクセルで空白を無視して一番左にあるセルを参照したい
Excel(エクセル)
-
13
Excel MATCH関数で検索範囲内に同じ値の検索値が複数ある場合
Access(アクセス)
-
14
EXCELで文字列の座標を返す関数が知りたいです
Excel(エクセル)
-
15
Excelのmatch関数エラー原因が分かりません
Excel(エクセル)
-
16
Excelで、条件と一致する最後のセルを検索したい
Excel(エクセル)
-
17
エクセル:シート名を手入力でなく、セル「A1」の文字を出したい。
Excel(エクセル)
-
18
(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?
Excel(エクセル)
-
19
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
20
エクセルで指定したセルのどれかに○がはいっていたら○を表示したいです。
その他(コンピューター・テクノロジー)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
エクセルの図形機能で歌川国芳の浮世絵を描く動画
教えて!goo動画マスターのスズです。自慢じゃないが私は絵がとても下手だ(本当に自慢じゃない)。6歳の子どもを相手に、言葉を口にせずに描いた絵だけでやりとりする「絵しりとり」をやっていて、「自転車」を描い...
-
マモニャン:第317話「編み物」
マモニャンは神様の庭にある大きな世界樹にそびえ立つイチジクの実から誕生したお守りの猫。あなたのそばにマモニャンがいると、神様からのご褒美で、美味しい食べ物に巡り合えますっ♪ マモニャンに関するその他情...
-
音楽や食、家具や家電まで!? 進化するサブスクで私たちの暮らしはどう変わる?
モノを「持つ時代」から「持たない時代」へ変わりつつある昨今。享受したいサービスや必要なものがある場合、「購入する」以外の選択肢を思い浮かべる人も増えているのではないだろうか。「教えて!goo」にも「親の...
-
酒男子:第88話「44杯目(2) ※期間限定公開」
都会に破れた雪は、地元の酒蔵を受け継ぐことになった。意地でも帰らないと決めていた地元の酒蔵。悔し涙を流しながら嫌いな日本酒造りをしていたら、その涙が酒男子【酒神】を生み出す。日本酒の酒男子を美味しい日...
-
「年末に大掃除」は思い込み?寒くなる前に始める大掃除のメリットとは
早いもので2021年も終盤だ。年末が近づき、大掃除について考えはじめている人も多いだろう。余裕をもって取り掛かりたいと思いつつ、いつも年の瀬に慌てて行うという人もいるのでは。「教えて!goo」にも「暮れの大...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
このカテゴリの人気Q&Aランキング
-
4
あるセルに特定の文字列を打つ...
-
5
エクセル:シート名を手入力で...
-
6
Excel 書式を関数で判断。
-
7
excelで1つのセルだけを分割す...
-
8
エクセルのCOUNTIFが正しくカウ...
-
9
エクセル: セルの枠を超えて表示
-
10
エクセルのセル内の余白の設定...
-
11
エクセルである行以下全部を削...
-
12
EXCELで2列を参照し、重複する...
-
13
エクセルウィンドウのサイズ変...
-
14
エクセル 特定の文字を入れる...
-
15
A1セルに入力したら、入力時間...
-
16
Excelで罫線を引いていな...
-
17
Excel PHONETIC関数で振り仮名...
-
18
エクセル 同じ値を探して隣の...
-
19
エクセルで、変な矢印がでて、...
-
20
EXCELで2つの数値のうち大きい...
おすすめ情報
-
- 専門家が謎を解く
- お金や恋愛など身近な悩みや疑問をプロの答えでまるっと解決!
-
- 教えて!しりもと博士
- 謎多きクリエイターしりもと先生インタビュー記事はこちら!
- マモニャン:第317話「編み物」
- 音楽や食、家具や家電まで!? 進化す...
- 酒男子:第88話「44杯目(2) ※期間限...
ウォッチ 人気記事ランキング
-
- 男性は本当に好きな人には体を求めないのか?...
- 体の関係に対する男女の価値観の違いが、恋の悩みになることがあるよ...
-
- 貧乳美女と巨乳だけど美女ではない女性、心理...
- 恋愛対象として異性を見た場合、ルックスにこだわる男性は少なくない...
-
- 体の関係を持った瞬間に男性は冷める理由を心...
- 男女の恋愛感情は反比例しているという話を耳にすることがある。体の...
- 4 納豆は賞味期限が過ぎてから、いつまで...
- 5 巨乳・貧乳、それぞれのメリット&デメ...
公式facebook
公式twitter