質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Q&A

解決済

1回答

1483閲覧

リスト内のどこかに特定の文字列が含まれていた時に別リストに含まれている行の指定列の値を表示させたい。

kumiko

総合スコア48

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

0グッド

0クリップ

投稿2019/04/25 04:08

編集2022/12/08 04:28

前提・実現したいこと

エクセル関数で次のことを実現したいと思っています。
LIST1 A列には「あいうえ」がはいっています
B、C列にはランダムに「abcdefg」などアルファベットの小文字がはいっています

LIST2にはLIST1でランダムに並べられていたアルファベットが縦に一意に並べられています。

LIST2のD列にかかれたアルファベットがLIST1のどの行にはいっているかを特定し、その行のLIST1のA列に記載されているあいうえのどれかをLIST2のE列に解として表示させたいというのが実現したいことです。(つまり関数をいれたいのはLIST2のE列)

LIST1

セル番地ABC
1ad
2be
3cf
4gh

LIST2

セル番地DE
5a
6b
7c
8d
9e
10f
11g
12h

試したこと

もともとBC列データは同じセルに入っていていままではVLOOKUPのあいまい検索を使用してキー項目と結びつけていたのですがデータが長いものはVLOOKUPではエラーが出ると最近気づいて…

別の方法を探したところINDEX関数とmatch関数を使う方法がよさそうということでいろいろ試し中ですがMATCH関数が使いこなせずおたおたしています。

やったことは…
E5セルに入れる式として
=INDEX($A$1:$C$4,MATCH(D5,$A1:$C$4,0),MATCH(D5,$A1:$C$4,0),1)
=エラー

MATCHでリスト内のセル番地を特定したかったのですがたしかに縦横が特定できないわけですからエラーになります…。

そもそもこれらの関数も理解しきっておらずまだいろいろ試し&勉強中ですがもしかしたらいい案がもらえるかもしれないということでとりあえず質問します。

補足情報(FW/ツールのバージョンなど)

エクセル2010です

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

E5セルに入れる関数は
=INDEX($A$1:$A$4,SUMPRODUCT(($B$1:$C$4=D6)*ROW($B$1:$C$4)))
これでいけました。

投稿2019/04/25 05:44

編集2019/04/25 05:47
kumiko

総合スコア48

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kumiko

2020/01/23 00:52

まちがえていた…今更気づきました =INDEX($A$1:$A$4,SUMPRODUCT(($B$1:$C$4=D5)*ROW($B$1:$C$4))) が正解です
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問