[[20151009111012]] 『関数による値の置き換え』(通行人) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『関数による値の置き換え』(通行人)

教えて下さい。
「表1」の形を「表2」の形に置き換えたいのですが、
関数で対応できるものでしょうか?
分かり難い表で申し訳ないのですが、
可能な場合はご教示下さい。
よろしくお願いいたします。

<表1>
 A列/B列/C列
行1 ●●株式会社/値1/値7
行2 ●●株式会社/値2/値8
行3 ●●協同組合/値3/値9
行4 ●●協同組合/値4/値10
行5 ●●株式会社/値5/値11
行6 ●●小学校/値6/値12

<表2>
 A列/B列/C列/D列/E列
行1 ●●株式会社/値1/値7/値2/値8/値5/値11
行2 ●●協同組合/値3/値9/値4/値11//
行3 ●●小学校/値6/値12////

< 使用 Excel:Excel2013、使用 OS:Windows7 >


適当に、空欄のセルに=A1と入力してください。
●●株式会社と表示されるはずです。
同様に=B6と入力すれば値6が表示されます。

ということではないのかな?
(ななしのごんべえ) 2015/10/09(金) 11:25


 あまりお勧めはしないが。

 表1がSheet1だとする。

 表2のA1セルに
 =IFERROR(INDEX(Sheet1!A$1:A$100,SMALL(IF(FREQUENCY(IFERROR(MATCH(Sheet1!A$1:A$100,Sheet1!A$1:A$100,0),""),ROW(A$1:A$100))>0,ROW(A$1:A$100),""),ROW(A1))),"")
 B1セルに
 =IF(A1="","",IFERROR(INDEX(Sheet1!$B$1:$C$100,SMALL(IF(Sheet1!$A$1:$A$100=$A1,ROW($A$1:$A$100),""),INT((COLUMN(A1)-1)/2)+1),MOD(COLUMN(A1)-1,2)+1),""))
 と入力し、どちらも式の確定時にShiftキーとCtrlキーを押しながらEnterキーで確定してくれ。
 (確定後、式が{}で囲まれればOK)

 式の確定後、A1セルは下へフィルコピー、B1セルは右および下へフィルコピーしてくれ。

 なお、表1のデータが最大100行目まである場合に対応している。
 表1の行数がもっとある場合は式中の「$100」部分をもっと大きい値にしてくれ。

 追記
 表1では一行に必ず二つ値(B列とC列)がある前提で式を作っている。
 もし、一つしか値がない場合、ない部分が0表示される。

 あと、表2の●●協同組合の最後部分は「値11」ではなく「値10」では?
(ねむねむ) 2015/10/09(金) 13:30

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.