[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数の文字列を返す関数』(シューサク)
いろいろやってみたのですがうまく出来ませんでした。
よろしくお願いします。
sheet1にて
データをいろいろいじくっていてまた何か手におえないことがあるかもしれないので、アドバイスお願いします。 A B C D ・
1 1/1 1/2 1/3 ・(シリアル値31日まで、B1:AF1の名前定義で「日」とつける)
2 い ○ △ ・ ・
3 ろ △ △ ・ ・
4 は × △ ・ ・
5 に ○ ○ ・ ・
6 ほ × ○ ・ ・
・ ・
(A2〜文字列)
sheet2にて
A B C
1 1/1(シリアル値、入力規則のリスト使用)
2 ○ △ ×
3 い ろ は
4 に ほ
5
6
sheet2の日付を変えて
A B C
1 1/2(シリアル値)
2 ○ △ ×
3 空 い に
4 白 ろ ほ
5 は
6
sheet1の「○・△・×」を入力したら、sheet2の「い・ろ・は・に・ほ」が表示されるようにしたいのですが、
=INDEX(Sheet1!$A:$A,MATCH(A$2,INDEX(Sheet1!$B:$AF,,MATCH($A$1,日,)),))
の関数で1個ずつは返るのですが、sheet2の1/1のA4・C4、1/2のB4・B5・C4にも値を返したいのですが方法はあるでしょうか?
できれば関数でしたいのです・・・。
よろしくお願いします。
[エクセルのバージョン]
Excel2002
[OSのバージョン]
WindowsXP
復習しつつやってみました。えらく長い式になってしまいましたが^^; Sheet1の2行目に作業用の行を挿入し、B2から右にB、C、Dと列名をいれてください。(見せたくない場合は、「表示しない」で対応してください。) Sheet2のB1に =HLOOKUP(A1,Sheet1!B1:AF2,2,FALSE) としてA1で選択した日付のSheet1の列名をかえします。(見せたくない場合は、フォント色を背景色と同色に。) A3に=IF(ISERROR(INDEX(Sheet1!$A$3:$A$7,SMALL(IF(INDIRECT("Sheet1!"&$B$1&"3:"&$B$1&"7")=A$2,ROW(INDIRECT("Sheet1!"&$B$1&"3:"&$B$1&"7"))-2),ROW()-2))), "",INDEX(Sheet1!$A$3:$A$7,SMALL(IF(INDIRECT("Sheet1!"&$B$1&"3:"&$B$1&"7")=A$2,ROW(INDIRECT("Sheet1!"&$B$1&"3:"&$B$1&"7"))-2),ROW()-2))) といれて、Ctrl+Shift+Enterで確定してください。あとは右に下に必要数コピーします。 いかがでしょうか。(かなれっと)
◆こんな方法もありますよ!
◆Sheet2のA3の式 A3=IF(ROW(A1)>SUMPRODUCT((Sheet1!$B$1:$AF$1=Sheet2!$A$1)*(Sheet1!$B$2:$AF$6=Sheet2!A$2)),"", INDEX(Sheet1!$A$1:$A$6,SMALL(IF((Sheet1!$B$1:$AF$1=Sheet2!$A$1)*(Sheet1!$B$2:$AF$6=Sheet2!A$2),ROW(Sheet1!$B$2:$AF$6)),ROW(A1))))
★この式は「配列数式」です。式を入力後、Ctrl+Shift+Enter をおして、式を確定させてください。式が確定すると式の両端に{ }がつきます
★式を確定後、右・下にコピーしてください!
◆いかがでしょうか!
(Maron)
かなれっとさん。Maronさん 回答ありがとうございました。 仕事でお返事が遅くなり申し訳ありません。
お二人の回答でいずれも複数文字列が返せました。 現在お二方に教えていただいた配列数式を理解するのに悪戦苦闘中です・・。
ありがとうございました。m(__)m
この掲示板の意味を理解しておらず見苦しい返信になってしまいました。 申し訳ございません。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.