アプリ版:「スタンプのみでお礼する」機能のリリースについて

excelの関数を教えて下さい。
同一セル内の3桁の数字(1から8までの数字を使用した3桁;例えば124)を、別のセル内に、関数(12345678をそれぞれ24587613へ変換する関数)で変換された3桁(例えば248)で表示したいのですが、その際に使用する関数を教えてください。エクセル上に表示する数字は1から8までのうちの3桁で、12345678をそれぞれ24587613へ変換したいです。
各セルに1数字の場合はVLOOKUP関数を使用し変換できたのですが、同一セル内に複数数字がある場合の考え方がわかりません。
よろしくお願いします。

A 回答 (7件)

◆mshr1962 さんの回答を参考にして、こんな方法はいかがでしょう


=SUM(MID("24587613",MID(A1,{1,2,3},1)*1,1)*10^{2,1,0})
    • good
    • 0

 回答番号ANo.2,5です。


 更に別の関数を思いつきました。

=IF(AND(SUMPRODUCT(ISNUMBER(FIND(MID(A1,ROW(INDIRECT("Z1:Z3")),1),"12345678"))*1)=3,LEN(A1)=3),SUMPRODUCT(FIND(MID(A1,ROW(INDIRECT("Z1:Z3")),1),"71823654")*10^(3-ROW(INDIRECT("Z1:Z3")))),"")
    • good
    • 0
この回答へのお礼

複数回答ありがとうございます。
今後関数を使用する際の参考にさせていただきます。
ありがとうございました。

お礼日時:2011/07/25 19:37

=SUM(FIND(MID(A1,{1,2,3},1),71823654)*10^{2,1,0})


それぞれの桁に分け、71823654の何番目にあるかを探し、くっつける
    • good
    • 0
この回答へのお礼

迅速な回答ありがとうございます。
参考にさせていただきます。

お礼日時:2011/07/25 19:40

 回答番号ANo.2です。


 すいません、先程の関数において、一部「$」を外し忘れていた箇所が御座いましたので、ANo.2の関数は、正しくは次の様なものとなります。

=IF(AND(ISNUMBER(A1),ISERROR(FIND("0",A1)),ISERROR(FIND("9",A1))),IF(AND(INT(A1)=A1,A1>99,A1<999),(LOOKUP(MID(A1,1,1)+0,{1,2,3,4,5,6,7,8;2,4,5,8,7,6,1,3})&LOOKUP(MID(A1,2,1)+0,{1,2,3,4,5,6,7,8;2,4,5,8,7,6,1,3})&LOOKUP(MID(A1,3,1)+0,{1,2,3,4,5,6,7,8;2,4,5,8,7,6,1,3}))+0,""),"")

 それから、次の様な関数でも、同じ事が出来ます。

=IF(AND(ISNUMBER(A1+MATCH(MID(A1,1,1)+0,{1,2,3,4,5,6,7,8},0)+MATCH(MID(A1,2,1)+0,{1,2,3,4,5,6,7,8},0)+MATCH(MID(A1,3,1)+0,{1,2,3,4,5,6,7,8},0)),LEN(A1)=3),(MATCH(MID(A1,1,1)+0,{7,1,8,2,3,6,5,4},0)&MATCH(MID(A1,2,1)+0,{7,1,8,2,3,6,5,4},0)&MATCH(MID(A1,3,1)+0,{7,1,8,2,3,6,5,4},0))+0,"")
    • good
    • 0

これでは駄目ですかね。


A1=124として
B1=(MID("24587613",MID(A1,1,1)*1,1)&MID("24587613",MID(A1,2,1)*1,1)&MID("24587613",MID(A1,3,1)*1,1))*1
    • good
    • 0
この回答へのお礼

迅速な回答ありがとうございます。
大変参考になりました!!

お礼日時:2011/07/25 19:45

 今仮に、元の3桁の数字がA1セルに入力されているものとします。


 その場合、変換後の数字を表示させるセルには、次の様な関数を入力されると良いと思います。

=IF(AND(ISNUMBER(A1),ISERROR(FIND("0",$A$1)),ISERROR(FIND("9",$A$1))),IF(AND(INT(A1)=A1,A1>99,A1<999),(LOOKUP(MID(A1,1,1)+0,{1,2,3,4,5,6,7,8;2,4,5,8,7,6,1,3})&LOOKUP(MID(A1,2,1)+0,{1,2,3,4,5,6,7,8;2,4,5,8,7,6,1,3})&LOOKUP(MID(A1,3,1)+0,{1,2,3,4,5,6,7,8;2,4,5,8,7,6,1,3}))+0,""),"")
    • good
    • 0

どのように変換したいのか判りませんが


*変換に規則性があれば、その規則を関数で処理
*1000通りのテーブル作成
*1桁の数字→変換した数字がどの桁でも同じであれば、10通りの変換テーブルを作り3桁の数字を桁ごとに分解して変換し合成する
*桁ごとに変換テーブルが異なるなら桁ごとの変換テーブルを作り、以下前項
    • good
    • 0
この回答へのお礼

迅速な回答ありがとうございます。
参考にさせていただきます!!

お礼日時:2011/07/25 19:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!