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

よろしくお願いします。

下記のようなExcelシートがあります。

ID 検索番号 順番 データ
1 44 9252 いわし
2 8 9256 えりんぎ
3 37 9258 おちゃづけ
4 37 9258 おにぎり
5 3 9284 まつたけ
6 44 9253 うに

検索番号フィールドとデータフィールドの関係は、別のテーブルで保持している検索番号に対応するデータと親子関係のようになっています。順番フィールドには、同じ検索番号のデータ間で優先順位を決めるためのフィールドにしたいと考えています。

順番フィールドには、ExcelのCODE関数で文字コードを取得し順番を決めようとしたのですが、先頭文字のみのコード化ですので、2文字目以降が異なる場合上記ケースではうまくいきませんでした。

長々と書いてしまいましたが、教えていただきたい事は下記の通りです。

・検索番号による結果に対し五十音順に数字をふる方法

よろしくお願いします。

A 回答 (3件)

ユーザー定義関数(VBA)を使ってもいいなら


Alt+F11でVisual Basic Editor を開き、モジュール(なければ挿入メニューで追加)に
下記のコードを作成
Function BCODE(MOJI)
If Len(MOJI) = 0 Then GoTo BCODE_END
For I = 1 To Len(MOJI)
X = AscW(Mid(MOJI, I, 1))
BCODE = BCODE & X
Next I
BCODE_END:
End Function

セルに
=BCODE("いわし")
とすると123561243112375という文字(1文字が5桁のASCコード)が表示されます。
ちなみに他の文字でためすと
うに 1235812395
えりんぎ 12360124261243512366
おちゃづけ 1236212385124191238912369
おにぎり 12362123951236612426
まつたけ 12414123881238312369
うめぼし 12358124171241212375
ウメボシ 12454125131250812471
梅干 2675724178
    • good
    • 0

要は、「おちゃづけ」と「おにぎり」が異なる「順番」になれば良いのなら、「先頭文字」と「末尾文字」のコードを組み合わせたら如何かと。

つまり、…
C2: =CODE(D2)&CODE(RIGHT(D2,1))

  A   B     C    D
1 ID 検索番号 順番   データ
2  1    44 92529271 いわし
3  2     8 92569262 えりんぎ
4  3    37 92589265 おちゃづけ
5  4    37 92589322 おにぎり
6  5     3 93109265 まつたけ
7  6    44 92549291 うに

でも、この方法は「いわし」と「いためし」が同じ「順番」になる不具合がありますが…
    • good
    • 0

◆これで、いかがでしょうか?


  A   B     C    D
1 ID 検索番号 順位  データ
2 1   44     1   いわし
3 2    8     3   えりんぎ
4 3   37     4   おちゃづけ
5 4   37     5   おにぎり
6 5    3     6   まつたけ
7 6   44     2   うに

C2=IF(COUNTA(D:D)<ROW(),"",COUNTIF($D$2:$D$10,"<="&$D$2:$D$10))
★下にコピー
    • good
    • 0

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